Соответствующий файл символа не найден в этой папке
Я хочу использовать символы отладки, но получаю следующую ошибку:
соответствующий файл символов не найден в этой папке
Что это за проблема и как ее решить?
Ответы
Ответ 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. Я сделал две вещи, чтобы обойти это:
В решении, использующем целевую DLL, снимите флажок "Просто мой код" в разделе "Инструменты => Параметры => Отладка => Общие => Включить только мой код" (JMC).
Установите флажок "Включить отладку собственного кода" в целевом решении 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)".