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

Я получаю сообщение об ошибке в строке темы. Я запускаю vs2k8 на сервере 2k3sp2. Я попытался удалить pdbs, кэш-каталоги, проверив, что отладка настроена на конкретной странице. Интересно, что другие страницы отлаживаются просто отлично. Просто, когда я иду на эту страницу. Должна быть проблема конфигурации, но директива page выглядит следующим образом:

print ( "<% @Page Language = 'С#' AutoEventWireup = 'true' CodeBehind = 'MemberSearch.aspx.cs' Inherits = 'SurencyPortal.EmployerPortal.MemberSearch' Debug = 'true'% > " );

Я также заметил, что при отладке, если я открываю окно модулей, почти все символы показывают статус "Символ не загружен". Однако после дополнительных исследований из статьи msdn ниже один из сообщений MSFT сказал, что если это ядро ​​.net dll, оно не будет загружать символы, поэтому я не беспокоюсь об этом. Некоторые из модулей microsoft (например, System.Enterpricesservices.wrapper.dll) показывают восклицательный знак с сообщением "модуль не загружался по адресу загрузки по умолчанию". Не знаю, почему эта DLL существует, поскольку я не знаю о каких-либо вызовах.

Вот что я пробовал:

Точка прерывания не подключена при отладке в VS.Net 2005

http://social.msdn.microsoft.com/Forums/en-US/vbide/thread/557fdedb-268e-48a8-9944-29b2b4e0dec2/#page:3

Билл

Ответы

Ответ 1

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

Ответ 2

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

Это может быть не ваша проблема, но обычно это ситуация, когда я вижу это сообщение об ошибке. Еще одна вещь, которую вы можете сделать, - Debug → Attach to Process, если отладчик не привязан к правильному процессу.

Ответ 3

Поместите встроенный оператор break, чтобы убедиться, что вы действительно используете код. Если вы не остановитесь, скорее всего, код, который вы пытаетесь отлаживать, просто не запускается, или вы не отлаживаете его с помощью управляемого отладчика.

Если вы остановитесь, но не можете найти источник, то, вероятно, у вас нет pdb для модуля. Проверьте верхнюю часть окна callstack, чтобы увидеть, какая сборка содержит метод, в котором вы остановились. Это сборка, для которой вам нужен pdb. В окне модуля будет показано местоположение на диске этой сборки. Инструмент командной строки "dumpbin -headers assembly.dll" сбрасывает заголовки PE. Проверьте каталог Debug, чтобы узнать, где был размещен pdb, когда сборка была построена. Если каталог Debug не существует, сборка была построена без отладочной информации. Если это так, то ваша проблема заключается в том, чтобы определить, почему эта конкретная сборка была построена без отладочной информации. Если у него есть отладочная информация, и pdb существует, но не загружается, значит, либо pdb не был найден отладчиком, и вы должны посмотреть на параметры tools\options\debug\symbol. Или pdb и сборка не совпадают. Если временные метки не находятся в пределах 1 секунды, они, безусловно, не совпадают.

Если приведенное выше не поможет обновить дополнительную информацию.

Ответ 4

Обычно это происходит, когда файлы .pdb, которые VS использует для отладки, отличаются от того, что фактически выполняет код. То есть, если вы внесли изменения в свою сборку.
Кроме того, убедитесь, что у вас есть <compilation debug="true"> в файле web.config. Я не знаю, имеет ли это какое-либо отношение к директиве на странице, но обычно это для меня:)

Ответ 5

Я согласен с тем, что видел это, когда у меня есть несколько сборок, которые не синхронизированы, и/или один или несколько pdbs не соответствуют источнику. В моем случае это было из-за того, что у меня была странность с моим программным обеспечением для контроля версий (ClearCase), и я на самом деле не собирал то, что, как я думал, был.

Ответ 6

Если у вас есть проект "WebSite", а не "WebApplication", я обнаружил, что перекрывающиеся классы файлов кода могут вызвать проблему. Это может произойти несколькими способами. К сожалению, Visual Studio по-прежнему, похоже, компилирует решение/проект без ошибок.

  • Перемещение страниц между папками на веб-сайте.
  • Слияние элементов управления версиями после перемещения страниц может привести к дублированию страниц, а Visual Studio запутается во время отладки.
  • Скопировать и вставить существующие страницы (шаблоны) также может вызвать это из памяти.

Чтобы решить проблему I

  • Найдите "Класс TheProblemPageCodeSymbolIssue" для дубликатов в решении.
  • Переустановил дублированный код за именами классов и протестировал все эти страницы, чтобы я мог использовать контрольные точки отладки.

Надеюсь, что это поможет.