2011-12-01 27 views
22

Ho qualche problema nel debug di un progetto Visual Studio 2008 C++. Quando inizio a eseguirlo nel debug, i punti di interruzione sono disabilitati con il messaggioVisual Studio Non sono stati caricati simboli per questo documento

Il punto di interruzione non verrà colpito. Nessun simbolo è stato caricato per questo documento .

Ho provato a pulire e ricostruire, ma questo non fa differenza.

Ho anche provato a cercare in Debug-> Windows-> Modules. Se faccio clic con il tasto destro del mouse sul modulo che sto cercando di eseguire il debug e premere il simbolo Carica informazioni, viene visualizzato un elenco di posizioni in cui ha tentato di caricare i simboli. Il primo della lista è corretta e il file esiste, ma accanto ad essa è questo errore

C: \ percorso \ to \ mio \ simbolo \ Debug \ Myproject.pdb: gestore simbolo sconosciuto per errore

Qualcuno sa che cosa causa questo o come risolverlo?

+1

Hai provato Corporatura> Pulisci soluzione? Questo rimuoverà i file temporanei, che potrebbero essere stati danneggiati. – MSalters

+0

Ho, come detto appena sotto la prima citazione;) –

+0

Stai cercando di codice di debug nel progetto eseguibile che si esegue? O codice in una lib statica a cui ti sei collegato? – bunkerdive

risposta

25

Prima di tutto, è possibile che alcuni dei moduli non vengano visualizzati nella finestra del modulo, poiché alcuni di essi potrebbero essere caricati dinamicamente (solo se necessario).

È possibile controllare le proprietà del progetto in Linker> Debug> Genera file di database del programma e Genera informazioni di debug. Assicurati che questi due siano impostati correttamente.

Inoltre, controllare se C/C++> Generale> Formato informazioni di debug è impostato su Database programmi per Modifica e continua (/ ZI) o qualcosa di simile.

So che hai detto che il tuo file di simboli esiste, ma il controllo è stato appena menzionato per assicurarti di avere la versione giusta del tuo simbolo nel posto giusto.

Infine, controlla se tutti i tuoi progetti e file nella tua soluzione sono impostati per la compilazione come Debug e non Release o qualcos'altro, perché non verranno generati simboli (quindi nessuno verrà caricato) per questo progetto/file.

Spero che questo aiuti un po '.

+1

Grazie, ma queste impostazioni sono tutte impostate correttamente. Inoltre ho controllato che il file .pdb sia stato creato e corrisponda al tempo in cui ho creato la mia build. –

+1

Quando si utilizzano build di rilascio predefinite, vengono comunque generate informazioni di debug. Tuttavia, a causa delle ottimizzazioni, il debugger non funziona altrettanto bene (molte variabili scompaiono, ad esempio). –

+0

Avete più progetti nella vostra soluzione? – nevero

2

Sono riuscito a risolvere questo copiando la mia fonte di lato e controllando una copia completamente pulita. Presumo che si trattasse di alcune impostazioni memorizzate nel file .suo del progetto.

+0

perché il voto basso? –

3

Potrebbe esserci un problema con il processo mspdbsrv.exe. Prova a ucciderlo e avvia nuovamente il debugger.

2

Per me la correzione era in riavvio di Visual Studio :) Semplice come quello. Niente altro ha aiutato - provato a pulire (anche cancellato tutti i file nella cartella Debug), controllato le impostazioni, anche ucciso il processo mspdbsrv.exe, ma solo il riavvio di VS ha fatto il trucco.

4

Nel mio caso, il problema è stato risolto selezionando "Usa modalità di compatibilità gestita" in Strumenti/Opzioni/Debug/Generale.

1

Nella finestra Modules è possibile fare clic con il pulsante destro del mouse e aggiungere la cartella di output Debug alle cartelle in cui il sistema cerca i file di simboli.Inoltre, la cosa che ha funzionato per me è stata la cancellazione di tutti i file di output manualmente, Clean non lo farà ogni volta ed è per questo che, anche se il file .pdb viene generato, non corrisponde ai file di output, quindi non viene caricato simboli da esso.

