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

Настольное приложение С# в экспресс-версии. Затем работала не 5 секунд спустя.

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

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

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


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

Ответы

Ответ 1

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

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

Ответ 2

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

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

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

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

Ответ 3

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

Сделайте пересоединение решения и попробуйте снова отладить.

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

Ответ 4

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

Ответ 5

Перекрестно разместив это исправление от Hans K, которое я нашел в подобной теме → ЗДЕСЬ < <:

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

Посмотрите в разделе Общие свойства → Проект запуска

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

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

Ответ 6

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

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

enter image description here

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

enter image description here

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

enter image description here

enter image description here

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

enter image description here

Ответ 7

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

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

Решение?

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

Ответ 8

Я смог исправить ошибку, просто установив опцию в "Attach to Process" на "Автоматически определять тип кода для отладки", как показано на скриншоте.

Просто выполните следующие действия:

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

Fixed Debugging Error

Ответ 9

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

Ответ 10

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

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

Ответ 11

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

Решение заключалось в том, чтобы снять этот флажок. Место установки кода оптимизации

Ответ 12

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

Ответ 13

Попробуйте запустить визуальную студию в качестве администратора в окнах.

Ответ 14

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

Ответ 15

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

Ответ 16

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

Ответ 17

Опция "Начать отладку, Debug + Windows + Modules" не существует в выпуске Microsoft Visual Studio Express 2013.

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

Ответ 18

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

Ответ 19

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

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

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

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

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

Ответ 20

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

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

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

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

Возможно, этот ответ поможет кому-то!

Ответ 21

Все, что нужно проверить, чтобы быть ясным: убедитесь, что у вас установлена ​​настройка "Отладка", а не "Отпуск". Вы можете отлаживать проект запуска в режиме "Release", но не ссылочную библиотеку классов.

Ответ 22

Только для Web-приложений (IIS Express):

  • Лоток Rightclick IIS Express и закройте IIS.
  • Чистое решение

IIS Tray

Ответ 23

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

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

Ответ 24

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

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

Итак, просто чтобы щелкнуть правой кнопкой мыши по проекту и следовать

project → properties → Debug Tab, проверьте конфигурацию и платформу.

Ответ 25

Свойства проекта (затем выберите конфигурацию сборки) > Вкладка "Вкладка" > "Дополнительно..." > "Отладочная информация" (раскрывающийся список)

Установите значение "all" или "pdb-only", затем перестройте

Ответ 26

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

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

решение будет устранять проблему

Ответ 27

У меня была аналогичная проблема, и я сделал следующее: Debug => Options => General => Удалить галочку для "Включить только мой код". Это сработало для меня..

Ответ 28

Отладка -> Параметры -> Общие -> Снимите Enable Just My Code " Enable Just My Code "

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

Ответ 29

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

Ответ 30

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

В моем случае я составлял библиотеку классов (DLL). Никакие модули, похоже, не загружаются в Debug → Modules, поэтому я не мог даже загрузить символы вручную.

Мое решение состояло в том, чтобы добавить эту строку в мой код:

System.Diagnostics.Debugger.Launch();

Как только этот код будет достигнут, будет инициировано исключение, а .NET Framework отобразит диалоговое окно с запросом Visual Studio (т.е. новый экземпляр VS 2008, новый экземпляр VS 2013 и т.д.), который вы хотите использовать для отладки программы. Вы можете выбрать существующий экземпляр VS с загруженным проектом. Это приложит процесс к вашей сессии VS и загрузит все символы, и теперь вы можете отлаживать ваш проект.

Конечно, компиляция должна быть выполнена с использованием конфигурации Debug, а не Release.