Символы не загружены и отсутствует файл pdb - PullRequest
3 голосов
/ 21 января 2012

Я пытаюсь понять, почему я получаю сообщение «В настоящий момент точка останова не будет достигнута. Для этого документа не было загружено ни одного символа» при попытке отладить приложение моего веб-сайта (примечание: в случае отсутствия веб-приложенияэто имеет значение)

Итак, я обнаружил, что файл pdb (база данных отладки проекта) так же важен, как и исходный код, и должен отображаться в папке bin, но по какой-то причине файл отсутствует, простонекоторые DLL находятся там, на самом деле во всей директории нет файла pdb.

Мой первый вопрос: должен быть файл pdb независимо от того, какой проект разрабатывается.Правильно?

Второй вопрос: Как я могу заново создать этот файл, или какие шаги необходимо выполнить, чтобы снова отладить проект?

Ответы [ 6 ]

7 голосов
/ 21 января 2012

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

Обычно происходит то, что вы настроили свою сборку как "Release" вместо "Debug".

http://msdn.microsoft.com/en-us/library/wx0123s5.aspx

ЕслиПри создании веб-приложения ваши файлы конфигурации также могут иметь настройку «Розничная торговля».Если установлено значение true, вы всегда находитесь в режиме «Release», даже если в вашей конфигурации сборки указано иное.

http://msdn.microsoft.com/en-us/library/ms228298(v=vs.80).aspx

4 голосов
/ 23 января 2012

Несколько вещей, которые я делаю, чтобы попытаться исправить эту проблему:

  • Очистить временные файлы ASP.NET (C: \ Windows \ Microsoft .NET \ Framework {version} \ Temporary ASP.NETfiles {site} (Вам нужно будет выйти из Visual Studio и любых веб-браузеров, указывающих на сайт разработки)
  • Запустите диспетчер задач и щелкните правой кнопкой мыши процесс W3WP.EXE, выберите SET AFFINITY и снимите флажки со всех, кроме одного CPU

Обычно, если я делаю это, затем присоединяюсь к процессу W3WP для отладки, точка останова будет заполнена, и я могу пройти по своему коду.

1 голос
/ 26 января 2016

Чтобы сгенерировать файлы .pdb в Release, вам нужно установить свойства вашего проекта:

Компиляция \ Дополнительные параметры компиляции \ Создать информацию об отладке => 'pdb-only' или 'Full'

Упаковать / Опубликовать в сети \ Исключить сгенерированные символы отладки => снять отметку с этого

1 голос
/ 25 мая 2012

У меня только что была эта проблема, и оказалось, что мой web.config был настроен на debug = false.
Убедитесь, что в вашем web.config

компиляция debug = true
<compilation defaultLanguage="vb" debug="true" batch="false" targetFramework="4.0">
  <assemblies>
    <!-- add references to gac assemblies here-->
  </assemblies>
</compilation>
0 голосов
/ 19 февраля 2019

В дополнение к ответу Ресурса выше, даже несмотря на то, что я использую отладочные версии, мне пришлось установить в версии Release проекта для отладки (в моем случае пакет NuGet) также значение 'pdbonly'.Я также использую MyGet в качестве сервера символов, но, делая это, я также могу отлаживать, используя локальные версии.У меня есть следующие настройки:

Версии выпуска, загруженные на сервер пакетов MyGet NuGet Отладочные версии, загруженные на сервер MyGet Symbol

0 голосов
/ 23 января 2012

В поисках решения моей проблемы я обнаружил следующее:

Во-первых, как сказал Адриан Ифтод, в случае с веб-сайтом код файлов компилируется ASP .Net, а не VS, поэтому в папке bin нет файлов dll и pdb.

  • Поэтому я удаляю все временные файлы из: windows \ Microsoft .NET \ Framework \ v2.0.50727 \ Временные файлы ASP.NET \

, которая содержит папку для каждого вашего проекта.

  • Удалить все временные файлы из iexplorer
  • В свойствах IIS для проекта \ Directory \ Configuration \ Debugging\ проверьте оба параметра ниже Отладочные флаги.

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

...