【发布时间】:2013-03-03 00:51:51
【问题描述】:
如何跳转到 lldb 中的特定源代码行?在 gdb 中,它将是“跳转 X”,其中 X 是行号,但我能找到的 lldb 的唯一参考是 http://lldb.llvm.org/lldb-gdb.html,它说:
在当前程序计数器前跳过 8 个字节(指令 指针)。请注意,我们使用反引号来评估表达式和 将标量结果插入 LLDB。
(gdb) jump *$pc+8 (lldb) register write pc `$pc+8`
FWIW,在 MacOS 上,用“rip”替换“pc”似乎可行。
但是使用这种方法跳转到特定的行似乎相当困难。有没有更好的方法可以跳入lldb?
【问题讨论】:
-
PC(程序计数器)和 IP(指令指针)都是(概念上)相同的东西,它们只是在不同架构中使用的不同名称。 PC 用于基于 PowerPC 和 ARM 的系统(后者包括所有当前的 iOS 设备)。在 x86 上使用 IP,除了 IP 是 16 位时代的原始术语——32 位版本称为 EIP,64 位版本称为 RIP。因此,对于 iOS 目标,您使用
$pc,但对于 Mac OS X,您使用$eip(32 位程序)或$rip(64 位程序)。
标签: c++ objective-c xcode macos lldb