Как мне исправить "Точка останова в настоящее время не будет достигнута. Никакие символы не были загружены для этого документа". предупреждение?

C# настольное приложение на экспресс издание. Сработало, затем не сработало 5 секунд спустя.

Я попробовал следующее.

  • Убедитесь, что конфигурация отладки, флаг отладки и полная информация отладки установлены на всех сборках.
  • Удалите все папки bin и obj и все библиотеки DLL, связанные с проектом, со всей моей машины.
  • Воссоздать проекты, вызывающие проблему с нуля.
  • Перезагружать.

У меня есть два проекта WinForms в решении. Один из них загружает отладочную информацию, другой - нет. Они оба ссылаются на сборку, в которой я пытаюсь получить отладочную информацию точно таким же образом в файле проекта. Есть идеи?


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

134 ответа

Решение

Начните отладку, как только вы достигли точки останова или использовали Debug > Break Allиспользовать Debug > Windows > Modules, Вы увидите список всех сборок, которые загружены в процесс. Найдите тот, для которого вы хотите получить отладочную информацию. Щелкните правой кнопкой мыши и выберите "Символ загрузки информации". Вы получите диалог, в котором перечислены все каталоги, в которых он искал файл.pdb для сборки. Проверьте этот список по фактическому местоположению.pdb. Убедитесь, что он не находит старый.

В обычных проектах сборка и ее файл.pdb должны всегда копироваться IDE в ту же папку, что и ваш.exe. Папка bin\Debug вашего проекта. Убедитесь, что вы удалили один из GAC, если вы играли с ним.

Сначала попробуйте перестроить свой проект, щелкнув правой кнопкой мыши проект> Перестроить. Если это не сработает, попробуйте очистить проект (щелкните правой кнопкой мыши проект> очистить)

Если это не сработало, проверьте это:

  1. Щелкните правой кнопкой мыши ваш проект
  2. выберите [Свойства]
  3. выберите вкладку [Build]
  4. убедитесь, что [Определить постоянную отладки] и [Определить постоянную TRACE] проверены
  5. Нажмите кнопку [Дополнительно] в нижней части вкладки "Сборка".
  6. Убедитесь, что для [Debug Info:] установлено значение [full]
  7. Нажмите [OK] и перестройте проект;-)

(шаг 6 генерирует файлы.pdb, это символы отладки)

Отключите опцию "Просто мой код" в настройках "Отладка / Общие".

Просто что-то простое попробовать - возможно, вы уже пробовали это. Щелкните правой кнопкой мыши Solution в обозревателе решений, выберите "clean solution", это удалит все скомпилированные и временные файлы, связанные с решением.

Перестройте решение и попробуйте снова выполнить отладку.

У меня также были проблемы с точками останова нескольких проектов в решении - некоторые скомпилированы как x86, некоторые как x64.

Перекрестное размещение этого исправления от Hans K, которое я нашел в аналогичной теме >> ЗДЕСЬ <<;;:

Щелкните правой кнопкой мыши по решению -> Свойства

Посмотрите под Общие свойства -> Startup Project

Выберите несколько проектов запуска

выберите Начать действие над проектами, которые нужно отладить.

Выбранный ответ привел меня к решению моей проблемы. Но мне нужно сделать еще несколько вещей:

Даже с выбранным "Отладка" в раскрывающемся списке:

А в проекте Properties > Build:

Visual Studio не загружал символы в конкретный проект. Таким образом, в этом раскрывающемся списке я выбрал "Диспетчер конфигурации" и увидел, что параметры моего веб-проекта были неверными:

Затем я установил для "Отладка", и он начал генерировать .pdb файл. НО мне нужно вручную скопировать PDB и DLL и положить в папку, которую искал VS (вот где мне помог выбранный ответ):

Иногда, даже если это дает вам эту ошибку, breakpoint все еще получает удар, так что просто игнорируйте ошибку. Это случается довольно часто в Views из MVC web app,

Мне удалось исправить ошибку, просто установив опцию в "Присоединить к процессу" на "Автоматически определять тип кода для отладки", как показано на прикрепленном скриншоте.

Просто следуйте инструкциям ниже:

  • Перейти к отладке из строки меню
  • Нажмите на Присоединить к процессу
  • Рядом с опцией Присоединить к, нажмите на кнопку Выбрать
  • Откроется окно выбора типа кода
  • Теперь выберите параметр " Автоматически определять тип кода для отладки" и нажмите кнопку "ОК".

Исправлена ​​ошибка отладки

Проверьте, отсутствует ли ваш файл.pbd в папке bin/Debug. Если это так, перейдите в "Свойства" вашего проекта, выберите "Построить", а затем "Дополнительно" в нижней части. В появившемся окне выберите "полный" в разделе "Отладочная информация". Это была моя проблема, и я решил ее.

Показывает, где найти настройки

Debug > Windows > Modules чтобы увидеть, какие модули загружаются, направьте меня в правильном направлении.

В моем случае IIS Express, похоже, загружал другую DLL из временных файлов ASP.NET.

Решение?

  1. Перейти к C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. Удалить все в этом каталоге!

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

Решение было снять это. Расположение флажка

Просто проверьте, находится ли ваше решение в режиме выпуска.

Попробуйте запустить Visual Studio в качестве администратора в Windows.

В моем случае я пытаюсь отладить в режиме реверсирования. Как только я перехожу в режим отладки. Работает

