Ho appena iniziato a scrivere in C e ho eseguito il Makefile di qualcun altro con il compilatore C predefinito impostato su gcc. Sono su Mac OSX 10.8 Mountain Lion e credo di aver installato il compilatore con "XCode Command Line Tools". Dopo aver eseguito "make" sulla riga di comando, ottengo questi fastidiosi file .dSYM per ogni programma. Ho letto che questi sono i file di debug, ma sono davvero necessari? C'è un modo per impedire che vengano generati dalla riga di comando?.dSYM file generati dalla riga di comando (Mac)
risposta
Sì, i file dSYM sono necessari. Nello specifico, contengono le tabelle dei simboli che sono incluse nelle build di debug di Xcode; build di rilascio mettono i simboli in questo file separato. Se è necessario analizzare una traccia di stack da una build di rilascio, sarà necessario. E assicurati di non perdere i file, perché eseguire di nuovo la build, anche se la sorgente è assolutamente la stessa, non produrrà un file dSYM utilizzabile. A ogni build viene assegnato un UUID e questo cambia ad ogni build, anche se la fonte non è cambiata. (Immagino che includa un timestamp o anche un numero casuale.)
Se butti via i file dSYM, poi se improvvisamente trovi la tua app molto in crash, potresti essere dispiaciuta.
Sono necessari solo se è necessario interpretare le posizioni nelle tracce dello stack all'interno di un rapporto di arresto anomalo.
Sono utili anche per avere riferimenti di origine in gdb –
Il flag -g
in GCC genererà i simboli di debug. Si può semplicemente rimuovere quella bandiera da CFLAGS
.
Controllare che 'dsymutil' venga eseguito nel' Makefile' e commentarlo. 'gcc' su OS X non dovrebbe generarli da soli. Lo strumento che lo fa si chiama 'dsymutil'. Inoltre: No, non sono richiesti per eseguire il binario e sono solo a scopo di debug. –
Non esiste alcun dsymutil nel Makefile ma vengono eseguiti i seguenti flag: CFLAGS = -m32 -g -O0 -std = gnu99 -Wall – pyrrhic