如果我选择发布模式来构建一个dll,堆栈跟踪信息是否仍然可用?
如果是这样,那么在发布模式下 的信息是什么?
答案 0 :(得分:14)
您始终拥有堆栈跟踪信息 - 这是与构建模式无关的运行时功能 - 但是行号和源文件名在发布构建堆栈跟踪中通常不可用。
您可以通过更改构建配置来创建完整的程序数据库(.pdb)文件,从而在发布构建堆栈跟踪(包括异常)中获取行号和源文件名。要在Visual Studio中执行此操作:
请注意,这仅在.pdb文件与应用程序一起部署时才有用。
答案 1 :(得分:5)
如果您在异常的上下文中引用堆栈跟踪,则是,堆栈跟踪信息在发布模式下仍然可用。在发布模式下丢失的是完整的调试符号,它为堆栈跟踪提供源代码序列点信息。这允许堆栈跟踪标识特定堆栈跟踪条目引用的特定代码行。
此外,在启用了优化的发布模式下,可以内联代码,从而更改运行时代码的结构。虽然肯定更优化,但运行时发布代码与实际编写的代码行之间的关系较少。