Информация о действительно ли stacktrace доступна в сборке режима выпуска.NET?

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

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

5
задан Bobby 29 July 2010 в 15:23
поделиться

2 ответа

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

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

  1. откройте страницы свойств вашего проекта
  2. выберите конфигурацию Release
  3. перейдите на вкладку Build, затем нажмите кнопку Advanced
  4. выберите "full" в выпадающем списке Debug Info.

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

15
ответ дан 18 December 2019 в 07:53
поделиться

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

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

5
ответ дан 18 December 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: