[a64] Implement guest-debugger stalk-walks

This commit is contained in:
Wunkolo 2024-05-16 09:39:49 -07:00
parent eb0736eb25
commit f7bd0c89a3
1 changed files with 8 additions and 2 deletions

View File

@ -58,6 +58,12 @@ LPSYMFUNCTIONTABLEACCESS64 sym_function_table_access_64_ = nullptr;
LPSYMGETMODULEBASE64 sym_get_module_base_64_ = nullptr;
LPSYMGETSYMFROMADDR64 sym_get_sym_from_addr_64_ = nullptr;
#if XE_ARCH_AMD64
static const DWORD kMachineType = IMAGE_FILE_MACHINE_AMD64;
#elif XE_ARCH_ARM64
static const DWORD kMachineType = IMAGE_FILE_MACHINE_ARM64;
#endif
namespace xe {
namespace cpu {
@ -235,8 +241,8 @@ class Win32StackWalker : public StackWalker {
// not.
size_t frame_index = 0;
while (frame_index < frame_count &&
stack_walk_64_(IMAGE_FILE_MACHINE_AMD64, GetCurrentProcess(),
thread_handle, &stack_frame, &thread_context, nullptr,
stack_walk_64_(kMachineType, GetCurrentProcess(), thread_handle,
&stack_frame, &thread_context, nullptr,
XSymFunctionTableAccess64, XSymGetModuleBase64,
nullptr) == TRUE) {
if (frame_index >= frame_offset) {