如何跳转到 lldb 中的特定源代码行?在 gdb 中,它将是“jump X”,其中 X 是行号,但我能为 lldb 找到的唯一引用是 http://lldb.llvm.org/lldb-gdb.html其中说:
Skip 8 bytes ahead of the current program counter (instruction pointer). Note that we use backticks to evaluate an expression and insert the scalar result in LLDB.
(gdb) jump *$pc+8 (lldb) register write pc `$pc+8`
FWIW,在 MacOS 上,用“rip”替换“pc”似乎可行。
但是使用这种方法跳转到特定行似乎相当困难。有没有更好的方法来跳转lldb?
最佳答案
几天前,如何在 Python 中执行此操作的示例已添加到 lldb 存储库中。请参阅http://llvm.org/svn/llvm-project/lldb/trunk/examples/python/jump.py
将该文件的内容保存到您的主目录,可能类似于 ~/lldb/jump.py
并使用类似命令将其加载到您的 lldb
command script import ~/lldb/jump.py
(或将其放入您的 ~/.lldbinit
文件中),您将获得一个 jump
命令。
请注意,使用 Objective-C 程序中的 ARC(自动引用计数),您可以通过跳转来 super 轻松地搞砸您的程序 - 许多看起来无害的跳转实际上并非如此。这绝对属于调试器技巧的“用户小心”/“祝你好运”类别。
关于c++ - 跳转到 lldb 中的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413236/