[lldb-dev] [Bug 37485] New: LLDB reads wrong registers on 64bit Windows
lldb-dev at lists.llvm.org
Wed May 16 05:57:16 PDT 2018
Bug ID: 37485
Summary: LLDB reads wrong registers on 64bit Windows
OS: Windows NT
Component: All Bugs
Assignee: lldb-dev at lists.llvm.org
Reporter: kenji.koyanagi at gmail.com
CC: llvm-bugs at lists.llvm.org
LLDB reads wrong registers on 64bit Windows because
RegisterContextWindows_x64::GetRegisterInfoAtIndex returns wrong reference.
I encountered broken backtrace when the program stopped at function which does
not have prologue code, such as compiled with '-fomit-frame-pointer'.
In this situation, CFA is equal to rsp but LLDB reads r9.
I investigated the cause.
RegisterContextWindows_x64::GetRegisterInfoAtIndex depends the order of
lldb_XXX_x86_64 values, but RegisterIndex/g_register_infos/g_gpr_reg_indices
does not follow order.
The order of GPRs is rax, rbx, rcx, rdx, rdi, rsi, rbp, rsp, r8, ...
The order of GPRs is rax, rbx, rcx, rdx, rdi, rsi, r8, r9, r10, ...
I am using is what I built by myself on MinGW.
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the lldb-dev