diff --git a/lldb/source/Host/windows/HostProcessWindows.cpp b/lldb/source/Host/windows/HostProcessWindows.cpp index f615318a7646..90517249db7e 100644 --- a/lldb/source/Host/windows/HostProcessWindows.cpp +++ b/lldb/source/Host/windows/HostProcessWindows.cpp @@ -14,6 +14,7 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/Support/ConvertUTF.h" +#include "llvm/Support/WindowsError.h" #include @@ -94,8 +95,7 @@ llvm::Expected HostProcessWindows::StartMonitoring( HostProcessWindows::MonitorThread, info); } else { - DWORD err = GetLastError(); - return llvm::errorCodeToError(std::error_code(err, std::system_category())); + return llvm::errorCodeToError(llvm::mapWindowsError(GetLastError())); } } diff --git a/lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp b/lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp index 104ac229f2f4..58769bdd70da 100644 --- a/lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp +++ b/lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp @@ -63,16 +63,18 @@ Status DebuggerThread::DebugLaunch(const ProcessLaunchInfo &launch_info) { Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS); LLDB_LOG(log, "launching '{0}'", launch_info.GetExecutableFile().GetPath()); - Status error; + Status result; DebugLaunchContext *context = new DebugLaunchContext(this, launch_info); - HostThread slave_thread(ThreadLauncher::LaunchThread( + + llvm::Expected slave_thread = ThreadLauncher::LaunchThread( "lldb.plugin.process-windows.slave[?]", DebuggerThreadLaunchRoutine, - context, &error)); + context); + if (!slave_thread) { + result = Status(slave_thread.takeError()); + LLDB_LOG(log, "couldn't launch debugger thread. {0}", result); + } - if (!error.Success()) - LLDB_LOG(log, "couldn't launch debugger thread. {0}", error); - - return error; + return result; } Status DebuggerThread::DebugAttach(lldb::pid_t pid, @@ -80,16 +82,18 @@ Status DebuggerThread::DebugAttach(lldb::pid_t pid, Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_PROCESS); LLDB_LOG(log, "attaching to '{0}'", pid); - Status error; + Status result; DebugAttachContext *context = new DebugAttachContext(this, pid, attach_info); - HostThread slave_thread(ThreadLauncher::LaunchThread( + + llvm::Expected slave_thread = ThreadLauncher::LaunchThread( "lldb.plugin.process-windows.slave[?]", DebuggerThreadAttachRoutine, - context, &error)); + context); + if (!slave_thread) { + result = Status(slave_thread.takeError()); + LLDB_LOG(log, "couldn't attach to process '{0}'. {1}", pid, result); + } - if (!error.Success()) - LLDB_LOG(log, "couldn't attach to process '{0}'. {1}", pid, error); - - return error; + return result; } lldb::thread_result_t DebuggerThread::DebuggerThreadLaunchRoutine(void *data) {