2013-03-04 11 views
5

Durante il debug della mia app per iPhone, ho ricevuto un errore e l'app si è bloccata. Ho aggiunto un punto di interruzione delle eccezioni, ma non ha indicato alcun punto nel codice e si è bloccato in main.m.Come rintracciare il problema esatto per l'arresto anomalo in iOS

Qui sto aggiungendo la schermata della finestra XCode quando l'app si è bloccata.

enter image description here Come posso trovare il problema esatto per l'arresto da questo?

È possibile? Per favore aiuto.

+0

Anche io ho avuto questo tipo di problemi, ma non sono riuscito a trovare lo stesso problema. Apprezzerei se qualcuno potesse indicare ogni possibile strada qui. :) – Mithun

+0

Se alcuni codici nel programma li mostrano gentilmente. In modo che soomeone possa raggiungere il punto di errore. –

+0

Ho paura quale parte del mio codice ha causato questo problema, mi è stato in modo casuale la navigazione attraverso diversi VC, improvvisamente ho avuto questo problema. Inoltre, nella finestra di debug non ha menzionato alcun codice o funzione. Cosa dovrei fare in questo caso? – Mithuzz

risposta

6

Abilitare Zoombie in modo da ottenere la descrizione dell'errore nel registro.

Se modifichi lo schema per cui vuoi attivare gli zombi (nel menu "Prodotto", seleziona "Modifica schema"), vai alla fase "Esegui Foo.app" nel pannello di sinistra e "Argomenti" "scheda a destra. È quindi possibile aggiungere NSZombieEnabled alla sezione "Variabili d'ambiente" e impostare il valore su SÌ, come in Xcode 3.

In Xcode 4.1 e versioni successive, è presente anche la casella di controllo nella scheda "Diagnostica" di "Esegui". stage a "Abilita oggetti zombi".

+0

Grazie, ma l'ho già abilitato. – Mithuzz

+0

Scusa, in realtà ho dimenticato di aggiungere la seconda opzione, ora abilitata anche quella. Grazie :) – Mithuzz

+0

Ho modificato le impostazioni come già menzionato e testato. Ho avuto di nuovo il problema con il crash ma non mi ha mostrato alcun dettaglio. – Mithuzz

3

Aggiungere un Exception breakpoint e il debugger si fermerà sulla linea che si arresta in modo anomalo.

+0

L'ho già fatto, stava indicando alcuni altri problemi, ma quando si verifica questo errore, non è successo nulla. È possibile trovare il problema dalla finestra di Debug Navigator? – Mithuzz

6

fare clic su EditScheme in XCode. allora lo schermo sarà mostrato come sotto. fare clic su Abilita oggetti Zombie. Verrà visualizzato l'errore nel registro.

enter image description here

+0

Grazie, in realtà ho dimenticato quell'opzione, lo abilito e riprovo. – Mithuzz

+0

Scusa, penso che Melbourne abbia detto la stessa risposta prima di te, quindi dovrei accettare la sua risposta, giusto? Non ti preoccupare ti ho dato un Upvote e ho davvero apprezzato il tuo aiuto con la schermata esatta, è stato molto facile da capire. Grazie :) – Mithuzz

+0

@Mithuzz. Questo non è solo per te. Così molti programmatori cercheranno di capire la risposta corretta. Lo screenshot è una risposta più accettabile per questo tipo di domanda. dobbiamo dare un percorso migliore ai nuovi programmatori. – Suresh

1

Non sono sicuro, ma la lettura dei registri potrebbe aiutare.

Prima vai alla scheda Eccezioni e "Aggiungi punto di interruzione eccezione" usando il + nell'angolo in basso a sinistra. enter image description here

Poi, quando l'applicazione si blocca clicca su "0 objc_exception_throw" sotto Discussione 1 enter image description here

Infine nella console immettere:

  • registro leggere (si dovrebbe ottenere un elenco di registri)
  • po $ rax (normalmente l'eccezione è in 'rax')

    (dovresti vedere l'output dell'eccezione sulla console)

Spero che questo aiuti.

Problemi correlati