我在Xcode 4.3中对C++异常断点缺少什么?

Mat*_*ing 5 xcode exception ios

我希望能够指定Xcode(lldb)的所有C++异常的子集来打破.UI看起来支持这样:

截图

但是对于我的生活,我无法使它发挥作用.如果我将它设置为默认的"所有C++异常",它将起作用并且抛出的每个异常都会触发断点.如果我尝试按名称指定异常,则永远不会触发断点.

有没有其他人有这个问题,或者这只是我的问题?

Stu*_*nie 3

尽管有 UI,lldb 仍无法在特定 C++ 异常上设置断点,或者无法正确解析名称。

我设置了一个断点std::underflow_error,然后使用该lldb breakpoint list命令,确定它只在以下位置放置一个符号断点std::underflow_error

9: name = 'std::underflow_error', locations = 0 (pending)

我怀疑 lldb 永远不会解析std::underflow_error为构造函数。C++ 名称修饰也可能与此有关。

如果为所有 C++ 异常创建断点,您将看到它在以下位置创建符号断点__cxa_throw

10: name = '__cxa_throw', locations = 1, resolved = 1

  10.1: where = libc++abi.dylib`__cxa_throw, address = 0x01cefa44, resolved, hit count = 0
Run Code Online (Sandbox Code Playgroud)

您可以在您感兴趣的异常的构造函数中放置一个断点,假设它是在同一点实例化并抛出的。