aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CoverageMappingGen.cpp
diff options
context:
space:
mode:
authorStella Stamenova <stilis@microsoft.com>2018-05-17 21:42:37 +0000
committerStella Stamenova <stilis@microsoft.com>2018-05-17 21:42:37 +0000
commit5b5350ddee0957db31812f544655f06570fa436d (patch)
treeb007bc2b29c04c4a18099c7aa5459c55fefea585 /clang/lib/CodeGen/CoverageMappingGen.cpp
parent0fd67b537bdf5afe09dff10ff3fe325c1a949efe (diff)
downloadllvm-5b5350ddee0957db31812f544655f06570fa436d.zip
llvm-5b5350ddee0957db31812f544655f06570fa436d.tar.gz
llvm-5b5350ddee0957db31812f544655f06570fa436d.tar.bz2
[Windows, Process] LLDB reads wrong registers on 64bit Windows
Summary: 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. 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. In source/Plugins/Process/Utility/lldb-x86-register-enums.h The order of GPRs is rax, rbx, rcx, rdx, rdi, rsi, rbp, rsp, r8, ... In source/Plugins/Process/Windows/Common/x64/RegisterContextWindows_x64.cpp The order of GPRs is rax, rbx, rcx, rdx, rdi, rsi, r8, r9, r10, ... Patch by Kenji Koyanagi llvm-svn: 332671
Diffstat (limited to 'clang/lib/CodeGen/CoverageMappingGen.cpp')
0 files changed, 0 insertions, 0 deletions