2017-08-14 79 views
2

我有一個核心轉儲已在客戶現場生成。我可以從時間戳中找到轉儲文件打開的時間。 (文件名的一部分)如何檢查導致轉儲發生故障的毫秒數?

是否有可能看到異常發生在哪個毫秒?

這將使我能夠更準確地與日誌文件進行比較(以毫秒爲單位)。

+0

我知道windbg .time命令告訴時間,但總是毫秒000,這似乎不太可能。 – leiflundgren

+1

WinDbg使用[GetCurrentProcessUptime](https://msdn.microsoft.com/en-us/library/windows/hardware/ff545857(v = vs.85).aspx),它只記錄第二級準確性,所以很不幸我不認爲這是可能的。你的日誌文件中是否真的有*那麼多事件*每秒*? –

+0

當然,它崩潰在日誌文件停止點? – OrangeDog

回答

2

如上所述,「.time」是您獲得轉儲發生時間戳的方式。對於用戶轉儲,這不太可能 - 從我的觀察來看,它始終只是第二級精度。對於內核轉儲,我發現它精確到毫秒。

但是,我發現「.time」輸出中的「系統正常運行時間」對於內核和用戶轉儲都精確到毫秒。如果您能夠將最後一次引導時間設置爲毫秒級精確度(例如通過調用「wmic os get lastBootUpTime」),則可以將uptime添加到lastBootUpTime以獲取準確的轉儲發生時間戳。

+0

也許記錄系統正常運行時間將是一個想法。謝謝! – leiflundgren

+0

有趣......我不知道爲什麼內核轉儲會有更高的分辨率。他們必須使用不同的API來記錄和檢索時間戳。 –

+0

現在我們的日誌組件在每個日誌的開始寫入系統正常運行時間。如果發生轉儲,只需查看轉儲和日誌中的正常運行時間,請使用計算器,然後瞧! – leiflundgren