2012-03-08 16 views
5

私は、Xcode(lldb)が中断するためのすべてのC++例外のサブセットを指定できるようにします。Xcode 4.3でC++例外ブレークポイントについて何が欠けていますか?

ScreenShot

をしかし、私の人生のために、私はそれを動作させることはできません。これはUIでサポートされているように見えます。デフォルトの "All C++ Exceptions"のままにしておくと動作し、スローされたすべての例外がブレークポイントをトリガーします。名前で例外を指定しようとすると、ブレークポイントはとなり、決してがトリガーされます。

他に誰かがこれに問題があったのですか、これはちょうど私の問題ですか?

答えて

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 

はあなたが興味のある例外のコンストラクタにブレークポイントを置くことができるかもしれませんそれがインスタンス化され、同じ地点でスローされたと仮定します。