gpt4 book ai didi

c# - 如何在捕获异常中显示行号和帧?

转载 作者:行者123 更新时间:2023-11-30 12:22:51 26 4
gpt4 key购买 nike

我正在尝试将行号和框架写入文本文件,但我无法让它工作。从我在网上阅读的内容来看,我编写的方式应该可行,但它实际上并没有输出任何行号,这使得我的调试非常困难。任何人都可以协助指出我的代码可能在哪里出错吗?

catch (Exception e)
{
var st = new StackTrace(e, true);
var frame = st.GetFrame(0);
var line = frame.GetFileLineNumber();
var sw = new System.IO.StreamWriter(filename, true);

sw.WriteLine(
DateTime.Now.ToString() + "\r\n"
+ e.Message + "\r\n"
+ e.InnerException + "\r\n"
+ e.Source + "\r\n"
+ frame + "\r\n"
+ line);
sw.Close();

}

它确实会输出一些信息,但不包括行号/帧号。

这里是输出内容的示例。

22/08/2016 08:34:24
Input string was not in a correct format.
StringToNumber at offset 12099653 in file:line:column <filename unknown>:0:0 0

另请注意,应用程序是在 Debug 而非 Release 中运行。

最佳答案

确保您的应用程序是在 DEBUG 模式下构建的。如果它在 Release 中,则异常文本中不包含某些信息(如行号)。

另一个可能的原因是您为项目编辑了调试配置并禁用了调试信息(项目设置 => 构建 => 高级 => 输出调试信息)

最后,您需要用于行号的 pdb 文件,它们应该与您的 .exe/.dll 位于同一文件夹中。默认情况下,它们在那里,直到您手动删除它们或将应用程序的一部分复制到另一个位置并在那里运行。

关于c# - 如何在捕获异常中显示行号和帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39074182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com