2012-03-08 10 views
5

Desidero essere in grado di specificare un sottoinsieme di tutte le eccezioni C++ per Xcode (lldb) da suddividere. Sembra che questo è supportata nell'interfaccia utente:Cosa mi manca dei breakpoint di eccezione C++ in Xcode 4.3?

ScreenShot

Ma per la vita di me, non riesco a farlo funzionare. Se lo lascio impostato su "Tutte le eccezioni di C++" di default, funziona e ogni eccezione generata genera il breakpoint. Se tento di specificare un'eccezione per nome, il punto di interruzione è mai attivato.

Qualcun altro ha avuto problemi con questo, o è solo un mio problema?

risposta

3

Nonostante l'interfaccia utente, lldb non è in grado di impostare punti di interruzione su specifiche eccezioni C++ o non risolve il nome correttamente.

Ho impostato un punto di interruzione per std::underflow_error e quindi utilizzando il comando lldb breakpoint list, determinato pone solo un punto di interruzione simbolica std::underflow_error:

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

Ho il sospetto che lldb non risolve std::underflow_error al costruttore. Anche la manipolazione del nome in C++ potrebbe avere qualcosa a che fare con esso.

Se si crea un punto di interruzione per tutti eccezioni C++, si vedrà si crea un punto di interruzione simbolico __cxa_throw:

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

    10.1: where = libc++abi.dylib`__cxa_throw, address = 0x01cefa44, resolved, hit count = 0 

si potrebbe essere in grado di mettere un punto di interruzione nel costruttore della deroga che ti interessa , supponendo che sia istanziato e lanciato allo stesso punto.