Не удается получить PDB для загрузки. Msg str "Соответствующий файл символов не найден в этой папке. "

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

Я попробовал все, что было предложено здесь для исправления "Точка останова в настоящее время не будет достигнута. Для этого документа не было загружено никаких символов. " И я не могу загрузить его в мою PDB. Есть множество вопросов о файлах.PDB, которые не загружаются здесь, на SO, и я провел последний час, просматривая как можно больше из них и пробуя все, что предлагалось, но безрезультатно.

я пробовал Build>Rebuild Solution, Build>Clean + Build>Build Solution, Build>Clean + Build>Rebuild Solution, вручную удалив все файлы из выходной папки BIN + Build Solution и / или Rebuild Solution, То же самое происходит в каждом случае; компилятор создает совершенно новый файл.DLL и.PDB, но.PDB отказывается загружаться во время выполнения.

Я даже пытался Debug>Windows>Modules>[Right-Click on offending symbol library]>Load Symbols и я вручную перешел к правильному файлу.PDB, но когда я нажал Open он просто говорит мне "Соответствующий файл символов не найден в этой папке".

С помощью Debug>Windows>Modules>[Right click...]>Load Symbol Information дает мне:

C: \ Windows \ ssoederPDMupgrade.pdb: не удается найти или открыть файл PDB. C:\VS_TestFolder\EPDMAddIns\ssoederPDMupgrade\bin\Debug\ssoederPDMupgrade.pdb: PDB не соответствует изображению. C:\VS_TestFolder\EPDMAddIns\ssoederPDMupgrade\obj\Debug\ssoederPDMupgrade.pdb: PDB не соответствует изображению. C:\Windows\ssoederPDMupgrade.pdb: не удается найти или открыть файл PDB. C: \ Windows \ символы \ dll \ ssoederPDMupgrade.pdb: не удается найти или открыть файл PDB. C:\Windows\dll\ssoederPDMupgrade.pdb: Не удается найти или открыть файл PDB. C:\Users\ssoeder\AppData\Local\Temp\SymbolCache\ssoederPDMupgrade.pdb\afe14027e9c6490883d12f2f139cb5911\ssoederPDMupgrade.pdb: Не удается найти или открыть файл PDB. C:\Users\ssoeder\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbols\ssoederPDMupgrade.pdb\afe14027e9c6490883d12f2f139cb5911\ssoederPDMupgrade.pdb: Не удается найти или открыть файл PDB. C:\VS_TestFolder\EPDMAddIns\ssoederPDMupgrade\obj\Debug\ssoederPDMupgrade.pdb: PDB не соответствует изображению. SYMSRV: C:\Users\ssoeder\AppData\Local\Temp\SymbolCache\ssoederPDMupgrade.pdb\AFE14027E9C6490883D12F2F139CB5911\ssoederPDMupgrade.pdb не найден

SYMSRV: http://msdl.microsoft.com/download/symbols/ssoederPDMupgrade.pdb/AFE14027E9C6490883D12F2F139CB5911/ssoederPDMupgrade.pdb не найден

http://msdl.microsoft.com/download/symbols: символы не найдены на сервере символов.

4 ответа

Решение

Немного ответа, но...
Я думаю, что что-то испортилось в VS Express 2013. Я понятия не имею, как и почему - и я могу быть совершенно не прав, но простой вопрос заключается в том, что заставило мои контрольные точки работать, устанавливая VS Community 2015.

После установки VS Community 2015 (VSC 2015) файл символов загружается без проблем, и все точки останова сбиваются. Это также заставило все работать в моей существующей установке VS Express 2013 (VSC 2013), так что я могу работать в любой из них сейчас без проблем.


Хронология событий:

  1. Я работаю в VSE 2013 над этим же проектом уже месяц или два. Написание библиотеки классов, отладка с использованием Debug>Attach to process,

  2. Вчера я сделал некоторые изменения в коде в одном модуле класса (никаких других изменений) и использовал Build>Rebuild Solution очистить и заново сгенерировать выходные файлы текущей конфигурации (DEBUG).

  3. Горизонт событий: я пошел на отладку, используя Attach to process как обычно, и моя точка останова выглядела пустой с сообщением, что оно не будет достигнуто, потому что символы не были загружены.

  4. Я потратил довольно много времени, пытаясь решить эту проблему, прежде чем публиковать здесь (см. Мой оригинальный вопрос для получения подробной информации о том, что пытались).

  5. Получено предложение от @HansPassant относительно использования Symchk из командной строки. Пытался следовать инструкциям, связанным с, и не смог заставить его работать - командная строка не распознала Symchk или же Symchk.exe как действительные команды / процессы / и т.д.

  6. Я скачал обновление WDK 8.1 и установил.

  7. Открыл VSE 2013, получил сообщение об ошибке при сбое загрузки драйвера, приложение зависло перед загрузкой. На самом деле, после нескольких попыток я обнаружил, что он иногда попадал на экран приветствия, но даже тогда оставался без ответа.

  8. Зашел на сайт M$ VS, чтобы загрузить последнюю копию установочных файлов VSE 2013, чтобы выполнить ремонтную установку, и я заметил, что появилась более новая версия: VSC 2015.

  9. Скачал и установил VSC 2015.

  10. Открыл проект, начал отладку с помощью Debug>Attach to process и это сработало - все символы загружены и мои контрольные точки сработали. ПРИМЕЧАНИЕ: я ничего не изменил с проектом * - просто открыл и запустил.
    * если некоторые изменения не будут сделаны IDE без моего ведома, просто открыв проект.

  11. Похоже, это исправило любой драйвер, который был поврежден при установке VS2013, так как я вернулся на VSE 2013, и он открылся без ошибок, и я смог открыть тот же проект и сделать Attach to process и все символы загружены и точки останова снова работают.

У меня была такая же проблема с VS2013 Ultimate. Я несколько раз делал чистку и сборку сборки и удалял все временные файлы из C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files,

Я также проверил, что в "Отладка -> Параметры и настройки -> Символы" не было исключено ни одного модуля... В конце концов, я нашел ссылку, которая отличается от той, которая развернута в GAC.

Вы пробовали эти шаги?

1 - удалить файл.SUO

2- ЧИСТЫЙ СТРОИТЕЛЬ.

3 - сделать проект строительства

Я рад, что ты получил его на работу CBRF23! У меня была эта проблема при попытке скомпилировать файл эффекта DirectX в DevC++. Самый простой способ загрузки pdbs, который я нашел, - это сначала загрузить WinDBG здесь: http://go.microsoft.com/fwlink/p/?LinkId=536682 Затем в качестве примера, скажем, вы хотите загрузить d3dx9d.pdb. скопируйте d3dx9d.dll из C:\windows\system32 и вставьте еще одну копию в папку (отладчик) windbg symchk.exe, затем подключитесь к вашему интернет-серверу, перейдите в меню "Пуск" Windows, выполните: [затем введите] cmd [нажмите enter], затем перейдите в папку отладчика windbg, перейдя в командную строку (окно MS-DOS) (например, если она находится в папке C:\windbg_6p12p0002p633\debugger_x86, введите:)

cd windbg_6p12p0002p633 [enter] cd debugger_x86

[и, наконец, введите следующее, но замените двойную звездочку ** на одну звездочку *:]

symchk / if d3dx9d.dll srv ** c: \ символы *\ главный сервер \ символы * https://msdl.microsoft.com/download/symbols

Обратите внимание еще раз, что после srv должна быть только одна звездочка (пост будет интерпретировать звездочку как курсив или полужирный шрифт), а не две, тогда она откроет symchk.exe и загрузит файл символов pdb, связанный с введенной dll, в автоматически создал папку C:\symbols\!

Другие вопросы по тегам