【问题标题】:lldb : Unable to resolve breakpoint in Hello World examplelldb:无法解析 Hello World 示例中的断点
【发布时间】:2015-04-15 12:44:08
【问题描述】:

我在 C++ 中创建了一个 Hello World 示例,并尝试从 Mac OSX 的终端使用 lldb 对其进行调试。

> lldb a.out
Current executable set to 'a.out' (x86_64).

我可以在名称上设置断点(例如'main'),但不能在行号上。如果我尝试

breakpoint set --file test.c --line 5

b test.c:5

我明白了

Breakpoint 1: no locations (pending). 
WARNING:  Unable to resolve breakpoint to any actual locations.

文件“test.c”位于当前文件夹中。出了什么问题?

【问题讨论】:

  • 你如何构建a.out
  • 当然.. 忘记了 -g 标志。谢谢!
  • 这正是我的怀疑:)。你不相信这种情况发生在我身上的频率有多高:)

标签: c++ macos lldb


【解决方案1】:

根据Dwarf Debugging Information Format,行号、文件位置信息以Dwarf格式存储。这些信息就是 GDB 用来设置行号作为断点的信息。

通常,Dwarf 格式信息由编译器生成,例如带有-g 选项的GCC。请尝试使用-g 选项,看看它是否有效。

同时,还有some other debug helpful options in GCC可能对你更有帮助,比如-g3,编译器会生成更详细的调试信息,比如宏。

【讨论】:

    猜你喜欢
    • 2014-05-06
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 2012-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多