|
LLDB mainline
|
#include "DebuggerThread.h"#include "ExceptionRecord.h"#include "IDebugDelegate.h"#include "lldb/Core/ModuleSpec.h"#include "lldb/Host/ProcessLaunchInfo.h"#include "lldb/Host/ThreadLauncher.h"#include "lldb/Host/windows/AutoHandle.h"#include "lldb/Host/windows/HostProcessWindows.h"#include "lldb/Host/windows/HostThreadWindows.h"#include "lldb/Host/windows/LazyImport.h"#include "lldb/Host/windows/ProcessLauncherWindows.h"#include "lldb/Target/Process.h"#include "lldb/Utility/FileSpec.h"#include "lldb/Utility/Log.h"#include "lldb/Utility/Predicate.h"#include "lldb/Utility/Status.h"#include "Plugins/Process/Windows/Common/ProcessWindowsLog.h"#include "lldb/Utility/LLDBLog.h"#include "llvm/ADT/STLExtras.h"#include "llvm/Support/ConvertUTF.h"#include "llvm/Support/Threading.h"#include "llvm/Support/raw_ostream.h"#include <optional>#include <pathcch.h>#include <psapi.h>Go to the source code of this file.
Macros | |
| #define | STATUS_WX86_BREAKPOINT 0x4000001FL |
Typedefs | |
| typedef BOOL WINAPI | WaitForDebugEventFn(LPDEBUG_EVENT, DWORD) |
Functions | |
| static void | InitializeWaitForDebugEvent () |
| WaitForDebugEventEx is only available on Windows 10+. | |
| static std::optional< std::string > | ConvertNtDevicePathToDosPath (llvm::ArrayRef< wchar_t > nt_path) |
| static std::optional< std::string > | GetFileNameFromHandleFallback (HANDLE hFile) |
| static std::optional< std::string > | GetFileNameByLoadAddress (HANDLE process, LPVOID base_addr) |
| static SIZE_T | BytesReadableAt (HANDLE process, LPCVOID addr) |
| static std::optional< std::string > | ReadRemotePathStringW (HANDLE process, LPCVOID addr) |
| static std::optional< std::string > | ReadRemotePathStringA (HANDLE process, LPCVOID addr) |
| static std::optional< std::string > | GetFileNameFromImageNameField (HANDLE process, const LOAD_DLL_DEBUG_INFO &info) |
Variables | |
| static WaitForDebugEventFn * | g_wait_for_debug_event = nullptr |
| #define STATUS_WX86_BREAKPOINT 0x4000001FL |
Definition at line 40 of file DebuggerThread.cpp.
Referenced by lldb_private::DebuggerThread::DebugLoop(), lldb_private::DebuggerThread::HandleExceptionEvent(), and lldb_private::NativeProcessWindows::OnDebugException().
| typedef BOOL WINAPI WaitForDebugEventFn(LPDEBUG_EVENT, DWORD) |
Definition at line 46 of file DebuggerThread.cpp.
|
static |
Definition at line 611 of file DebuggerThread.cpp.
Referenced by ReadRemotePathStringA(), and ReadRemotePathStringW().
|
static |
Definition at line 479 of file DebuggerThread.cpp.
References lldb_private::Event, lldb_private::GetLog(), and LLDB_LOG.
Referenced by GetFileNameByLoadAddress(), and GetFileNameFromHandleFallback().
|
static |
Definition at line 578 of file DebuggerThread.cpp.
References ConvertNtDevicePathToDosPath().
Referenced by lldb_private::DebuggerThread::HandleLoadDllEvent().
|
static |
Definition at line 551 of file DebuggerThread.cpp.
References ConvertNtDevicePathToDosPath(), lldb_private::AutoHandle::get(), and lldb_private::AutoHandle::IsValid().
Referenced by lldb_private::DebuggerThread::HandleLoadDllEvent().
|
static |
Definition at line 672 of file DebuggerThread.cpp.
References ReadProcessMemory(), ReadRemotePathStringA(), and ReadRemotePathStringW().
Referenced by lldb_private::DebuggerThread::HandleLoadDllEvent().
|
static |
WaitForDebugEventEx is only available on Windows 10+.
This lazily checks if the function is available and falls back to WaitForDebugEvent if unavailable. The -Ex version ensures correct forwarding of OutputDebugStringW events.
Definition at line 53 of file DebuggerThread.cpp.
References g_wait_for_debug_event, lldb_private::GetLog(), lldb_private::Host, and LLDB_LOG.
Referenced by lldb_private::DebuggerThread::DebuggerThread().
|
static |
Definition at line 649 of file DebuggerThread.cpp.
References BytesReadableAt(), and ReadProcessMemory().
Referenced by GetFileNameFromImageNameField().
|
static |
Definition at line 624 of file DebuggerThread.cpp.
References BytesReadableAt(), and ReadProcessMemory().
Referenced by GetFileNameFromImageNameField().
|
static |
Definition at line 47 of file DebuggerThread.cpp.
Referenced by lldb_private::DebuggerThread::DebugLoop(), and InitializeWaitForDebugEvent().