Генерация символов отладки для Symbol Server из процесса CI для удаленной отладки - PullRequest
1 голос
/ 02 февраля 2010

У кого-нибудь есть советы по расширению нашего SVN & Cruise Control Процесс CI для заполнения Symbol Server ?

Мы пытаемся удаленно отлаживать тестовые среды для нашего веб-сайта ASP.NET 2.0 C # и столкнулись с проблемами при получении правильных символов для постоянной загрузки.

Наш процесс сборки выполняется в режиме выпуска, а не в режиме отладки, так как это влияет на создание файлов PDB?

Используя VS2008, мы решили несколько проблем при подключении к удаленной отладке, поскольку тестовые среды не находятся в одном домене. Теперь мы получаем это сообщение при попытке просмотра переменных:

Невозможно получить значение local или аргумент 'xxxxx', так как он недоступен в этом указателе инструкций, возможно, из-за того, что он был оптимизирован

Это потому, что наш процесс сборки и последующего развертывания находится в режиме выпуска?

1 Ответ

2 голосов
/ 02 февраля 2010

Это сообщение об ошибке появляется из-за того, что CLR сам оптимизировал переменные.PDB по-прежнему содержат всю информацию о локальных компьютерах в режиме выпуска, отладчик просто не может получить к ним доступ.

Возможно встроить в режим релиза и вообще избежать этой проблемы.Одним из факторов того, будет ли CLR оптимизироваться таким образом, чтобы местные жители не были видны, является класс DebuggableAttribute.

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

Если у вас есть веб-приложение (против веб-сайта), вы можете просто добавить следующую строку в AssemblyInfo.cs, и это должно решить проблему

[assembly: Debuggable(DebuggingModes.DisableOptimizations)]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...