如何获取Line异常

本文关键字:Line 异常 获取 何获取 | 更新日期: 2023-09-27 17:59:26

这个问题很清楚。它应该与一起工作

StackTrace st = new StackTrace(exc, true);
//Get the first stack frame
StackFrame frame = st.GetFrame(0);
//Get the file name
//string fileName = frame.GetFileName();
//Get the line number from the stack frame
int line = frame.GetFileLineNumber();

问题是,如果我在调试模式下启动应用程序,它总是可以工作的。当我在发布模式下启动它时,它似乎需要pdb文件来获得这些信息。那么保留pdb文件的缺点是什么呢(我认为只有在调试模式下才需要它们)。Viceversa这是获取异常行信息的唯一方法吗?

如何获取Line异常

那么,保留pdb文件的缺点是什么(我认为它们只在调试模式下需要)

主要是因为它有助于更大规模的部署。显然它不会影响性能。

Viceversa这是获取异常行信息的唯一方法吗?

是的,只有pdb包含线路信息。但正如评论中所提到的,在发布模式下,行号可能并不完全准确。

除了使用pdb文件的技巧外,如果需要保留行号(不是100%),还需要禁用项目的"优化代码"选项。但无论如何都不建议这样做,因为这可能会使您的程序变慢。

您可以在项目属性的生成选项中找到它。

优化代码重新排列您的代码删除、移动和添加行以优化它。