2009-02-25 11 views

risposta

41

È perché il progetto Xcode è impostato per creare simboli di debug con un file dSYM esterno. Questo è in realtà molto utile per le build di rilascio, poiché significa che è possibile rimuovere i simboli di debug dall'app e quando un utente invia un crashdump all'utente, è possibile utilizzare il file dSYM originale per generare uno stacktrace appropriato per il debug.

In ogni caso, è necessario disattivare la generazione del simbolo di debug nel progetto. Invece, basta cambiare il tipo di simbolo di debug in DWARF (invece di "DWARF con file dSYM"). Puoi anche usare Stabs, ma questo è il vecchio formato.

Modifica: Ah, vedo che intendevi dalla riga di comando, non da Xcode. Non sono seduto di fronte al mio mac atm, ma vedo dallo gcc4 manpage di quanto sia possibile specificare -gstabs per usare il formato Stabs.

+0

ciao, come si cambia il simbolo di debug? C'è una riga di comando per questo? – neversaint

+4

stranezza interessante: su MacOS 10.6.2, se si include un file sorgente nella riga 'link', viene eseguito il programma dsymutil per generare le informazioni .dSYM; se si collegano solo file e librerie di oggetti, il programma dsymutil non viene eseguito in modo che le informazioni .dSYM non vengano generate. Puoi convalidarlo con l'opzione '-v' su GCC che mostra i programmi eseguiti da 'gcc'. –

+0

Puoi anche usare -ggdb, che penso abilita più funzionalità di pugnalate se prevedi di eseguire il debug con gdb. – Quantum7

2

Presumo che usi Xcode. Vai alla voce di menu "Progetto"/"Modifica impostazioni progetto", fai clic sulla scheda di creazione, nella sezione "GCC 4.0 - Generazione del codice", deseleziona Crea simboli di debug. Puoi digitare "sym" nel campo di ricerca per aiutarti a trovarlo.

Problemi correlati