【问题标题】:ClrMD Get Memory Dump timeClrMD 获取内存转储时间
【发布时间】:2014-06-18 07:44:57
【问题描述】:
【问题讨论】:
-
如果您热衷于自己做一些工作,您可以调整 DumpReader 类以包含 SystemInfo minidump 流并从那里获取该信息。
标签:
windbg
dump
memory-dump
clrmd
【解决方案1】:
我找到了解决此任务的以下方法,但是它限制了我们只能使用 DbgEng。
-
打开转储文件并指定 DbgEng(因此将使用 IDebugClient)
DataTarget.LoadCrashDump(pathToMemoryDumpFile, CrashDumpReader.DbgEng));
-
使用IDebugControl2 COM 接口获取目标时间(确保在启动会话的同一线程上执行该操作):
uint secondsSinceUnix;
var dbgCtrl2 = (IDebugControl2)sessionContext.DataTarget.DebuggerInterface;
dbgCtrl2.GetCurrentTimeDate(out secondsSinceUnix);
使用here 描述的方法将secondsSinceUnix 转换为DateTime。
作为输出,您将获得内存转储创建的 UTC 日期时间(或附加时间)。
对我来说效果很好:)