Не удается найти или открыть файл 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.

Спасибо

user1723768
источник
2
Не уверен, что это решит вашу проблему или нет, но моя проблема решила мою Cannot find or open the PDB fileпроблему на Virtual C ++ 2010 Express. Сходи Tools > Options > Debugging > Nativeи проверьLoad DLL Exports
Ари
7
Обратите внимание, что расположение этой опции изменилось с 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. Казалось, загружаются символы, но когда я перестраиваю, никаких изменений. У вас есть еще идеи, почему это происходит?
Ege
У меня это сработало, но только частично. Он не может загружать символы для DLL, связанных с openCV. То же, что и @Ege
Ruchir 02
1
@Ruchir В этом диалоговом окне необходимо указать пути к символам OpenCV. Серверы символов Microsoft имеют символы только для библиотек Microsoft DLL.
Пол
Спасибо, @Paul. У меня нет файлов PDB, связанных с OpenCV, и, похоже, чтобы получить их, мне придется переустановить OpenCV с помощью cmake stackoverflow.com/a/19436870/5022962 . Но не хочу переустанавливать OpenCV ....
Ручир
Это \Users\%Username%\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbolsтипичное место, где хранятся загруженные символы MS. Однако во время 50 МБ D / L для моего проекта VS10 в режиме «песочных часов» никогда не переводился диспетчером задач в состояние «не отвечает».
Лори Стерн
50

Работа с VS 2013.
Попробуйте следующие Инструменты -> Параметры -> Отладка -> Окно вывода -> Сообщения о загрузке модуля -> Выкл.

Это отключит отображение загруженных модулей.

Луис Салазар
источник
6
Это лучшее решение, поскольку оно удаляет эти строки, а не просто исправляет информацию о выгруженных файлах PDB. Upvoted.
Пытаясь сделать это, среда визуальной студии изменила свою визуальную среду :(
Александр Леон VI
9
Обратите внимание, что это не решение, это просто позволяет избежать проблемы.
Кэри Бондок,
3
@CaryBondoc зависит от того, что вы рассматриваете как проблему ... если проблема в том, что из-за большого количества нерелевантного шума в выводе можно легко пропустить фактическую информацию, тогда этот метод лучше, поскольку другой метод просто меняет качество шум путем замены Cannot find or open the PDB fileна Symbols loaded. Было бы неплохо, если бы на выходе была цветовая кодировка или что-то в этом роде. Конечно, есть риск сделать это и забыть об этом, когда позже это станет важным. Такова жизнь программиста.
PeterT
Как избежать появления этого окна? Когда я нажимаю F11 на методе фреймворка, я получаю это раздражающее окно. Я должен быть осторожен, когда нажимаю F11 или F10. помогите пожалуйста
М.казем Ахгари
33

Ответ Пола правильный, я просто помещаю визуализацию, чтобы легко добраться до цели.

Перейдите в Инструменты-> Параметры-> Отладка-> Символы.

Установите флажок, отмеченный красным, и он загрузит файлы pdb из Microsoft. Когда вы устанавливаете этот флажок, он также устанавливает путь по умолчанию для файлов pdb в поле редактирования ниже, вам не нужно его менять.

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

зар
источник
3
Скриншот действительно полезен!
strarsis
4

Если у вас есть несколько проектов в качестве одного проекта на карте проекта, используйте одно и то же жестко запрограммированное имя PDB PathFile во всех своих подпроектах:

Используйте, например,

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

Не используйте, например,

$(IntDir)\MyFile.pdb

во всех суб-проектах !!!

= Параметр компилятора / Fd

Инго
источник
что такое «Карта проекта»?
Вакан Танка
0

Это также может произойти , если у вас нет Изменить права доступа к каталогу кэша символов , сконфигурированной в Инструменты, Параметры, отладка, символы.

EM0
источник
0

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

jsl4980
источник
-1

вы просто добавляете путь к .pdb в рабочий каталог VS!

богатый
источник