[Lldb-commits] [lldb] b5491dd - ObjectFile: add a case for `EM_RISCV`
Saleem Abdulrasool via lldb-commits
lldb-commits at lists.llvm.org
Fri Mar 4 13:55:14 PST 2022
Author: Saleem Abdulrasool
Date: 2022-03-04T21:54:20Z
New Revision: b5491dd30792c1ad31bfc8e2f9d1809a79205234
URL: https://github.com/llvm/llvm-project/commit/b5491dd30792c1ad31bfc8e2f9d1809a79205234
DIFF: https://github.com/llvm/llvm-project/commit/b5491dd30792c1ad31bfc8e2f9d1809a79205234.diff
LOG: ObjectFile: add a case for `EM_RISCV`
This adds the jump slot mapping for RISCV. This enables lldb to attach to a
remote debug server. Although this doesn't enable debugging RISCV targets, it
is sufficient to attach, which is a slight improvement.
Tested with DebugServer2:
~~~
(lldb) gdb-remote localhost:1234
(lldb) Process 71438 stopped
* thread #1, name = 'reduced', stop reason = signal SIGTRAP
frame #0: 0x0000003ff7fe1b20
error: Process 71438 is currently being debugged, kill the process before connecting.
(lldb) register read
general:
x0 = 0x0000003ff7fe1b20
x1 = 0x0000002ae00d3a50
x2 = 0x0000003ffffff3e0
x3 = 0x0000002ae01566e0
x4 = 0x0000003fe567c7b0
x5 = 0x0000000000001000
x6 = 0x0000002ae00604ec
x7 = 0x00000000000003ff
x8 = 0x0000003fffc22db0
x9 = 0x0000000000000000
x10 = 0x0000000000000000
x11 = 0x0000002ae603b1c0
x12 = 0x0000002ae6039350
x13 = 0x0000000000000000
x14 = 0x0000002ae6039350
x15 = 0x0000002ae6039350
x16 = 0x73642f74756f3d5f
x17 = 0x00000000000000dd
x18 = 0x0000002ae6038f08
x19 = 0x0000002ae603b1c0
x20 = 0x0000002b0f3d3f40
x21 = 0x0000003ff0b212d0
x22 = 0x0000002b0f3a2740
x23 = 0x0000002b0f3de3a0
x24 = 0x0000002b0f3d3f40
x25 = 0x0000002ad6929850
x26 = 0x0000000000000000
x27 = 0x0000002ad69297c0
x28 = 0x0000003fe578b364
x29 = 0x000000000000002f
x30 = 0x0000000000000000
x31 = 0x0000002ae602401a
pc = 0x0000003ff7fe1b20
ft0 = 0
ft1 = 0
ft2 = 0
ft3 = 0
ft4 = 0
ft5 = 0
ft6 = 0
ft7 = 0
fs0 = 0
fs1 = 0
fa0 = 0
fa1 = 0
fa2 = 0
fa3 = 0
fa4 = 0
fa5 = 0
fa6 = 0
fa7 = 9.10304232197721e-313
fs2 = 0
fs3 = 1.35805727667792e-312
fs4 = 1.35589259164679e-312
fs5 = 1.35805727659887e-312
fs6 = 9.10304232355822e-313
fs7 = 0
fs8 = 9.10304233027751e-313
fs9 = 0
fs10 = 9.10304232948701e-313
fs11 = 1.35588724164707e-312
ft8 = 0
ft9 = 9.1372158616833e-313
ft10 = 9.13720376537528e-313
ft11 = 1.356808717416e-312
3 registers were unavailable.
(lldb) disassemble
error: Failed to disassemble memory at 0x3ff7fe1b2
~~~
Added:
Modified:
lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp b/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp
index f0496beba2ef4..abda0cd0e9a38 100644
--- a/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp
+++ b/lldb/source/Plugins/ObjectFile/ELF/ELFHeader.cpp
@@ -208,6 +208,9 @@ unsigned ELFHeader::GetRelocationJumpSlotType() const {
case EM_S390:
slot = R_390_JMP_SLOT;
break;
+ case EM_RISCV:
+ slot = R_RISCV_JUMP_SLOT;
+ break;
}
return slot;
More information about the lldb-commits
mailing list