【问题标题】:lldb breakpoint set command failslldb 断点设置命令失败
【发布时间】:2018-01-09 21:51:39
【问题描述】:

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

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

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

什么可能导致此警告?

【问题讨论】:

    标签: xcode xcode8 breakpoints lldb


    【解决方案1】:

    如果&lt;product-name&gt; 是共享库,它可能尚未加载。使用:

    (lldb) image list <product-name>
    

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

    &lt;product-name&gt; 的拼写可能与 lldb 不同,例如 MyApp.app 的模块名称实际上是“MyApp”。尝试在您知道位于 &lt;product-name&gt; 中的名称上设置断点,然后执行 break list 并且输出将具有:

    1.1 where = ModuleName`symbol_name...
    

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

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

    $ nm -ap <PathToBinary>
    

    如果您在此处看不到任何输出,则说明二进制文件已被剥离。你需要弄清楚是谁在这样做并让他们停止......

    【讨论】:

      【解决方案2】:

      呃,看起来你在搜索一个函数

      .

      我猜是找不到的。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-27
        • 2014-07-20
        • 2014-12-25
        • 1970-01-01
        • 2019-12-18
        • 1970-01-01
        • 2016-08-16
        相关资源
        最近更新 更多