【发布时间】:2020-04-03 03:08:13
【问题描述】:
我想知道 LLDB 的内存转储器是否可以在我刚刚设置了一个断点的位置查看陷阱操作码? 正如我所见,LLDB 足够聪明,可以用原始操作码隐藏陷阱操作码:
(lldb) memory read --format instruction --count 5 0x00000076619b5478
-> 0x76619b5478: 0xf9401668 ldr x8, [x19, #0x28]
0x76619b547c: 0xf9400289 ldr x9, [x20]
0x76619b5480: 0xeb09011f cmp x8, x9
0x76619b5484: 0x540000e1 b.ne 0x76619b54a0 ; <+200>
0x76619b5488: 0xa95d7bf3 ldp x19, x30, [sp, #0x1d0]
(lldb) breakpoint set --address 0x76619b5488
Breakpoint 3: where = libface_detector_v2_jni.so`___lldb_unnamed_symbol20247$$libface_detector_v2_jni.so + 176, address = 0x00000076619b5488
(lldb) memory read --format instruction --count 5 0x00000076619b5478
-> 0x76619b5478: 0xf9401668 ldr x8, [x19, #0x28]
0x76619b547c: 0xf9400289 ldr x9, [x20]
0x76619b5480: 0xeb09011f cmp x8, x9
0x76619b5484: 0x540000e1 b.ne 0x76619b54a0 ; <+200>
0x76619b5488: 0xa95d7bf3 ldp x19, x30, [sp, #0x1d0]
在这里,我在0x76619b5488 设置了一个休息点,但 dumper 仍然在那个地方显示原始指令。
help memory read 没有关于如何看到陷阱操作码的提示。
有什么想法吗?
附:它是一个与 Android SDK 捆绑在一起的 LLDB,声称版本:7.0.0。目标是 Android Aarch64。
【问题讨论】:
标签: linux android-ndk gdb llvm lldb