【发布时间】:2011-12-28 16:08:40
【问题描述】:
我正在尝试使用 lldb 进行 c++ 调试,如果抛出异常,我想停止,例如 gdb 的 catch throw,但我在 lldb 文档中找不到等效项。
【问题讨论】:
我正在尝试使用 lldb 进行 c++ 调试,如果抛出异常,我想停止,例如 gdb 的 catch throw,但我在 lldb 文档中找不到等效项。
【问题讨论】:
使用break set -E c++ 中断所有异常,使用break set -F std::range_error 中断特定异常。
【讨论】:
在 Xcode 中,您可以设置一个 Exception 断点(查看 > 导航器 > 显示断点导航器,点击断点列表窗口底部的 + 按钮以添加新断点)。
如果您使用的是命令行 lldb,请在 __cxa_throw 上设置断点以引发 C++ 异常,objc_exception_throw 以引发 Objective-C 异常。
对于所有 c++ 异常:break set -E C++。
【讨论】:
break set -E c++ 对我不起作用(可能是因为我使用的是真正的 GNU g++ 而不是 Apple 的 clang++?),但 break set -n __cxa_throw 对我有用。 @AnthonyHall 的评论缺少 set。
我认为breakpoint set -w <boolean>是正确答案,你可以使用help breakpoint set查看文档。
【讨论】: