Подтвердить что ты не робот

Соответствующий файл символа не найден в этой папке

Я хочу использовать символы отладки, но получаю следующую ошибку:

соответствующий файл символов не найден в этой папке

Что это за проблема и как ее решить?

4b9b3361

Ответ 1

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

  • Щелкните правой кнопкой мыши соответствующий проект
  • Свойства
  • Построить
  • Продвинутый (правый нижний угол)
  • Установите полную информацию об отладке
  • Рекомпилированные

Ответ 2

У меня была та же проблема, что и @DmainEvent. По-видимому, DLL, которую я использовал, не была той же версией, что и pdb, которую я только что скомпилировал, поэтому я получил сообщение об ошибке.

Если у вас есть эта проблема, попробуйте использовать dll и pdb из одного и того же запуска компиляции.

Ответ 3

Я столкнулся с этой проблемой, и ответ был прост.

В Visual Studio есть две настройки уровня проекта, которые могут создавать файлы .pdb.

  • Linker: Свойства конфигурации → Коннектор → Отладка → Генерировать   Файл базы данных программы = "xxxx.pdb"
  • Компилятор: Свойства конфигурации → C/С++ → Файлы вывода → Название файла базы данных программы = "Yyyy.pdb"

Вы хотите # 1 для отладки. Забудьте о # 2. Дайте файлу №2 другое имя, чем файл # 1, чтобы решить эту ошибку.

Я не знаю, почему microsoft указывает # 2 как .pdb файл. Это просто запутывает.

Ответ 4

Я пробовал все возможные решения, и, наконец, он работал, когда я отключил опцию Enable native code debugging в Debugger engines Properties > Debug.

Ответ 5

Я получил ошибку "соответствующий файл символов не найден в этой папке" в окне "Отладка => Модули" даже после того, как библиотеки DLL и PDB были доступны и собраны вместе, поэтому я не смог выполнить отладку в целевой библиотеке DLL, на которую ссылается мой основной проект.

Размещайте это здесь на тот случай, если это поможет кому-то просматривать сборку "Mixed Platform" для целевой DLL. Я сделал две вещи, чтобы обойти это:

  1. В решении, использующем целевую DLL, снимите флажок "Просто мой код" в разделе "Инструменты => Параметры => Отладка => Общие => Включить только мой код" (JMC).

  2. Установите флажок "Включить отладку собственного кода" в целевом решении DLL в соответствующих свойствах проекта => Отладка.

Ответ 6

Без дополнительной информации о том, что вы делаете, трудно выйти за рамки "отладчик ищет файл символов, который соответствует скомпилированному коду и не может найти его в папке, в которой скомпилирован код".

Некоторые вещи, о которых нужно подумать:

  • Создаете ли вы символы как часть своей компиляции? (проверьте свойства проекта)
  • Используете ли вы сервер символов (если да, то он указывает на нужное место)
  • Является ли этот скомпилированный код третьим лицом? В этом случае, поскольку у вас, по-видимому, есть источник, скомпилируйте его самостоятельно.

Поясните свой вопрос, если вы хотите получить лучший ответ. Особенно, что вы подразумеваете под "Я хочу использовать символы".

Ответ 7

Ну, решение зависит от вашей конкретной проблемы. Я перепробовал все, что можно было найти на Stackoverflow и других сайтах. Одна из тем, на которые я подписался, - this. Это тоже не помогло. Проблема была сразу решена, когда я заметил, что в моем исполняемом проекте не было ссылки на библиотеку, которую я хотел отладить. Поэтому я просто добавил ссылку на этот проект.

** PS: ** Эта проблема может также возникать из-за того, что сборка, на которую ссылается исполняемая сборка, может не совпадать с таковой в ссылках. Таким образом, в этом случае вы просто удаляете уже существующую ссылку и добавляете новую.

Надеюсь это поможет!

Ответ 8

Я обнаружил, что это произошло из-за того, что для свойства "Свойства" = > "Отладка" = > "Начало" было выбрано "Запуск внешней программы" вместо "Проект". Таким образом, вновь созданный файл pdb не совпал, потому что фактический exe был неправильным.

Ответ 9

Для проектов BizTalk (и других) это может быть связано с тем, что версия сборки, которую вы пытаетесь отлаживать, уже существует в GAC. Когда вы запускаете unit тест или нажимаете F5 для отладки, новая версия компилируется локально. Однако версия в GAC используется, и вновь созданная PDB не соответствует DLL в GAC.

Одним из способов решения этой проблемы является отмена выбора сборки для всего, кроме проекта модульного тестирования, с помощью Configuration Manager, как показано ниже:

Config Manager

Ответ 10

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

Вы должны перестроить свой проект и вручную скопировать символы (файл .pdb) в папку debug\Bin исполняемого проекта.

Ответ 11

У меня была и эта проблема в последнее время. Удалось исправить это, выбрав MyProject- > Properties- > Linker- > Debugging- > Generate Debug Info → "Оптимизировать для отладки (/DEBUG)".