Доступна ли информация о трассировке стека в режиме сборки .NET - PullRequest
5 голосов
/ 29 июня 2010

Если я выберу режим выпуска для создания библиотеки DLL, информация о трассировке стека все еще будет доступна?

Если так, то какая информация недоступна в режиме выпуска?

Ответы [ 2 ]

14 голосов
/ 29 июня 2010

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

Вы можете получить как номера строк, так и имена исходных файлов в трассировках стека сборки выпуска (включая исключения), изменив конфигурацию сборки для создания файлов полной базы данных программы (.pdb). Для этого в Visual Studio:

  1. открыть страницы свойств вашего проекта
  2. выберите конфигурацию выпуска
  3. перейдите на вкладку Build, затем нажмите кнопку Advanced
  4. выберите «полный» в раскрывающемся меню «Отладочная информация».

Обратите внимание, что это поможет, только если файлы .pdb развернуты вместе с вашим приложением.

5 голосов
/ 29 июня 2010

Если вы имеете в виду трассировки стека в контексте исключений, то да, информация трассировки стека все еще доступна в режиме выпуска.В режиме выпуска вы теряете полные символы отладки, которые предоставляют информацию о точках последовательности исходного кода для трассировки стека.Это позволяет трассировке стека идентифицировать конкретную строку кода, на которую ссылается конкретная запись трассировки стека.

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

...