异常ToString():调试与发布模式

pum*_*iki 1 c#

关于调试和释放模式下的堆栈跟踪深度.我得出以下结论(调用exception.ToString()):

在调试模式下,您可以在发布模式下获得包含行号(几帧)的完整堆栈跟踪,而不是完整的堆栈跟踪,您只能获得带有行号的try块(单帧)中的抛出方法

-真的吗 ? - 有没有办法在发布模式下获得完整的堆栈tracve?

Meh*_*ari 8

如果PDB文件与程序集关联,则会在堆栈跟踪中获取行号.即使在Release版本中,您也可以让编译器生成PDB文件并将它们与程序集一起发送.您可以csc /debug:pdbonly在编译应用程序时使用.在Visual Studio 2010中,您可以使用Project Properties - > Build - > Advanced - > Debug Info = pdb-only来实现相同的功能.

更新(堆栈跟踪深度):

您可以在Release版本中获得完整的堆栈跟踪.但是,编译器可以内联方法并优化尾调用,使堆栈跟踪不同.