Не вдається знайти або відкрити файл PDB у Visual Studio C ++ 2010


117

Я використовую Visual Studio 2010 C ++ і мій проект будується без помилок, але коли я його запускаю, я отримую це. Я на 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.

Дякую


2
Не впевнений, що це вирішить вашу проблему чи ні, але моя проблема вирішила мою Cannot find or open the PDB fileпроблему на Virtual C ++ 2010 Express. Заходьте Tools > Options > Debugging > Nativeта перевіряйтеLoad DLL Exports
Арі

6
Зауважте, що місцеположення цієї опції змінилось станом на Visual Studio 2015, вона зараз знаходиться підTools > Options > Debugging > General > Load dll exports (Native only)
Remko Duursma

Відповіді:


245

PDB - це файл інформації про налагодження, який використовується Visual Studio. Це системні DLL-файли, для яких у вас немає символів налагодження. Перейдіть до Tools->Options->Debugging->Symbolsі встановіть прапорець "Сервери символів Microsoft", Visual Studio автоматично завантажить PDB. Або ви просто ігноруєте ці попередження, якщо вам не потрібно бачити правильний стек викликів у цих модулях.


1
У мене така ж проблема, що я намагався встановити opencv на VS12. Здавалося, завантажуючи символи, але коли я відбудуюсь, змін немає. Чи маєте ви інше уявлення, чому це відбувається?
Еге

Це працювало для мене, але лише частково. Він не може завантажувати символи для dll, пов'язаних з openCV. Те саме, що і @Ege
Ruchir

1
@Ruchir У цьому діалоговому вікні потрібно вказати шляхи до символів OpenCV. Сервери Microsoft Symbol містять символи лише для DLL-файлів Microsoft.
Павло

Дякую @Paul. У мене немає PDC-файлів, пов'язаних з OpenCV, і, здається, їх отримати, мені доведеться перевстановити OpenCV за допомогою cmake stackoverflow.com/a/19436870/5022962 . Не хочу перевстановлювати OpenCV, хоча ....
Ruchir

Це \Users\%Username%\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbolsтипове місце, де зберігаються завантажені символи MS. Протягом 50 Мб D / L для мого проекту VS10 в режимі "пісочного годинника" ніколи не відкидався диспетчером завдань на стан "не відповідає".
Лорі Стерн

50

Робота з VS 2013.
Спробуйте такі інструменти -> Параметри -> Налагодження -> Вікно виводу -> Повідомлення про завантаження модуля -> Вимкнено

Це відключить показ завантажених модулів.


6
Це краще рішення, оскільки воно видаляє ці рядки, а не просто фіксує інформацію про завантажені файли PDB. Отримано.

Намагаючись це зробити, середовище візуальної студії змінило своє візуальне середовище :(
Олександр Леон VI

9
Зауважте, що це не рішення, це просто уникає проблеми.
Кері Бондок

3
@CaryBondoc залежить від того, що ви розглядаєте проблему як таку, що ... якщо проблема полягає в тому, що багато нерелевантних шумів у виході можуть полегшити пропуск фактичної інформації, тоді цей спосіб краще, оскільки інший метод просто змінює якість шум шляхом заміни Cannot find or open the PDB fileна Symbols loaded. Було б непогано, якби на виході були кольорові або щось таке. Звичайно, існує також ризик зробити це і забути про нього, коли це стане важливо. Таке життя програміста.
PeterT

Як уникнути отримання цього вікна? Коли я натискаю F11 на базовому методі, я отримую це дратує вікно. Я повинен бути обережним, коли натиснути F11 або натиснути F10. будь ласка, допоможіть
М.казем Ахгарі

33

Відповідь Павла правильна, я просто розміщую візуальне, щоб легко потрапити туди.

Перейдіть до Інструменти-> Опції-> Налагодження-> Символи

Установіть прапорець, позначений червоним кольором, і він завантажить файли pdb з microsoft. Якщо встановити прапорець, він також встановить шлях за замовчуванням для файлів pdb у вікні редагування під, вам не потрібно змінювати це.

введіть тут опис зображення


3
Скріншот дуже корисний!
страрсис

4

Якщо у вашій мапі проекту є декілька проектів, використовуйте ТЕЖЕ твердо кодовану назву PDB PathFile у всіх своїх підпроектах:

Використовуйте напр

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

Не використовуйте, наприклад

$(IntDir)\MyFile.pdb

у всіх Підпроектах !!!

= Компілятор Param / Fd


що таке "Карта проекту"?
Wakan Tanka

0

Це також може статися, якщо у каталозі кешу символів у налаштуваннях Інструменти, Параметри, Налагодження та Символи у вас немає дозволів Змінити .


0

Я зіткнувся з подібною проблемою, коли Visual Studio (2017) сказав, що не може знайти файл PDB мого проекту. Я міг бачити, що файл PDB існував у правильному шляху. Мені довелося очистити і відновити проект, тоді Visual Studio розпізнав файл PDB і налагодження працювало.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.