2013-03-01 10 views
6

Ho usato per ottenere i dettagli di eccezione provenienti da applicazioni in esecuzione nel simulatore in questo modo:Come posso ottenere i dettagli delle eccezioni in XCode 4.6?

po $eax 

Da quando ho aggiornato a XCode 4.6 è smesso di funzionare; Ho sempre trovato questo errore:

error: warning: couldn't get object pointer (substituting NULL): 
Couldn't find '_cmd' with appropriate type in scope 
Couldn't materialize struct: Couldn't read eax (materialize) 
Errored out in Execute, couldn't PrepareToExecuteJITExpression 

Ho visto persone consiglia di utilizzare questo:

register read eax 

Ma che mi dà questo errore:

eax   = error: unavailable 

Come faccio ad avere i dettagli di eccezione in XCode 4.6?

+0

Che tipo di eccezione ti riferisci? Objective-C o C++ o qualcos'altro? – trojanfoe

+0

Eccezioni C-Objective. – Simon

+0

E perché non interrompi invece 'objc_exception_throw'? – trojanfoe

risposta

26

Se si interrompe il objc_exception_throw il frame di stack selezionato è l'ultimo frame del codice, prima di chiamare qualsiasi libreria che potrebbe aver generato l'eccezione. A quel punto lldb non consente di accedere ad alcune dei registri (vedi this answer per una possibile spiegazione

per ottenere i dettagli di eccezione si deve selezionare il frame objc_exception_throw stack:.

Select the objc_exception_throw stack frame

Ora po $eax (po $rax se si esegue su OS X a 64 bit, po $r0 su iPhone/iPad, po $x0 su arm64) dovrebbe darvi i dettagli di eccezione

+0

Anche questo funziona con i punti di interruzione delle eccezioni. Grazie! – Simon

+0

Contento di aver potuto aiutare. Giusto per chiarire: l'interruzione di "objc_exception_throw' ** è ** un punto di interruzione di eccezione. – Sebastian

+0

È un punto di interruzione e si interrompe sulle eccezioni, ma non è la funzione XCode il cui nome è 'Eccezione Breakpoint'. – Simon

-3

Vai a:.

Product -> Scheme -> Edit Scheme -> Run on the left -> diagnostics tab 

e quindi attivare zombie

3

Non ho nulla da aggiungere, basta usare this awesome guide che si aiuta l'installazione eccezione breakpoint con azione (copione) che stampa descrizione eccezione nella console.

Problemi correlati