Как исправить "Точка останова в настоящий момент не будет удалена. Для этого документа не было загружено никаких символов". предупреждение?
Настольное приложение С# в экспресс-версии. Затем работала не 5 секунд спустя.
Я попробовал следующее.
- Убедитесь, что на всех сборках установлены настройки отладки, флаг отладки и полная информация об отладке.
- Удалите все папки bin и obj и все DLL, связанные с проектом, со всей моей машины.
- Воссоздайте проекты, создающие проблему с нуля.
- Reboot.
В решении есть два проекта WinForms. Один из них загружает информацию об отладке, а другой нет. Они оба относятся к сборке, в которой я пытаюсь получить информацию об отладке точно так же, как в файле проекта. Любые идеи?
Я хочу добавить сюда, главным образом для себя, когда вернусь к рассмотрению этого вопроса, что символы не загружаются до загрузки сборки, а сборка не загружается до тех пор, пока она не понадобится. Если точка останова находится в библиотеке, которая используется только в одной функции в вашей основной сборке, символы не будут загружаться (и показывая, что точка останова не будет удалена) до тех пор, пока эта функция не будет вызвана.
Начните отладку, как только вы достигли точки останова или использовали Debug > Break All
, используйте Debug > Windows > Modules
. Вы увидите список всех сборок, загруженных в процесс. Найдите ту, для которой вы хотите получить информацию об отладке. Щелкните его правой кнопкой мыши и выберите "Загрузка информации о символе". Появится диалоговое окно, в котором перечислены все каталоги, в которых он ищет файл .pdb для сборки. Проверьте этот список на фактическое местоположение .pdb. Убедитесь, что он не находит старый.
В обычных проектах сборка и ее файл .pdb всегда должны быть скопированы с помощью IDE в ту же папку, что и ваш .exe. Папка bin\Debug вашего проекта. Убедитесь, что вы удалили один из GAC, если вы играли с ним.
Сначала попробуйте перестроить свой проект, щелкнув правой кнопкой мыши проект> Перестроить. Если это не сработает, попробуйте очистить проект (щелкните правой кнопкой мыши проект> очистить)
Если это не сработало, проверьте это:
- Щелкните правой кнопкой мыши ваш проект
- Выберите [Свойства]
- Выберите вкладку [Build]
- Убедитесь, что [Определить постоянную отладки] и [Определить постоянную TRACE] проверены
- Убедитесь, что [Оптимизировать код] не отмечено
- Нажмите кнопку [Дополнительно] в нижней части вкладки "Сборка".
- Убедитесь, что для [Debug Info:] установлено значение [full]
- Нажмите [OK] и перестройте проект ;-)
(шаг 6 генерирует файлы .pdb, это символы отладки)
Похожие вопросы
Просто попробуйте попробовать - возможно, вы уже пробовали это. Щелкните правой кнопкой мыши Решение в проводнике решений, нажмите "Чистое решение", это удалит все скомпилированные и временные файлы, связанные с решением.
Сделайте пересоединение решения и попробуйте снова отладить.
У меня также были проблемы с точками останова в нескольких проектах в решении - некоторые скомпилированы как x86, а некоторые - как x64.
Перекрестно разместив это исправление от Hans K, которое я нашел в подобной теме → ЗДЕСЬ < <:
Щелкните правой кнопкой мыши по решению → Свойства
Посмотрите в разделе Общие свойства → Проект запуска
Выберите несколько проектов запуска
выберите "Начать действие" для проектов, которые нужно отлаживать.
Выбранный ответ заставил меня исправить мою проблему. Но мне нужно сделать несколько вещей больше:
Даже при выборе "Отладка" в выпадающем меню:
И в проекте Properties > Build:
Visual Studio не загружала символы в конкретный проект. Поэтому в этом раскрывающемся списке я выбираю "Configuration Manager" и вижу, что настройки для моего веб-проекта были неправильными:
Затем я установил это в "Debug" и начал генерировать файл .pdb
.
НО Мне нужно вручную скопировать PDB и DLL и поместить в папку, которую смотрел VS (вот где мне помог выбранный ответ):
Debug
> Windows
> Modules
, чтобы увидеть, какие модули были загружены, поставил меня в правильном направлении.
В моем случае IIS Express, похоже, загружал другую DLL из временных файлов ASP.NET.
Решение?
- Перейдите к
C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
- Удалить все в этом каталоге!
Я смог исправить ошибку, просто установив опцию в "Attach to Process" на "Автоматически определять тип кода для отладки", как показано на скриншоте.
Просто выполните следующие действия:
- Перейдите в Отладка из строки меню
- Нажмите Присоединить к процессу
- Рядом с параметром Прикрепить к нажмите кнопку Выбрать
- Появится окно Выбрать тип кода
- Теперь выберите параметр Автоматически определить тип кода для отладки и нажмите кнопку OK.
Иногда, даже если он дает вам эту ошибку, breakpoint
по-прежнему попадает, поэтому просто игнорируйте ошибку. Это происходит довольно часто в Views
MVC web app
.
Проверьте, не пропал ли ваш .pbd файл в папке bin/Debug. Если после этого перейдите в "Свойства" вашего проекта, выберите "Построить", а затем "Дополнительно" внизу. В появившемся окне выберите "full" в разделе "Debug info". Это была моя проблема и решила ее для меня.
В моем случае в моих свойствах проекта был проверен "Оптимизировать код". Это заставило VS видеть мою сборку как "не мой код", и, в свою очередь, она не загружала для нее символы.
В моем случае я пытаюсь отлаживать режим relase. Как только я изменю его на режим отладки. Работает
Вам нужно включить "Генерировать информацию об отладке" в настройках компилятора
Мы нашли причину нашей проблемы. Этот код использовал атрибут "CodeBehind" в директиве "Страница" файла .aspx вместо атрибута "CodeFile" (ASP.NET 2.0 и выше). После дней отчаяния простой поиск и замена решили проблему.
Опция "Начать отладку, Debug + Windows + Modules" не существует в выпуске Microsoft Visual Studio Express 2013.
Снимите флажок "Использовать режим управляемой совместимости" в параметрах инструментов Отладка исправляет это.
Проверьте раскрывающийся список Solution Configuration
вашего Solution Configuration
. Убедитесь, что вы выбрали Debug
, а не Release
.
Я попробовал все, что упоминалось выше, но ничего не получилось. [Очистить решение и проверить файлы PDB и т.д.]
Даже публикация того же решения не решила проблему.
Затем я вернулся к тому, что я обычно делаю, чтобы решить (обмануть эту упрямую Visual Studio)
Все, что я сделал, это сделать преднамеренное изменение кода и опубликовать решение. Затем я вернул изменения и снова опубликовал.
Voila [файлы PDB избавлены от злых духов].. Не умное решение, но это действительно сработало..: - |
Ни один из этих ответов не решил мою проблему. Я попробовал другое, основанное на факте, что проект с остановкой на самом деле не был загруженным проектом. Я нашел, как Ханс Пассант написал, что .dll, где я хочу остановить отладчик и связанные файлы .pdb, скопированные рядом с файлом .exe. У этих файлов была более старая дата, поэтому я думал, что они не обновлены во время выполнения. Я вручную удалил их, Visual Studio создала другую пару и положила эту новую пару рядом с .exe. Теперь работает breakpoins!
Возможно, Visual Studio не может скопировать и ЗАМЕНИТЬ существующие файлы (DLL и .pdb) рядом с .exe, так как там есть другое. Поэтому, если я удаляю вручную, тогда VS может создать новый файл .exe.
Я думаю, что другие изменения (проверки и т.д. - из других ответов) вызвали что-то, и Visual Studio скопировала и заменила dll и pdb из папки проекта в папку рядом с exe, так что это было решение.
Я думаю, что основной причиной проблемы является то, что Visual Studio использует другой файл во время выполнения, без файла из проекта, с остановкой.
Возможно, этот ответ поможет кому-то!
Все, что нужно проверить, чтобы быть ясным: убедитесь, что у вас установлена настройка "Отладка", а не "Отпуск". Вы можете отлаживать проект запуска в режиме "Release", но не ссылочную библиотеку классов.
Только для Web-приложений (IIS Express):
- Лоток Rightclick IIS Express и закройте IIS.
- Чистое решение
Это заняло у меня некоторое время другие варианты выше, и по какой-то странной причине отладка перестала работать.
Инструмент → Параметры → Отладка → Общие → (untick) "Требуется исходный файл, чтобы точно соответствовать исходной версии"
У меня также была та же проблема, что я перестраиваю все решение (включая реферированные проекты) в x86 (или x64)
Хотя я установил все мои проекты на x86 из Configuration Manager (Build-> ConfigManager), некоторые из моих проектов не были установлены в x86.
Итак, просто чтобы щелкнуть правой кнопкой мыши по проекту и следовать
project → properties → Debug Tab, проверьте конфигурацию и платформу.
Свойства проекта (затем выберите конфигурацию сборки) > Вкладка "Вкладка" > "Дополнительно..." > "Отладочная информация" (раскрывающийся список)
Установите значение "all" или "pdb-only", затем перестройте
Вместо того, чтобы делать все это просто
Закрыть и снова открыть
решение будет устранять проблему
У меня была аналогичная проблема, и я сделал следующее: Debug => Options => General => Удалить галочку для "Включить только мой код". Это сработало для меня..
Отладка ->
Параметры ->
Общие ->
Снимите Enable Just My Code
" Enable Just My Code
"
Это сработало для меня.
Я интегрировал приложение С# со статической библиотекой, используя VS10, к которой я новичок. Я написал управляемый код dll для их взаимодействия. Я мог бы установить точки останова повсюду, кроме статической библиотеки. Я получил сообщение, описанное выше, - для этого документа не были загружены символы. Я попробовал много из приведенных выше предложений. Я видел, что символы не загружаются. Я, наконец, заметил флажок "Конфигурация Debug", "Включить неуправляемую отладку кода". Это позволило мне установить точки останова в статических функциях lib.
Я внимательно прочитал все ответы выше, но ни одна из них не решила мою проблему.
В моем случае я составлял библиотеку классов (DLL). Никакие модули, похоже, не загружаются в Debug → Modules, поэтому я не мог даже загрузить символы вручную.
Мое решение состояло в том, чтобы добавить эту строку в мой код:
System.Diagnostics.Debugger.Launch();
Как только этот код будет достигнут, будет инициировано исключение, а .NET Framework отобразит диалоговое окно с запросом Visual Studio (т.е. новый экземпляр VS 2008, новый экземпляр VS 2013 и т.д.), который вы хотите использовать для отладки программы. Вы можете выбрать существующий экземпляр VS с загруженным проектом. Это приложит процесс к вашей сессии VS и загрузит все символы, и теперь вы можете отлаживать ваш проект.
Конечно, компиляция должна быть выполнена с использованием конфигурации Debug, а не Release.
Посмотрите другие вопросы по меткам debugging c# .net visual-studio breakpoints или Задайте вопрос