2010-09-24 16 views
17

Ok, penso di aver visto tutto ora.XCode debug vs release build durante il debug

Per circa 24 ore ho cercato di eseguire il debug della mia app, cercando di scoprire da dove provengono tutti i bizzarri crash improvvisamente. Ho eseguito il debug tramite la modalità Simulatore/Debug. Come al solito, quando ho raggiunto un punto di interruzione, ho potuto vedere il valore delle variabili (il più delle volte). Poi all'improvviso non sono stato in grado di visualizzare le variabili, non importa quello che ho fatto (btw, im parlando di mouse-hovering come per qualche stupido motivo il mio xcode disabilitato tutti gli strumenti di debug dal menu di debug).

Per farla breve, per pura perdita di cose da fare, decido di eseguire il debug con la modalità di rilascio. Ora posso colpire i breakpoint e vedere il contenuto delle mie variabili. E cosa ancora più confuso è che ora xcode mi offre una visione molto più completa delle variabili che "guardo" (passando sopra).

So che a Apple piace fare cose diverse. Ma che diamine !? Qualcuno mi può schiaffeggiare e poi dirmi cosa non capisco qui?

risposta

24

In primo luogo, le configurazioni "Debug" e "Release" sono solo nomi, se vuoi puoi anche chiamarli "Jon" e "Carla". Sono solo nomi per un set di configurazione che puoi modificare e puoi modificarli in modo che, ad esempio, la configurazione "Debug" non sia più adatta per il debug. Quindi se disabilitate (involontariamente) i simboli di debug nella configurazione "Debug" otterrete esattamente ciò che avete descritto.

Passare a "Progetto" -> "Modifica target attivo". Seleziona la scheda "Crea" e seleziona la configurazione "Debug" nella casella a cascata in alto a sinistra. Seleziona "Mostra tutte le impostazioni" nel menu a tendina sottostante e digita "debug" nella barra di ricerca accanto a queste due caselle a discesa.

Ci dovrebbe essere un'impostazione "Genera simboli di debug", assicurarsi che la sua casella di controllo sia impostata. "Livello dei simboli di debug" deve essere impostato su "Tutti i simboli". Inoltre, il "Formato informazioni di debug" deve essere impostato su "DWARF con file dSYM".

Dopo aver modificato le impostazioni, pulire il progetto ("Build" -> "Clean") e ricostruire.

Spero che questo aiuti.

+0

quindi intendete che la cosa dSYM nana riguarda il debugging? – jokoon

+5

[DWARF] (http://en.wikipedia.org/wiki/DWARF) è un formato di file di debug. Le directory/bundle dSYM (debug symbols) sono il modo Apple di organizzare/archiviare i file DWARF in modo tale da mantenere separati i simboli di debug dai binari (invece di incorporare i simboli di debug nei binari). La separazione consente di spedire la tua app senza simboli di debug, ma se ottieni un registro di crash o hai bisogno di eseguire il debug dell'applicazione hai ancora i simboli di debug in giro. – DarkDust

+0

Il formato informazioni di debug in Xcode per il mio progetto è impostato su DWARF con dsym. Significa che spedisco i simboli di debug ai clienti, che possono utilizzarli per eseguire il reverse-engineering della mia app? –

Problemi correlati