我有一個核心轉儲已在客戶現場生成。我可以從時間戳中找到轉儲文件打開的時間。 (文件名的一部分)如何檢查導致轉儲發生故障的毫秒數?
是否有可能看到異常發生在哪個毫秒?
這將使我能夠更準確地與日誌文件進行比較(以毫秒爲單位)。
我有一個核心轉儲已在客戶現場生成。我可以從時間戳中找到轉儲文件打開的時間。 (文件名的一部分)如何檢查導致轉儲發生故障的毫秒數?
是否有可能看到異常發生在哪個毫秒?
這將使我能夠更準確地與日誌文件進行比較(以毫秒爲單位)。
如上所述,「.time」是您獲得轉儲發生時間戳的方式。對於用戶轉儲,這不太可能 - 從我的觀察來看,它始終只是第二級精度。對於內核轉儲,我發現它精確到毫秒。
但是,我發現「.time」輸出中的「系統正常運行時間」對於內核和用戶轉儲都精確到毫秒。如果您能夠將最後一次引導時間設置爲毫秒級精確度(例如通過調用「wmic os get lastBootUpTime」),則可以將uptime添加到lastBootUpTime以獲取準確的轉儲發生時間戳。
也許記錄系統正常運行時間將是一個想法。謝謝! – leiflundgren
有趣......我不知道爲什麼內核轉儲會有更高的分辨率。他們必須使用不同的API來記錄和檢索時間戳。 –
現在我們的日誌組件在每個日誌的開始寫入系統正常運行時間。如果發生轉儲,只需查看轉儲和日誌中的正常運行時間,請使用計算器,然後瞧! – leiflundgren
我知道windbg .time命令告訴時間,但總是毫秒000,這似乎不太可能。 – leiflundgren
WinDbg使用[GetCurrentProcessUptime](https://msdn.microsoft.com/en-us/library/windows/hardware/ff545857(v = vs.85).aspx),它只記錄第二級準確性,所以很不幸我不認爲這是可能的。你的日誌文件中是否真的有*那麼多事件*每秒*? –
當然,它崩潰在日誌文件停止點? – OrangeDog