lldb breakpoint set命令失败

时间:2017-08-02 15:16:31

标签: xcode xcode8 breakpoints lldb

我正在尝试使用lldb的程序断点设置。命令是:

(lldb) breakpoint set -r . -s <product-name>
Breakpoint 25: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.

正如您所看到的,它向我发出警告,说它无法解析断点的位置。我正在使用调试方案运行我的项目而没有优化。

可能导致此警告的原因是什么?

2 个答案:

答案 0 :(得分:0)

如果<product-name>是共享库,则可能尚未加载。使用:

(lldb) image list <product-name>

验证。如果是这种情况,请不要担心,lldb会在加载库时解析断点。

您可能也有不同于<product-name>的拼写而不是lldb,例如MyApp.app的模块名称实际上是&#34; MyApp&#34;。尝试在您知道的名称<product-name>上设置断点,然后执行break list,输出将包含:

1.1 where = ModuleName`symbol_name...

ModuleName是您要传递给-s的内容。

注意,如果您知道的符号名称上的断点没有解析到任何位置,那么您可能在调试之前剥离二进制文件。您可以通过查找二进制文件来验证这一点(image list也会告诉您),并在终端中运行:

$ nm -ap <PathToBinary>

如果你在这里看不到任何输出,那么二进制文件就会被剥离。你需要找出谁在做这件事并让他们停下来......

答案 1 :(得分:0)

嗯,就像您在搜索函数

  

找不到是我的猜测。

在古老的Macsbug时代,点代表当前的PC,但在lldb中不起作用。