linux - 在lldb调试器中,为什么程序计数器会倒退?
问题描述
我面临的问题是,在不断敲击step over
命令时,您可以期望程序计数器箭头 ( ->
) 一次移动到底部的一行(或多行)。我有一个软件让 lldb 不能那样工作。所以对于那些熟悉 lldb 行为的人,我想这与 gdb 没有什么不同,你知道为什么会发生这样的事情吗?
一开始它可能看起来并不重要,但在调试一段我不熟悉的代码并尝试从交互式调试器会话中研究它时,我发现它令人困惑。
在 lldb 中运行source info
时,在 positionX1
和 thenX2
中,我可以看到这两行的连续非重叠范围越来越大。但问题是X1
> X2
...
解决方案
您是否正在使用优化进行编译?如果是这样,编译器通常会生成看起来随机跳动的代码。这也意味着许多变量在变量视图中通常不可用。我会尝试使用 -O0 进行编译以获得最佳调试体验。
推荐阅读
- java - 我如何创建新线程来执行某些任务并在任务完成后停止线程
- c# - 在循环中的两点之间移动对象?
- matlab - 通过 FFT 进行整合/差异化
- java - 如何在 Android 中对 List 使用 forech 条件
- powerbi - 如何根据客户细分对我的巧克力切片机进行分类?
- python - Visual Studio 代码中的 Python Azure 函数 - DLL 错误
- assembly - 创建 ac 文件,该文件创建一个与常数相乘的程序集文件
- jquery - 尽管在脚本中定义了 Ajax 函数,但无法识别它
- android - FlutterActivity MethodChannel 和 FlutterView
- c# - 如何更新 Firebase 实时数据库中的 2 个独立节点