2

Elimina tutti i file nel cestino e nelle cartelle obj. Quindi ricostruisci la soluzione. Se il tuo problema era come il mio, sembrava che VS stava caricando una versione precedente di un file sconosciuto specifico che la ricostruzione della soluzione/progetto non avrebbe sostituito. Assicurati di fare una copia della tua soluzione/progetto prima di provare questo. In bocca al lupo!

-1

1) Fare clic con il tasto destro del mouse sul progetto che si desidera eseguire il debug.

2) Selezionare [Proprietà]

3) Selezionare la scheda [costruire]

4) Assicurarsi [Definire costante DEBUG] e [Definire costante TRACE] sono controllato

5) Fare clic sul pulsante [Avanzato] nella parte inferiore della pagina di creazione Assicurarsi che [Debug Info:] è impostato su [completa]

6) Fare clic su [OK]

7) Ricostruire progetto

+0

Non vedo questa opzione per i progetti C++. È per una lingua diversa? – sgryzko

+0

L'opzione è uguale per tutti i progetti di lingua. La mia risposta era per C# .net Language. –

1

Effettuare una copia di la tua cartella "Debug" all'interno della cartella del tuo progetto, quindi elimina tutti i file nella cartella originale "Debug". Come misura aggiuntiva se il tuo studio visivo fosse già in esecuzione con il tuo progetto caricato, chiudilo dopo aver eliminato il contenuto di Debug e riaprirlo prima di ricostruire l'intero progetto, in teoria questa azione creerà una nuova copia di file di simboli e il resto necessario per eseguire il debug del tuo codice. Ho scoperto questo problema quando ho spostato i miei file su un altro computer e provavo a compilare e eseguire il debug del codice da lì, sebbene tutti i nomi di cartelle e unità fossero uguali, alcuni come l'IDE non fosse in grado di utilizzare il simbolo creato in precedenza File. Spero che questo lavoro funzioni per qualcun altro!

0

Nel mio caso, "use library dependency inputs" in "linker-> general" deve essere impostato su yes, quindi il problema è risolto.

0

VS2015 C++

Ho incontrato lo stesso problema dopo aver annullato il carico di simboli, mentre si tenta di eseguire il debug la mia applicazione in VS2015. Dopo questo, VS2015 ha rifiutato di caricare i simboli per il progetto a cui ero interessato (più sottoprogetti in una soluzione con C# che chiamava DLL C++). Le soluzioni di cui sopra non hanno funzionato per me, ma così è stato.

Per Visual Studio 2015 (C++):

  1. Fare clic destro sul vostro progetto che il punto di rottura è in e selezionare
    proprietà Espandi C/C++
  2. Selezionare Generale in C/C++
  3. Modificare il formato di informazioni di debug in qualsiasi altra opzione
  4. Fare clic su Applica
  5. Modificare il formato di informazioni di debug sul suo predefinito "Programma database per Modifica e continuazione (/ ZI) (o quello che preferite)
  6. Fare clic su Applica
  7. Ora ricostruire il progetto

Spero che questo aiuti. Alan M

2

Nel caso qualcuno ha questo problema quando si utilizza 'Attach per elaborare', la risposta a questa domanda risolto per me:

Visual Studio is not loading modules when attaching to process

In particolare, il passaggio a 'codice nativo' nel 'Allega a' opzioni invece di 'Auto'.

+0

Grazie, mi ci è voluta 1 settimana per trovare il tuo testo. – kien

1

Vai alla "Proprietà" per il sito web che userebbero che dll per il debug e quindi selezionare "codice nativo" nella sezione "Debugger" qui sotto:

enter image description here

0

Nessuno dei precedenti mi ha aiutato ...

alla fine ho cambiato da Debug \ X64 di Debug \ win32, questo ha aiutato, probabilmente è un po 'di configurazione che non è la stessa in entrambi. Forse questo aiuterà come soluzione per qualcuno ...

speranza che potrebbe aiutare chiunque.

Problemi correlati