2011-12-23 13 views
9

Dopo l'aggiornamento a XCode4 (v. 4.2, 4D199) sembra che ogni volta che le mie applicazioni si bloccano durante il debug, i punti di debug su main() e lo stack non sono simbolizzati e inutili.Il debugger XCode4 si interrompe sempre in Main

Questo funziona da anni, non ho idea di cosa sia andato storto.

Sto usando GDB. Ho anche provato l'LLDB come da this advice e non ha funzionato neanche (stack simile, inutile).

I miei punti di interruzione lavoro, ottengo lo stack completo e posso controllare le variabili quando il mio codice colpisce quelle.

Procedura per riprodurre:

NB. questo accade con il mio progetto, ma io uso il codice di Apple qui per rimuovere quella variabile dall'equazione

  1. scaricare il seguente esempio da Apple: https://developer.apple.com/library/ios/#samplecode/UICatalog/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007710

  2. Nella classe ImagesViewController, aggiungere il seguente codice al metodo viewDidLoad (in modo che andrà in crash - vogliamo che il crash per questo test):

    // please note: this code is designed to crash! I want it to crash, to highlight my issue with XCode. 
    NSMutableArray* test = [NSMutableArray new]; 
    [test insertObject:NULL atIndex:0]; 
    
  3. quindi eseguire ° L'app & colpisce la riga "Immagini".

  4. Si blocca con un messaggio del tipo:

    2011-12-23 14:07:02.788 UICatalog[13394:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil' 
    *** First throw call stack: 
    (0x37bbb8bf 0x316a11e5 0x37b1020f 0x699f 0x34fac7ff 0x34fb8c39 0x34fb8aa9 0x34fb898f 0x34fb815b 0x34fb7f53 0x34fac673 0x34fac349 0x66c1 0x35026565 0x3509ece7 0x31aec943 0x37b8fa63 0x37b8f6c9 0x37b8e29f 0x37b114dd 0x37b113a5 0x3768ffcd 0x34fa1743 0x2459 0x2418) 
    terminate called throwing an exception(gdb) 
    

View in Xcode: enter image description here

+4

Dai un'occhiata a questa discussione: http://stackoverflow.com/questions/7841610/xcode-4-2-debug-doesnt-symbolicate-s tack-call – brigadir

+0

Brigadir, quella soluzione funziona. Grazie mille! –

risposta

17

Grazie a brigadir per me indicando the solution!

Funziona bene. Ecco alcuni screenshot di come risolvere questo per chiunque trovare la mia domanda:

step 1

Toccare il pulsante più della scheda breakpoint

step 2

Quindi fare clic su Fine

+0

Dolce. Ho avuto anche questo problema, e questo l'ha risolto. :) –

+0

Grande, ma ... ora come faccio a vedere che cosa è stata generata l'eccezione? Non riesco a vederlo da nessuna parte. – bacar

+0

@bacar, a volte devi premere il pulsante "play" alcune volte per continuare il debug per ottenere l'eccezione reale (ricorda solo dove si è rotta la prima volta, in quanto perderai la tua posizione una volta che continui). Non ideale, ma ha il compito. –

Problemi correlati