【问题标题】:In lldb debugger, why does program counter go backwards?在lldb调试器中,为什么程序计数器会倒退?
【发布时间】:2021-01-23 19:19:21
【问题描述】:

我面临的问题是,在不断点击step over 命令时,如果不处于循环中,您可以期望程序计数器箭头(->)一次移动到底部一行(或多行) .我有一个软件让 lldb 不能那样工作。所以对于那些熟悉 lldb 行为的人,我想这和 gdb 没有什么不同,你知道为什么会发生这样的事情吗?

一开始它似乎并不重要,但在调试一段我不熟悉的代码并尝试从交互式调试器会话中研究它时,我发现它令人困惑。

在位置 X1 然后在 X2 运行 lldb 中的 source info 时,我可以看到这两行的连续非重叠范围越来越大。但问题是X1 > X2...

【问题讨论】:

    标签: linux debugging gdb lldb


    【解决方案1】:

    您是否使用优化进行编译?如果是这样,编译器通常会生成看起来随机跳动的代码。这也意味着许多变量在变量视图中通常不可用。我会尝试使用 -O0 进行编译以获得最佳调试体验。

    【讨论】:

      【解决方案2】:

      嗯,很容易犯错误。我在编译可执行文件后修改了源代码。当然,可执行文件中不存储任何源代码。所以它只是引用文件中的行,因为它知道它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-16
        • 1970-01-01
        • 2018-01-13
        • 2013-09-05
        • 1970-01-01
        • 2016-07-13
        相关资源
        最近更新 更多