2009-10-30 8 views
22

StackTraceを使用しているコードで、何か変わったことが起こっています。デバッグ情報がロードされていないのとほぼ同じですが、DEBUGビルドでこれを実行しています.pdbファイルはbinディレクトリにあり、最新のものです。私は真剣にideeasを使い果たしました:StackTraceファイル名が不明です

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" 
    } 
} 
+1

完全なトレースを表示できますか?より多くの文脈を助けてください。 – Richard

答えて

44

もう少しarroundのグーグルあなたが移入するための情報ファイルが必要な場合this post

はのStackTraceは特別なコンストラクタ

public StackTrace(bool fNeedFileInfo) 

を持ってい判明ました。 Ouch

+12

何とか、これはむしろ愚かなIMOです。 – kizzx2

+4

FOUL!ファウル!ファウル! – FastAl

関連する問題