문제

내 코드에서 StackTrace를 사용하는 이상한 일이 일어나고 있습니다. 마치 디버그 정보가로드되지 않은 것처럼 보이지는 않지만 디버그 빌드 에서이 작업을 실행하고 있습니다. .pdb 파일은 BIN 디렉토리의 명확성이며 최신 상태입니다. 나는 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"
    }
}
도움이 되었습니까?

해결책

조금 더 인터넷 검색이 발견되었습니다 이 게시물

StackTrace에는 특수 생성자가 있습니다

public StackTrace(bool fNeedFileInfo) 

파일 정보가 채워질 필요가있는 경우. 아야

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top