2011-11-28 13 views
13

La mia app funziona correttamente e come previsto, ma per qualche motivo quando inserisco i punti di interruzione, entrare/uscire/riprendere causa il crash del programma con EXC_BAD_ACCESS. Questo non succede se rimuovo/disabilito i breakpoint.Arresto ai punti di interruzione che causa EXC_BAD_ACCESS

Qualche consiglio?

+0

Puoi pubblicare del codice? – FreeAsInBeer

+0

stai usando thread ??? –

+2

Non sto utilizzando thread. Il codice è (credo) irrilevante in quanto si blocca OVUNQUE io posto un punto di interruzione, a prescindere. E come ho detto, non c'è crash se non c'è nessun punto di interruzione ?! – Dann

risposta

18

Da quello che posso vedere, LLDB sembra essere rotto in Xcode 4.2 e 4.2.1. Passa a GDB nelle impostazioni "Modifica schema".

I punti di interruzione funzionano come previsto dopo il passaggio a GDB.

Edit Scheme Dialog

+1

Stavo usando LLDB e tutti i miei punti di interruzione funzionavano correttamente finché avevo espressioni valide. Non appena ho definito uno non valido (super.position in un CCLayer) xCode sembrerebbe chiusura o arresto anomalo. Non mi avrebbe nemmeno permesso di rimuovere l'espressione non valida poiché non si sarebbe rotta lì. Quando sono passato a GDB, ho potuto vedere l'espressione non valida e cancellarla. Tornai quindi su LLDB e il problema era andato. Grazie per l'aiuto –

+0

questo mi ha aiutato. –

+0

LA RISPOSTA GIUSTA È AGGIORNARE A XCODE 5.0.2 come un altro commentatore ha sottolineato di seguito. g.=) – RanLearns

0

EXC_BAD_ACCESS significa che si è verificato un problema di memoria da qualche parte - molto probabile che qualcosa venga rilasciato quando ci si aspetta che sia ancora in giro (forse il risultato di un autorelease). Esegui il static analyzer per trovarlo. Immagino che stai vedendo l'arresto anomalo perché il debugger occupa aggressivamente la memoria quando carichi i breakpoint e quindi segnala un problema da qualche altra parte.

1

Dove si utilizza lldb anziché gdb? Sto ottenendo sistematicamente questo con Xcode 4.2.1 e lldb. Passare a gdb (booooo) risolve il problema.

0

Per quello che vale, sto avendo lo stesso problema. Posso prendere il codice che so essere corretto e se lo passo con lldb, si blocca dopo aver raggiunto un punto di interruzione. Inoltre ottengo uscita come questo, quando provo a stampare qualsiasi locali

(lldb) p self 
error: use of undeclared identifier 'self' 
error: 1 errors parsing expression 

assomiglia lldb è rotto in Xcode 4.2.1. L'unico consiglio che ho è tornare a gdb per ora.

1

Sto usando il Xcode 4.3.2 e Xcode aggiornare il debug per LLDB automaticamente (una finestra di pop-up e lo confermo). Questo è davvero un incubo, si blocca quando passo a qualsiasi chiamata di funzione 8-9 su 10.

Torna a GDB sembra meglio ora!

12

A tutti coloro che potrebbero provare lo stesso problema con Xcode 5.0.1 e Mavericks: Provare a eliminare tutti i tuoi schemi e ricominciare a creare automaticamente - che è stato risolto per me.

+4

Ricreare gli schemi non ha funzionato per me. Ho notato che succede sui miei dispositivi iOS 6 (iPhone 5, iPad 2), ma non sul mio dispositivo iOS 7 (iPhone 4s). – Symmetric

+0

Strano, stava succedendo sul mio iOS 6 iPad 2. Prova a eliminare e aggiungere i breakpoint dopo aver appena ricreato gli schemi. – Andrew

+0

Funziona ora ma non sono sicuro del perché. Ho provato molte cose ... cancellando l'app dal mio dispositivo, riavviandolo, riavviando il Mac, ecc. Poi mi sono imbattuto in un altro problema non correlato (per quanto ne so) in cui Xcode non avrebbe mai completato una build. Ho paura di non ricordare come l'ho trovato, ma ho scoperto che il mio portachiavi era incasinato con 46.000 codici e 93.000 tasti denominati com.apple.ubiquity.peer-uuid. Ci sono voluti quasi un'ora per aprire il portachiavi! Ecco un collegamento alla pagina che mi ha aiutato a risolverlo: https://discussions.apple.com/thread/3396579?start=0&tstart=0 Ora, entrambi i problemi sono risolti. Vai a capire! – Symmetric

1

Questo era un bug con XCode 5.0.1 e Mavericks. Apple ha rilasciato 5.0.2 e il bug è stato risolto!

Problemi correlati