使用LLDB(版本179.5,XCode 4.6.3),是否有一个命令可以通过指定符号名称而不是数字ID来禁用断点?有没有办法启用/禁用断点以外的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
。
这很了解;不幸的是,我被卡在XCode 4.6上。 (另外,我正在使用XCode创建断点,尽管我可能会为__cxa_throw之一创建一个例外。) – celticminstrel
@celticminstrel s/4.6/6.4/g –
不可以。 4.6。 XCode 5和更高版本需要Mountain Lion。 – celticminstrel