堆栈跟踪不返回lineNo和Filename

时间:2014-02-19 12:44:30

标签: c# stack-trace

我是写作异常,但是对于fileName它返回null并且为行号返回0。我打开任何其他项目,它成功运行。我认为它与调试设置有关我如何更改我的项目设置以响应我的代码?

public static void WriteUnexpectedErrors(Exception ex)
{
    StackTrace trace = new StackTrace(ex, true);
    string fileName = trace.GetFrame(0).GetFileName();
    int lineNo = trace.GetFrame(0).GetFileLineNumber();
}

此代码得出了一些结果,但上面的代码不起作用,尤其是GetFrame(0).GetFileName();

foreach (var frame in trace.GetFrames())
                {
                    if (!string.IsNullOrEmpty(frame.GetFileName()))
                    {
                        Console.WriteLine(frame.GetFileName());
                    }
                    if (frame.GetFileLineNumber() > 0)
                    {
                        Console.WriteLine(frame.GetFileLineNumber());
                    }
                }

1 个答案:

答案 0 :(得分:1)

检查项目属性的“构建”选项卡上的“高级设置”中的Debug Info。确保将调试信息设置设置为fullpdb-only

enter image description here