堆栈跟踪中的错误行号(发布)

xop*_*hiy 7 .net exception pdb-files

有时我们会从错误的行号接收客户的堆栈跟踪.它不是经常发生,但有时它会困扰我们.

客户拥有具有优化和"仅pdb"调试信息的发布程序集.

是的,我们将行号与客户所拥有的完全相同的代码版本进行比较.

是的,客户有正确的pdb文件.

不,行号中的这种差异无法用内联方法(编译器优化)来解释.

不,我们不使用任何AOP工具,如PostSharp.

任何想法为什么会发生?

Sin*_*ion 7

不是.net专家,但至少在其他语言中,当选择高编译器优化时,编译器可能会对代码进行重要的重新排序.这通常会使得将错误源固定到特定线路变得非常困难.如果编译器能够跨基本块进行优化,那么这种效果可能非常显着,将明显的行位置放在源文件的完全不同的部分.