2009-07-22 16 views
79

Questa è stata la risposta del Larson brad su questo SO domandaCome aggiungere un punto di interruzione a objc_exception_throw?

Se si aggiungono due punti di interruzione, si dovrebbe essere in grado di eseguire il debug di queste eccezioni. Per farlo, vai su Esegui | Mostra | Punti di interruzione e creare due punti di rottura globali (li faccio globalmente perché sono così utili in tutte le mie applicazioni). Il primo dovrebbe essere chiamato "objc_exception_throw" e la sua posizione dovrebbe essere "libobjc.A.dylib". Il secondo dovrebbe essere "- [NSException raise]" e la sua posizione dovrebbe essere "CoreFoundation".

Ora, se si avvia il debug dell'applicazione con i punti di interruzione abilitati, è necessario interrompere il lancio di queste eccezioni. Dovresti quindi essere in grado di vedere la catena di eventi che ha portato all'eccezione all'interno del debugger.

ora in questa risposta voglio chiedere come aggiungo la posizione menzionata ???

+0

Chiunque ha schermate/percorsi di menu per XCode 4? – buildsucceeded

+2

Dai un'occhiata a questa discussione sui forum Apple Dev per istruzioni su come farlo in XCode 4: https://devforums.apple.com/thread/68421 –

risposta

81

Penso che la risposta di Brad sia abbastanza chiara; spero che questo possa aiutare se non lo trovi chiaro.

In Xcode, dal menu in alto fare clic su Esegui> Mostra> Punti di interruzione. Una nuova finestra si apre.

Selezionare "punti di interruzione globali" nel menu a sinistra. Dovrebbe esserci una casella a destra sotto la colonna "Breakpoint" con il testo "Double-Click for symbol". Fai un solo clic in questa casella e digita "objc_exception_throw".

Quindi, fare clic sullo spazio accanto a "objc_exception_throw" nella colonna "posizione". Verrà visualizzata una finestra in cui digitare la posizione (in questo caso, "libobjc.A.dylib"). Ho fatto uno screenshot che, si spera aiuterà:

alt text

+0

grazie per la tua risposta molto chiara –

+0

Questo è davvero utile, grazie // :) – Spanky

+0

Funziona alla grande. Grazie per il dettaglio. –

4

Vorrei anche raccomandare l'aggiunta del +[NSException raise:format:arguments:] punto di interruzione e la sua posizione dovrebbe essere CoreFoundation.

+0

Grazie @ el-developer –

45

In Xcode 4 questo grande punto di interruzione può essere aggiunto tramite il pulsante "+" nella sezione punti di interruzione (⌘ + 6)

enter image description here

+1

Questo stesso approccio può essere utilizzato in XCode 5 –

+0

Inoltre, è possibile installare [script che stampa la descrizione dell'eccezione nella console] (http://stackoverflow.com/a/29671227/991816), deve avere! – DanSkeel

6

in Xcode 6 - da cima menù

Debug > Punti di interruzione> Crea punto di interruzione di eccezione

+0

Le altre risposte sono cambiate, questa risposta è quella corretta di aprile 2017/Xcode8 – Josh

Problemi correlati