2014-06-18 7 views
2

메모리 덤프를 분석하기 위해 나는 CLR Memory Diagnostics 도구로 놀고 있습니다.ClrMD 메모리 덤프 시간 받기

WinDBG를 사용하여 덤프를 열면 .time 명령을 사용하여 덤프가 캡처 된 디버그 세션 시간을 가져올 수 있습니다.

누구나 ClrMD API를 사용하여 날짜를 알 수 있습니까?

+0

, 당신은 [DumpReader] 적응할 수 (잘했다 https://github.com/Microsoft/dotnetsamples/ blob/master/Microsoft.Diagnostics.Runtime/CLRMD/ClrMemDiag/Utilities/DumpReader.cs) 클래스를 사용하여 SystemInfo 미니 덤프 스트림을 포함하고 거기에서 해당 정보를 가져옵니다. –

답변

4

이 작업을 해결하기 위해 다음과 같은 방법을 찾았지 만 DbgEng 사용에만 제한되어 있습니다.

  1. 열기 덤프 파일 및 DbgEng을 지정하면 동일한 스레드에서 시작하는 것을 수행 할 수 있도록 (시간을 타겟으로 얻을 수

    DataTarget.LoadCrashDump(pathToMemoryDumpFile, CrashDumpReader.DbgEng)); 
    
  2. 사용 IDebugControl2 COM 인터페이스 (그래서 IDebugClient가 사용됩니다) 세션) : 접근 방식을 사용하여 날짜 시간에

    uint secondsSinceUnix; 
    var dbgCtrl2 = (IDebugControl2)sessionContext.DataTarget.DebuggerInterface; 
    dbgCtrl2.GetCurrentTimeDate(out secondsSinceUnix); 
    
  3. 변환 secondsSinceUnixhere을 설명했다.

  4. 출력으로 메모리 덤프 생성 (또는 첨부 시간)의 UTC 날짜 시간이 표시됩니다.

그것은 나 : 당신이 일 자신의 일부를 수행에 대한 예리한 경우