6

如果我选择发布模式构建 dll,stacktrace 信息是否仍然可用?

如果是这样,那么在发布模式下哪些信息不可用

4

2 回答 2

15

你总是有堆栈跟踪信息——这是一个与构建模式无关的运行时特性——但是行号和源文件名通常在发布构建堆栈跟踪中不可用。

通过更改构建配置以创建完整的程序数据库 (.pdb) 文件,您可以在发布构建堆栈跟踪(包括异常)中获取行号和源文件名。在 Visual Studio 中执行此操作:

  1. 打开项目的属性页
  2. 选择发布配置
  3. 转到构建选项卡,然后单击高级按钮
  4. 在“调试信息”下拉列表中选择“完整”。

请注意,这仅在 .pdb 文件与您的应用程序一起部署时才有帮助。

于 2010-06-29T04:44:46.290 回答
6

如果您指的是异常上下文中的堆栈跟踪,那么是的,堆栈跟踪信息在发布模式下仍然可用。您在发布模式中丢失的是完整的调试符号,它为堆栈跟踪提供源代码序列点信息。这允许堆栈跟踪识别特定堆栈跟踪条目所引用的特定代码行。

此外,在启用优化的发布模式下,代码可能会被内联,从而改变运行时代码的结构。虽然肯定更优化,但运行时发布代码与实际编写的代码行的关系较少。

于 2010-06-29T04:33:04.767 回答