Отлаживать ->Опции -> генеральный -> Снимите отметку для "Enable Just My Code"

Это сработало для меня.

Вам нужно включить "Генерировать отладочную информацию" в настройках компилятора

Я перепробовал все вышеупомянутое, но ничего не получалось. [Очистить решение, проверить файлы PDB и т. Д.]

Даже публикация того же решения не решила проблему.

Затем я вернулся к тому, что я обычно делаю, чтобы решить (обмануть эту упрямую Visual Studio)

Все, что я сделал, это сделал преднамеренное изменение в коде и опубликовал решение. Затем я отменил изменения и опубликовал снова.

Вуаля [PDB-файлы, избавленные от злых духов].. Не умное решение, но это сработало..:-|

Мы нашли причину нашей проблемы. Этот код использовал атрибут "CodeBehind" в директиве Page файла.aspx вместо атрибута "CodeFile" (ASP.NET 2.0 и выше). После нескольких дней отчаяния простой поиск и замена решили проблему.

Только веб-приложения (IIS Express):

  • Щелкните правой кнопкой мыши IIS Express Tray и закройте IIS.
  • Чистое решение

Лоток IIS

Проверьте свои Solution Configuration выпадающий список. Убедитесь, что вы выбрали Debugне Release,

Параметр "Начать отладку, отладка + модули Windows +" не существует в выпуске Microsoft Visual Studio Express 2013.

Снятие отметки "Использовать управляемый режим совместимости" в меню " Параметры" Отладка исправляет это.

  1. Чистое решение и восстановление
  2. Убедитесь, что для конфигурации задано значение "Отладка".
  3. Убедитесь, что файл PDB находится в папке Debug.
  4. В меню "Отладка" выберите "Включить все точки останова".
  1. Убедитесь, что вы находитесь в Debugи не является releaseвыбрав debugв выпадающем меню, как вы можете видеть на картинке ниже.

  1. Затем попробуйте очистить свой проект, щелкнув правой кнопкой мыши решение в окне обозревателя решений и выбрав Clean solution.

  1. Затем перестройте свое решение, щелкнув правой кнопкой мыши решение в окне обозревателя решений и выбрав Rebuild solution

Убедитесь, что следующие два параметра одинаковы в Visual Studio:

Щелкните правой кнопкой мыши тестовый проект, перейдите на вкладку "Свойства", "Сборка" и посмотрите на цель платформы.

Мои все настроены на "Любой процессор", поэтому x64

В строке главного меню выберите Тест, Настройки теста, Архитектура процессора по умолчанию.

Мой был установлен на X86

Изменение этого параметра на X64 для соответствия вышеуказанному параметру заставило встроенное в Visual Studio меню "Отладочные тесты" работать и попадать в точки останова, которые ранее игнорировались с сообщением "Точка останова в настоящее время не будет достигнута. Для этого документа не загружены символы ".

Обновить:

В Visual Studio 2019 меню немного перемещено:

Ни один из этих ответов не решил мою проблему. Я попробовал еще одну вещь, основанную на том факте, что проект с остановкой на самом деле не был загруженным проектом. Я обнаружил, как Ханс Пассант написал, что.dll, где я хочу остановить отладчик, и связанные файлы.pdb, скопированные рядом с файлом.exe. У этих файлов была более старая дата, поэтому я подумал, что они не обновлялись во время выполнения. Я вручную удалил их, Visual Studio создала другую пару и поместила эту новую пару рядом с.exe. Теперь точки останова работают!

Возможно, Visual Studio не может скопировать и ЗАМЕНИТЬ существующие файлы (.dll и.pdb) рядом с.exe, поскольку там есть другие. Так что, если я удалил вручную, то VS может создать новый рядом с.exe.

Я думаю, что другие изменения (проверки и так далее - из других ответов) вызвали что-то, и Visual Studio скопировала и заменила dll и pdb из папки проекта в папку рядом с exe, так что это было решением.

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

Может быть, этот ответ поможет кому-то!

У меня также была та же проблема, что я перестраивал все решение (включая проекты с ссылками) в x86(или x64)

Несмотря на то, что я установил все мои проекты на x86 из Configuration Manager (Build->ConfigManager), некоторые из моих проектов не были установлены на x86.

Так что просто чтобы убедиться, что щелкните правой кнопкой мыши проект-> свойства-> вкладка отладки, проверьте конфигурацию и платформу.

Вместо того, чтобы делать все эти вещи просто

Закрыть и снова открыть

решение это решит проблему

У меня была похожая проблема, и я сделал следующее: Debug=>Options=>General => Снимите флажок "Enable Just My Code". Это сработало для меня..

Я интегрировал приложение C# со статической библиотекой, используя VS10 - и я новичок в этом. Я написал управляемый код DLL для взаимодействия с ними. Я мог бы установить точки останова везде, кроме статической библиотеки. Я получил сообщение, описанное выше - для этого документа не было загружено никаких символов. Я попробовал многие из предложений выше. Я мог видеть, что символы не загружались. Наконец я заметил флажок "Отладка конфигурации", "Включить отладку неуправляемого кода". Это позволило мне установить точки останова в статических функциях lib.

Это заняло у меня некоторое время, пробовал другие варианты выше и по какой-то странной причине отладка перестала работать.

Инструмент-> Параметры-> Отладка-> Общие ->(убрать галочку)"Требовать, чтобы исходные файлы точно соответствовали исходной версии"

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