堆栈跟踪文件名不明(StackTrace filename unknown)

2019-09-02 16:11发布

奇怪的事情在我的代码是发生在那里我使用了一个堆栈跟踪。 这是几乎一样,如果没有被加载调试信息...但我在bin目录和最新的DEBUG build.The .pdb文件运行此被definitelly。 我认真地跑出ideeas的:

public class TraceHelper
{
    private static IDictionary<string,int> TraceDictionary = new Dictionary<string,int>();

    public TraceHelper(int duration)
    {

         ...
        TraceDictionary[InternalGetCallingLocation()]+=duration;
         ... 

    }
    public static string InternalGetCallingLocation ()
    {
          var trace = new System.Diagnostics.StackTrace();
          var frames = trace.GetFrames();
          var filename = frames[1].GetFileName(); //<<-- this always returns null
          return frames[0].ToString(); //this returns:
          //  "InternalGetCallingLocation at offset 99 in file:line:column <filename unknown>:0:0"
    }
}

Answer 1:

多一点以防万一谷歌上搜索发现这个帖子

原来堆栈跟踪有一个特殊的构造

public StackTrace(bool fNeedFileInfo) 

如果你需要文件信息进行填充。 哎哟



文章来源: StackTrace filename unknown