【发布时间】:2015-06-30 20:37:52
【问题描述】:
使用 LLDB(版本 179.5,带有 XCode 4.6.3),是否有可以通过指定符号名称而不是数字 ID 来禁用断点的命令?
上下文:我正在使用 Boost.Spirit(经典)解析文件,作为解析的一部分,可能会抛出许多异常然后捕获。抛出异常时中断没有用,但我想在 Spirit 之外抛出异常时中断。
我可以使用条件断点获得我想要的单次运行行为 - 首先,我使用 break list 查找 __cxa_throw 断点的数字 ID。假设结果是2。然后我可以在调用 Spirit 之前设置断点,在评估后设置为继续,并添加一个 LLDB 操作break disable 2。然后我在 Spirit 返回后设置另一个类似的断点,break enable 2。
问题是,我不能依靠数字 ID 在程序的多次调用中保持不变。我希望能够设置一些不需要我在每次运行程序时都修复它的东西。
我发现this question 看起来可能能够实现类似的结果,但我更喜欢启用/禁用方法,因为它更灵活(例如,允许您忽略代码某些区域中的断点但不是其他人)。不过,我也不完全清楚是否需要做任何额外的事情来让 lldb 在被 Xcode 调用时使用.lldb_init。
【问题讨论】: