Domanda

Ho un progetto per Mac OS X 10.5 che sto costruendo il 10,6 utilizzando Xcode 3.2. Quando uso il GCC 4.2 per build di debug e ha colpito un punto di interruzione, debugger Xcode visualizza le informazioni variabile locale normalmente. Se scelgo LLVM GCC 4.2 o Clang LLVM, quando ho colpito punto di interruzione, i simboli locali non sono disponibili, e GDB dice Nessun simbolo 'sé' nel contesto attuale se provo a stampare auto o qualsiasi altro simbolo locale. In tutti i casi Genera informazioni di debug è impostata. La configurazione di debug è impostato su $(NATIVE_ARCH) e 10,5 SDK, costruire solo l'architettura attivo è impostata. Quando si avvia GDB, posso vederlo viene configurato come x86_64-apple-Darwin. Devo essere manca qualcosa di ovvio. Come faccio GDB mostriamo i simboli locali quando si utilizza un compilatore LLVM?

È stato utile?

Soluzione

Per chi non lo conoscesse, un po 'più in dettaglio alla risposta di cdespinosa, che ha lavorato per me e che ho votato in su.

  1. Dal menu Xcode, selezionare Progetto> Modifica Impostazioni progetto ...
  2. Scegliere la scheda Costruisci
  3. Nella casella di ricerca di tipo "livello di ottimizzazione", scegliere quel campo e selezionare Nessuno.
  4. Ricerca Avanti per "Formato informazioni di debug", scegliere quel campo, e selezionare "nano" o "nano con dSYM".

avrebbe messo questo nei commenti al suo posto se avessi le privs. ;)

Questo mi è costato un po 'di tempo serio, ed era francamente sorta di sciatta da parte di Apple, ma in generale non mi posso lamentare.

Altri suggerimenti

Assicurarsi che si sta costruendo con i simboli dei Nani e nessuna ottimizzazione. LLVM è un nuovo back-end, e non tutti i suoi codegen ottimizzata è collegato alla generazione di simboli di debug ancora.

Questo può aiutare. Provare a disattivare "Ottimizzazione Link-Time" in opzioni di compilazione del progetto. Che Risolto un problema che ho avuto con mancare i simboli di debug.

In realtà, che fissa una serie di strani problemi che ho avuto con Clang. Direi che funzione è semplicemente troppo bleeding edge per usare ancora.

GDB dalla FSF aggiunto solo il supporto per il codice JIT molto recentemente .

Non so se Apple fornito GDB ha il supporto per esso a tutti (si fa a ottenere tracce di stack ragionevoli?). Se lo fa, questo supporto è (apparentemente) incompleta.

ho avuto questo problema e risolto mettendo un segno di spunta accanto alla voce di menu: "Progetto> Imposta configurazione di generazione attivo> Debug". In precedenza, l'opzione "uscita" è stato selezionato. Gli abitanti del posto iniziato mostrando nel debugger per il mio progetto da allora in poi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top