Nie można znaleźć lub otworzyć pliku PDB w programie Visual Studio C ++ 2010

117

Używam Visual Studio 2010 C ++ i mój projekt buduje się bez błędów, ale kiedy go uruchamiam, otrzymuję to. Korzystam z systemu 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.

Dzięki

user1723768
źródło
2
Nie jestem pewien, czy to rozwiąże twój problem, czy nie, ale mój problem rozwiązał mój Cannot find or open the PDB fileproblem w Virtual C ++ 2010 Express. Idź Tools > Options > Debugging > Nativei sprawdźLoad DLL Exports
Ari
6
Należy pamiętać, że lokalizacja tej opcji zmieniła się od wersji Visual Studio 2015, jest teraz podTools > Options > Debugging > General > Load dll exports (Native only)
Remko Duursma

Odpowiedzi:

245

PDB to plik informacji debugowania używany przez program Visual Studio. Są to systemowe biblioteki DLL, dla których nie masz symboli debugowania. Przejdź do Tools->Options->Debugging->Symbolsi zaznacz pole wyboru „Microsoft Symbol Servers”, program Visual Studio automatycznie pobierze pliki PDB. Lub możesz po prostu zignorować te ostrzeżenia, jeśli nie potrzebujesz widzieć prawidłowego stosu wywołań w tych modułach.

Paweł
źródło
1
Mam ten sam problem, który próbowałem zainstalować opencv na VS12. Wyglądało na to, że ładuje symbole, ale kiedy odbudowuję, nie ma zmian. Czy masz inny pomysł, dlaczego tak się dzieje?
Ege
U mnie zadziałało, ale tylko częściowo. Nie może załadować symboli dla bibliotek DLL powiązanych z openCV. Tak samo jak @Ege
Ruchir
1
@Ruchir Musisz określić ścieżki do symboli OpenCV w tym oknie dialogowym. Serwery symboli firmy Microsoft mają tylko symbole bibliotek DLL firmy Microsoft.
Paul
Dzięki @Paul. Nie mam plików PDB związanych z OpenCV i wydaje się, że po ich zdobyciu będę musiał ponownie zainstalować OpenCV za pomocą cmake stackoverflow.com/a/19436870/5022962 . Nie chcę jednak ponownie instalować OpenCV ....
Ruchir
Jest \Users\%Username%\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbolsto typowa lokalizacja, w której przechowywane są pobrane symbole MS. Jednak podczas 50 MB D / L dla mojego projektu VS10 w trybie „klepsydry” nigdy nie został zdegradowany przez Menedżera zadań do „stanu braku odpowiedzi”.
Laurie Stearn
50

Praca z VS 2013.
Wypróbuj następujące narzędzia -> Opcje -> Debugowanie -> Okno wyjściowe -> Komunikaty ładowania modułu -> Wyłącz

Spowoduje to wyłączenie wyświetlania załadowanych modułów.

Luis Salazar
źródło
6
Jest to lepsze rozwiązanie, ponieważ usuwa te wiersze zamiast tylko poprawiać informacje o rozładowanych plikach PDB. Głosowano za.
Próbując to zrobić, środowisko studia wizualnego zmieniło swoje środowisko wizualne :(
Alexander Leon VI
9
Zauważ, że to nie jest rozwiązanie, po prostu pozwala uniknąć problemu.
Cary Bondoc
3
@CaryBondoc zależy od tego, co postrzegasz jako problem ... jeśli problem polega na tym, że wiele nieistotnych szumów na wyjściu może ułatwić przegapienie rzeczywistych informacji, to ta metoda jest lepsza, ponieważ druga metoda zmienia tylko jakość hałas, zastępując Cannot find or open the PDB filego Symbols loaded. Byłoby miło, gdyby wynik był oznaczony kolorem lub coś w tym stylu. Oczywiście istnieje również ryzyko zrobienia tego i zapomnienia o tym, gdy stanie się to później ważne. Takie jest życie programisty.
PeterT,
Jak uniknąć tego okna? Kiedy naciskam klawisz F11 na metodzie ramowej, pojawia się to denerwujące okno. Muszę uważać, kiedy wciskać F11 lub F10. proszę o pomoc
M.kazem Akhgary
33

Odpowiedź Paula ma rację, po prostu umieszczam grafikę, aby łatwo się tam dostać.

Idź do Narzędzia-> Opcje-> Debugowanie-> Symbole

Zaznacz pole wyboru zaznaczone na czerwono, a pliki pdb zostaną pobrane z firmy Microsoft. Po ustawieniu tego pola wyboru ustawi ono również domyślną ścieżkę do plików pdb w polu edycji poniżej, nie musisz tego zmieniać.

wprowadź opis obrazu tutaj

zar
źródło
3
Zrzut ekranu jest naprawdę pomocny!
strarsis
4

Jeśli masz więcej projektów na mapie projektu, użyj TEJ SAMEJ na stałe zakodowanej Nazwy PDB PathFile we wszystkich swoich podprojektach:

Użyj np

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

Nie używaj np

$(IntDir)\MyFile.pdb

we wszystkich podprojektach !!!

= Parametr kompilatora / Fd

Ingo
źródło
co to jest „Mapa projektu”?
Wakan Tanka
0

Może się to również zdarzyć, jeśli nie masz uprawnień do modyfikowania katalogu pamięci podręcznej symboli skonfigurowanych w menu Narzędzia, Opcje, Debugowanie, Symbole.

EM0
źródło
0

Napotkałem podobny problem, w którym program Visual Studio (2017) powiedział, że nie może znaleźć pliku PDB mojego projektu. Widziałem, że plik PDB istnieje we właściwej ścieżce. Musiałem wyczyścić i odbudować projekt, a następnie Visual Studio rozpoznało plik PDB i debugowanie zadziałało.

jsl4980
źródło
-1

wystarczy dodać ścieżkę .pdb do katalogu roboczego VS!

bogaty
źródło