lldb断点设置命令失败
问题描述:
我正在尝试使用lldb
的编程断点设置。命令是:lldb断点设置命令失败
(lldb) breakpoint set -r . -s <product-name>
Breakpoint 25: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
正如您所看到的,它会引发警告,说它无法解析断点的位置。我正在使用调试方案运行我的项目并且没有进行优化。
什么可能导致此警告?
答
如果<product-name>
是共享库,它可能尚未加载。使用方法:
(lldb) image list <product-name>
进行验证。如果是这样的话,不要担心,lldb会在库加载时解决断点问题。
您可能也有不同于lldb的拼写<product-name>
,例如MyApp.app的模块名称实际上是“MyApp”。尝试设置你知道是<product-name>
名称的断点,然后做break list
和输出将有:
1.1 where = ModuleName`symbol_name...
模块名是你想传递给-s什么。
请注意,如果您知道的符号名称上的断点不能解析到任何位置,则可能在调试之前剥离了二进制文件。您可以通过找到二进制(image list
会告诉你这也),并在终端验证这一点,运行:
$ nm -ap <PathToBinary>
,如果你没有看到这里的任何输出,则二进制得到剥离。你需要弄清楚谁在这样做,并让他们停止...