gpt4 book ai didi

c++ - 跳转到 lldb 中的行号

转载 作者:搜寻专家 更新时间:2023-10-31 01:50:14 25 4
gpt4 key购买 nike

在lldb中如何跳转到特定的源代码行?在 gdb 中,它将是“跳转 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com