我使用Windbg 64位調試程序(32位,語言C),此程序包含異常。
在我的程序中,我記錄了有關發生異常的信息,特別是ExceptionRecord和ContextRecord,我調用了批處理文件,這個文件叫cdb.exe(64位)。
在批處理文件中的行,我叫的Cdb.exe是:.effmach x86無法從64位切換到32位
cdb.exe -p %PID% -pd -loga %LogFile%.txt -lines -c ".echo ;.echo *** Call stack of module causing abort ***;.effmach x86;.cxr %ContextRecord%;kp; .dump /ma %LogFile%.dmp;q" > nul
其中%PID%:我的進程ID
所以,當我使用; .load wow64exts;!sw;而不是.effmach x86,debuger運行並顯示我到底需要什麼(該行和函數導致異常),但是當我使用.effmach x86時,批處理文件停止運行或崩潰,或者我不'知道,但沒有結果並且日誌文件未創建。
我的問題:爲什麼.effmach x86崩潰我的批處理文件? 感謝
我使用的是Windows 7 64位
(對不起,我的英語)
由於你的程序是32位,爲什麼你不使用32位Windbg? 只要你做用戶模式,即使在64位的Windows上,這個工作也是完美的。 –
哪個版本的WinDbg?爲什麼你真的.effmach - 因爲你創建了一個完整的轉儲,裏面包含了所有的信息,所以你以後可以繼續使用.effmach嗎? –
也許你可以用WinDbg調試CDB來找出:-) –