Windows 2000のカーネルデバッグにはx86バージョンのWinDbgが必要なのが判明

現行版の WinDbgで Windows 2000のデバッグをすると

 

Kernel base = 0x80800000 PsLoadedModuleList = 0x808815c0
System Uptime: not available
Unable to add extension DLL: kdextx86
Unable to load image ntoskrnl.exe, Win32 error 0n2

のようなエラーが出るんですが、一応動くので、スタックとレースなどができなくてエラーが見れないなぁと思ってたのですがあまり気にしてませんでした。

夏休みで少し時間ができたので、拡張Libっぽい kdextx86を読めるようにしてみようと思ったのでした。

 

Kernel base = 0x80800000 PsLoadedModuleList = 0x808815c0
System Uptime: not available
The call to LoadLibrary(kdextx86) failed, Win32 error 0n193
"%1 は有効な Win32 アプリケーションではありません。"
Please check your debugger configuration and/or network access.
Extension DLL search Path:
amd64\WINXP;amd64\winext;amd64\winext\arcade;amd64\pri;amd64;

You may also consider deploying your extension to the UserExtensions extension gallery repository
located at %LOCALAPPDATA%\dbg\UserExtensions folder. It would require an extension manifest.
Error: Failed to load extension kdextx86
Unable to load image ntoskrnl.exe, Win32 error 0n2

試しに、kdextx86を読み込ませてみようとおもったんですが、kdextx86.dllって、実はx86用のバイナリしか存在しません。
古いバージョンのDebugging Tools for Windows (x64) インストールしても、フォルダ自体がないんですよ。
つまり、x86版を使うしかないのです
そして、Windows 2000に対応してる最終版が dbg_x86_6.12.2.633.msi(version 6.12.2.633)となります。

今まで謎だった、WiFi Driver クラッシュが Division by 0 が原因なのが判明!

試しに、Windows 8.1 のSDKの6.3.9600.16384版に w2kchkとw2kfreをコピーしてみたところ、ちゃんとプラグインが読み込めました
必要なのは32bit版 WinDbgだったのでした。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です