diff options
Diffstat (limited to 'lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp')
| -rw-r--r-- | lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp b/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp index b12e21deb4592..2b64be63a6234 100644 --- a/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp +++ b/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp @@ -223,7 +223,7 @@ static uint32_t chown_file(Platform *platform, const char *path, command.Printf(":%d", gid); command.Printf("%s", path); int status; - platform->RunShellCommand(command.GetData(), nullptr, &status, nullptr, + platform->RunShellCommand(command.GetData(), FileSpec(), &status, nullptr, nullptr, std::chrono::seconds(10)); return status; } @@ -235,7 +235,7 @@ PlatformPOSIX::PutFile(const lldb_private::FileSpec &source, Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_PLATFORM)); if (IsHost()) { - if (FileSpec::Equal(source, destination, true)) + if (source == destination) return Status(); // cp src dst // chown uid:gid dst @@ -248,7 +248,7 @@ PlatformPOSIX::PutFile(const lldb_private::FileSpec &source, StreamString command; command.Printf("cp %s %s", src_path.c_str(), dst_path.c_str()); int status; - RunShellCommand(command.GetData(), nullptr, &status, nullptr, nullptr, + RunShellCommand(command.GetData(), FileSpec(), &status, nullptr, nullptr, std::chrono::seconds(10)); if (status != 0) return Status("unable to perform copy"); @@ -278,7 +278,7 @@ PlatformPOSIX::PutFile(const lldb_private::FileSpec &source, GetHostname(), dst_path.c_str()); LLDB_LOGF(log, "[PutFile] Running command: %s\n", command.GetData()); int retcode; - Host::RunShellCommand(command.GetData(), nullptr, &retcode, nullptr, + Host::RunShellCommand(command.GetData(), FileSpec(), &retcode, nullptr, nullptr, std::chrono::minutes(1)); if (retcode == 0) { // Don't chown a local file for a remote system @@ -307,14 +307,14 @@ lldb_private::Status PlatformPOSIX::GetFile( if (dst_path.empty()) return Status("unable to get file path for destination"); if (IsHost()) { - if (FileSpec::Equal(source, destination, true)) + if (source == destination) return Status("local scenario->source and destination are the same file " "path: no operation performed"); // cp src dst StreamString cp_command; cp_command.Printf("cp %s %s", src_path.c_str(), dst_path.c_str()); int status; - RunShellCommand(cp_command.GetData(), nullptr, &status, nullptr, nullptr, + RunShellCommand(cp_command.GetData(), FileSpec(), &status, nullptr, nullptr, std::chrono::seconds(10)); if (status != 0) return Status("unable to perform copy"); @@ -335,7 +335,7 @@ lldb_private::Status PlatformPOSIX::GetFile( dst_path.c_str()); LLDB_LOGF(log, "[GetFile] Running command: %s\n", command.GetData()); int retcode; - Host::RunShellCommand(command.GetData(), nullptr, &retcode, nullptr, + Host::RunShellCommand(command.GetData(), FileSpec(), &retcode, nullptr, nullptr, std::chrono::minutes(1)); if (retcode == 0) return Status(); @@ -706,7 +706,9 @@ PlatformPOSIX::MakeLoadImageUtilityFunction(ExecutionContext &exe_ctx, FunctionCaller *do_dlopen_function = nullptr; // Fetch the clang types we will need: - ClangASTContext *ast = process->GetTarget().GetScratchClangASTContext(); + ClangASTContext *ast = ClangASTContext::GetScratch(process->GetTarget()); + if (!ast) + return nullptr; CompilerType clang_void_pointer_type = ast->GetBasicType(eBasicTypeVoid).GetPointerType(); @@ -948,7 +950,11 @@ uint32_t PlatformPOSIX::DoLoadImage(lldb_private::Process *process, Value return_value; // Fetch the clang types we will need: - ClangASTContext *ast = process->GetTarget().GetScratchClangASTContext(); + ClangASTContext *ast = ClangASTContext::GetScratch(process->GetTarget()); + if (!ast) { + error.SetErrorString("dlopen error: Unable to get ClangASTContext"); + return LLDB_INVALID_IMAGE_TOKEN; + } CompilerType clang_void_pointer_type = ast->GetBasicType(eBasicTypeVoid).GetPointerType(); |
