2011-11-11 1 views
10

Quando i miei applicazione si blocca, invece di vedere quale linea ha causato, vedo una finestra che consente di stampare tutto il codice di byte illeggibile. Ero abituato a vedere in quale linea andava a finire, ma devo aver cambiato qualcosa. Ecco una schermata: ScreenshotXCode 4 iOS - Debugger mostra bytecode invece di dirmi quale linea si è schiantato la mia app

Quale impostazione è possibile modificare per far sì che XCode mostri dove si è bloccata la mia app?

+0

non ho ancora trovato una risposta, ma ho passato un sacco di tempo pettinatura attraverso internet cercando di capirlo io stesso, senza alcuna fortuna. Ho già un punto di interruzione di eccezione, ma perché non riesco a vedere semplicemente quale riga di codice ha colpito la mia app? –

risposta

13

ONU controllo del "Mostra Smontaggio durante il debug" l'opzione di menu:

disassembly



L'inverso di quanto sopra; se si desidera mostrare lo smontaggio per la posizione di debug corrente, è possibile utilizzare questo menu a discesa:

disassembly2

+0

Esattamente quello di cui avevo bisogno! Otterrò la ricompensa quando mi sarà permesso. Molte grazie! –

+0

@ D-Nice Np, felice di aiutare. – chown

6

L'incidente reale potrebbe non essere necessariamente in codice. Il debugger indicherà le istruzioni della macchina che hanno causato l'arresto anomalo. Potrebbe trovarsi in un metodo cocoa-touch o chiamata del sistema operativo che si è bloccato a causa di un parametro errato passato (un puntatore non valido è un colpevole comune).

perché il debugger non ha accesso alla sorgente per il codice che in realtà si è schiantato, che vi mostrerà il codice macchina smontato. Quello che devi fare è seguire lo stack delle chiamate all'indietro fino a raggiungere il tuo codice. Questo dovrebbe indicare la linea di codice nella tua app che (indirettamente) ha causato l'arresto.

+0

+1 per "Potrebbe essere in un metodo cacao-touch o chiamata del sistema operativo che si è bloccato a causa di un parametro errato passato" – Philip007