我寫了一個應用程序,使用dbgeng.dll加載一個系統範圍的崩潰轉儲。我想使用一些像WinDbg命令(!vad) - 因爲我需要其他dll,如exts.dll,ext.dll,kext.dll,kexts.dll。我擁有所有這些DLL並正確設置了我的_NT_DEBUGGER_EXTENSION_PATH。當我使用WinDbg GUI - .chain命令告訴我,所有這些dll都被加載,但是當我嘗試從我的代碼執行時 - 我看不到這些dll加載。另外,當我嘗試使用Execute(.load ....)加載這些DLL時 - 它會引發錯誤 - 「調用LoadLibrary('...')失敗,Win32錯誤0n193」。我也試過!加載 - 他們兩個都沒有在我的代碼中工作。但是一切都在GUI中完美運行。我無法弄清楚如何在我的C++代碼中加載所有這些dll。dbgeng - 在C++中加載擴展dll?
請問有人能幫我一下嗎? 我真的很感謝你的幫助!
-arb
使用所有windbg命令感謝john。我試圖強制從該文件夾的DLL加載,但仍然從我不想要的系統文件夾加載。如果我在我的代碼中使用SetDllDirectory ..該dll仍然從系統目錄加載...因爲dll在設置dll目錄之前被加載 - 你有任何解決方案? – arb 2011-05-14 16:26:45
使用LoadLibrary動態加載它,並使用GetProcAddress獲取DebugCreate。 – John 2011-05-14 20:03:41
John,我正在嘗試使用dbgeng.dll(這是64位)在Windows Server 2008 R2中調試32位win7崩潰轉儲。我遇到符號文件的問題。每當我做!vad - 它無法讀取VAD樹,因爲它無法找到符號,儘管我已經將ntdll.pdb和ntkrpamp.pdb從VM複製到服務器的本地目錄,我指向它。你知道可能是什麼問題嗎?我將衷心感謝您的幫助。謝謝 – arb 2011-05-18 13:46:56