Author: gclayton Date: Fri Jan 18 09:06:01 2019 New Revision: 351564 URL: http://llvm.org/viewvc/llvm-project?rev=351564&view=rev Log: Make sure to fill in the compiler register number so when we try to backtrace using EH frame, it works.
Prior to this, backtraces could fail due to not being able to convert a EH frame register number to LLDB register number. Modified: lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp Modified: lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp?rev=351564&r1=351563&r2=351564&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp (original) +++ lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM.cpp Fri Jan 18 09:06:01 2019 @@ -30,33 +30,35 @@ using namespace minidump; #define DEF_R(i) \ { \ "r" #i, nullptr, 4, OFFSET(r) + i * 4, eEncodingUint, eFormatHex, \ - {INV, dwarf_r##i, INV, INV, reg_r##i}, nullptr, nullptr, nullptr, 0 \ + {dwarf_r##i, dwarf_r##i, INV, INV, reg_r##i}, \ + nullptr, nullptr, nullptr, 0 \ } #define DEF_R_ARG(i, n) \ { \ "r" #i, "arg" #n, 4, OFFSET(r) + i * 4, eEncodingUint, eFormatHex, \ - {INV, dwarf_r##i, LLDB_REGNUM_GENERIC_ARG1 + i, INV, reg_r##i}, \ + {dwarf_r##i, dwarf_r##i, LLDB_REGNUM_GENERIC_ARG1 + i, INV, reg_r##i}, \ nullptr, nullptr, nullptr, 0 \ } #define DEF_D(i) \ { \ "d" #i, nullptr, 8, OFFSET(d) + i * 8, eEncodingVector, \ - eFormatVectorOfUInt8, {INV, dwarf_d##i, INV, INV, reg_d##i}, \ + eFormatVectorOfUInt8, {dwarf_d##i, dwarf_d##i, INV, INV, reg_d##i}, \ nullptr, nullptr, nullptr, 0 \ } #define DEF_S(i) \ { \ "s" #i, nullptr, 4, OFFSET(s) + i * 4, eEncodingIEEE754, eFormatFloat, \ - {INV, dwarf_s##i, INV, INV, reg_s##i}, nullptr, nullptr, nullptr, 0 \ + {dwarf_s##i, dwarf_s##i, INV, INV, reg_s##i}, \ + nullptr, nullptr, nullptr, 0 \ } #define DEF_Q(i) \ { \ "q" #i, nullptr, 16, OFFSET(q) + i * 16, eEncodingVector, \ - eFormatVectorOfUInt8, {INV, dwarf_q##i, INV, INV, reg_q##i}, \ + eFormatVectorOfUInt8, {dwarf_q##i, dwarf_q##i, INV, INV, reg_q##i}, \ nullptr, nullptr, nullptr, 0 \ } Modified: lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp?rev=351564&r1=351563&r2=351564&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp (original) +++ lldb/trunk/source/Plugins/Process/minidump/RegisterContextMinidump_ARM64.cpp Fri Jan 18 09:06:01 2019 @@ -29,8 +29,8 @@ using namespace minidump; #define DEF_X(i) \ { \ "x" #i, nullptr, 8, OFFSET(x) + i * 8, eEncodingUint, eFormatHex, \ - {INV, arm64_dwarf::x##i, INV, INV, reg_x##i}, nullptr, nullptr, \ - nullptr, 0 \ + {arm64_dwarf::x##i, arm64_dwarf::x##i, INV, INV, reg_x##i}, \ + nullptr, nullptr, nullptr, 0 \ } #define DEF_W(i) \ @@ -42,15 +42,15 @@ using namespace minidump; #define DEF_X_ARG(i, n) \ { \ "x" #i, "arg" #n, 8, OFFSET(x) + i * 8, eEncodingUint, eFormatHex, \ - {INV, arm64_dwarf::x##i, LLDB_REGNUM_GENERIC_ARG1 + i, INV, reg_x##i}, \ - nullptr, nullptr, nullptr, 0 \ + {arm64_dwarf::x##i, arm64_dwarf::x##i, LLDB_REGNUM_GENERIC_ARG1 + i, \ + INV, reg_x##i}, nullptr, nullptr, nullptr, 0 \ } #define DEF_V(i) \ { \ "v" #i, nullptr, 16, OFFSET(v) + i * 16, eEncodingVector, \ - eFormatVectorOfUInt8, {INV, arm64_dwarf::v##i, INV, INV, reg_v##i}, \ - nullptr, nullptr, nullptr, 0 \ + eFormatVectorOfUInt8, {arm64_dwarf::v##i, arm64_dwarf::v##i, INV, INV, \ + reg_v##i}, nullptr, nullptr, nullptr, 0 \ } #define DEF_D(i) \ @@ -314,7 +314,7 @@ static RegisterInfo g_reg_infos[] = { OFFSET(x) + 29 * 8, eEncodingUint, eFormatHex, - {INV, arm64_dwarf::x29, LLDB_REGNUM_GENERIC_FP, INV, reg_fp}, + {arm64_dwarf::x29, arm64_dwarf::x29, LLDB_REGNUM_GENERIC_FP, INV, reg_fp}, nullptr, nullptr, nullptr, @@ -325,7 +325,7 @@ static RegisterInfo g_reg_infos[] = { OFFSET(x) + 30 * 8, eEncodingUint, eFormatHex, - {INV, arm64_dwarf::x30, LLDB_REGNUM_GENERIC_RA, INV, reg_lr}, + {arm64_dwarf::x30, arm64_dwarf::x30, LLDB_REGNUM_GENERIC_RA, INV, reg_lr}, nullptr, nullptr, nullptr, @@ -336,7 +336,7 @@ static RegisterInfo g_reg_infos[] = { OFFSET(x) + 31 * 8, eEncodingUint, eFormatHex, - {INV, arm64_dwarf::x31, LLDB_REGNUM_GENERIC_SP, INV, reg_sp}, + {arm64_dwarf::x31, arm64_dwarf::x31, LLDB_REGNUM_GENERIC_SP, INV, reg_sp}, nullptr, nullptr, nullptr, @@ -347,7 +347,7 @@ static RegisterInfo g_reg_infos[] = { OFFSET(pc), eEncodingUint, eFormatHex, - {INV, arm64_dwarf::pc, LLDB_REGNUM_GENERIC_PC, INV, reg_pc}, + {arm64_dwarf::pc, arm64_dwarf::pc, LLDB_REGNUM_GENERIC_PC, INV, reg_pc}, nullptr, nullptr, nullptr, _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits