[英]How do I compare the checksum of a memdump to the source file
在調試 memory 轉儲時,Windbg 顯然會在某處讀取校驗和,因為如果沒有提供(未與 /RELEASE 標志鏈接),它會抱怨。 但它似乎並沒有真正比較它們。 我嘗試刪除 function 並重建,但沒有顯示錯誤。 Windbg/中是否有一些 API function 來獲取存儲的校驗和或實際比較它們?
PDB 文件包含
PE 文件(DLL、EXE)包含
源文件包含
所以WinDbg可以判斷DLL和PDB是否匹配在一起。 它無法確定您擁有的源文件是否實際上是用於構建 EXE、DLL 或 PDB 的源文件。
順便說一句:這也是您不能簡單地為您過去創建的 DLL 重建 PDB 的原因。
如何將 memdump 的校驗和與源文件進行比較
好吧,你不這樣做是因為你不能。
Windbg/中是否有一些 API function 來獲取存儲的校驗和或實際比較它們?
您可以從 PDB 獲取校驗和,但無法將其與源進行比較。 您只能將其與 DLL 或 EXE 進行比較。
您還可以使用.symopt+ 0x40
(MSDN)關閉 WinDbg 中的檢查,即 SYMOPT_LOAD_ANYTHING。 但是,您可能會得到錯誤的 function 名稱、錯誤的變量名稱、錯誤的行號等。
有一些工具可以使 DLL 和 PDB 匹配。 但是,不要那樣做。 您將忘記它,並且您將永遠不會再收到有關不匹配的通知。 你會得到錯誤的結果,你會很困惑,甚至得出錯誤的結論。 這會導致大量時間浪費。 它發生在我身上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.