Impossibile trovare o aprire il file PDB in Visual Studio C ++ 2010


117

Uso Visual Studio 2010 C ++ e il mio progetto viene compilato senza errori, ma quando lo eseguo ottengo questo. Sono su Windows XP.

'Shaders.exe': Loaded 'C:\Documents and Settings\User\My Documents\Visual Studio        2010\Projects\Shaders\Win32\Debug\Shaders.exe', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Cannot find or open the PDB  file
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtCored4.dll', Symbols  loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\user32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\secur32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ws2_32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ws2help.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcp100d.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcr100d.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtGuid4.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\comdlg32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\comctl32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\shell32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\shlwapi.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\imm32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\winmm.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\winspool.drv', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtOpenGLd4.dll', Symbols loaded.

Grazie


2
Non sono sicuro che questo risolverà il tuo problema o meno, ma il mio problema ha risolto il mio Cannot find or open the PDB fileproblema su Virtual C ++ 2010 Express. Vai a Tools > Options > Debugging > Nativee controllaLoad DLL Exports
Ari

6
Si noti che la posizione di questa opzione è cambiata a partire da Visual Studio 2015, ora è sottoTools > Options > Debugging > General > Load dll exports (Native only)
Remko Duursma

Risposte:


245

PDB è un file di informazioni di debug utilizzato da Visual Studio. Queste sono DLL di sistema, per le quali non hai simboli di debug. Vai a Tools->Options->Debugging->Symbolse seleziona la casella di controllo "Microsoft Symbol Servers", Visual Studio scaricherà automaticamente i PDB. Oppure puoi semplicemente ignorare questi avvisi se non hai bisogno di vedere lo stack di chiamate corretto in questi moduli.


1
Ho lo stesso problema che stavo cercando di installare opencv su VS12. Sembrava caricare i simboli ma quando ricostruisco non ci sono cambiamenti. Hai un'altra idea del perché sta succedendo?
Ege

Ha funzionato per me, ma solo parzialmente. Non può caricare i simboli per le dll relative a openCV. Come @Ege
Ruchir

1
@Ruchir Devi specificare i percorsi ai simboli OpenCV in quella finestra di dialogo. I server dei simboli Microsoft hanno solo simboli per le DLL Microsoft.
Paul

Grazie @Paul. Non ho file PDB relativi a OpenCV e sembra che per ottenerli dovrò reinstallare OpenCV usando cmake stackoverflow.com/a/19436870/5022962 . Non voglio reinstallare OpenCV però ...
Ruchir

La \Users\%Username%\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbolsè la posizione tipica in cui sono memorizzati i simboli MS scaricati. Durante i 50 MB D / L per il mio progetto, VS10 in modalità "clessidra" non è mai stato relegato da Task Manager in uno "stato di non risposta", tuttavia.
Laurie Stearn

50

Lavorare con VS 2013.
Prova i seguenti strumenti -> Opzioni -> Debug -> Finestra di output -> Messaggi di caricamento del modulo -> Off

Disabiliterà la visualizzazione dei moduli caricati.


6
Questa è la soluzione migliore in quanto rimuove queste righe invece di correggere semplicemente le informazioni sui file scaricati PDB. Upvoted.

Nel tentativo di farlo, l'ambiente dello studio visivo ha cambiato il suo ambiente visivo :(
Alexander Leon VI

9
Nota che questa non è la soluzione, evita semplicemente il problema.
Cary Bondoc

3
@CaryBondoc dipende da come si considera il problema ... se il problema è che un sacco di rumore irrilevante nell'output può rendere facile perdere le informazioni effettive, allora questo metodo è migliore, poiché l'altro metodo cambia solo la qualità del rumore sostituendo Cannot find or open the PDB filecon Symbols loaded. Sarebbe bello se l'output fosse codificato a colori o qualcosa del genere. Ovviamente c'è anche il rischio di farlo e di dimenticarsene quando in seguito diventerà importante. Questa è la vita di un programmatore.
PeterT

Come evitare di ottenere questa finestra? Quando premo F11 sul metodo framework ottengo questa finestra fastidiosa. Devo stare attento quando premere F11 o F10. per favore aiuto
M.kazem Akhgary

33

La risposta di Paul è giusta, sto solo mettendo la visuale per arrivarci facilmente.

Vai a Strumenti-> Opzioni-> Debug-> Simboli

Imposta la casella di controllo contrassegnata in rosso e scaricherà i file pdb da microsoft. Quando imposti la casella di controllo, imposterà anche un percorso predefinito per i file pdb nella casella di modifica sotto, non è necessario cambiarlo.

inserisci qui la descrizione dell'immagine


3
Lo screenshot è davvero utile!
strarsis

4

Se hai più progetti nella tua mappa del progetto, usa LO STESSO nome PDB del file di percorso hardcoded in tutti i tuoi sottoprogetti:

Usa ad es

D:\Visual Studio Projects\my_app\MyFile.pdb

Non utilizzare ad es

$(IntDir)\MyFile.pdb

in tutti i sottoprogetti !!!

= Compilatore Param / Fd


cos'è la "mappa del progetto"?
Wakan Tanka

0

Ciò può accadere anche se non si dispone delle autorizzazioni di modifica sulla directory della cache dei simboli configurata in Strumenti, Opzioni, Debug, Simboli.


0

Mi sono imbattuto in un problema simile in cui Visual Studio (2017) diceva di non riuscire a trovare il file PDB del mio progetto. Ho potuto vedere che il file PDB esisteva nel percorso corretto. Ho dovuto pulire e ricostruire il progetto, quindi Visual Studio ha riconosciuto il file PDB e il debug ha funzionato.


-1

devi solo aggiungere il percorso di .pdb alla directory di lavoro di VS!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.