こんにちはー! 失敗の原因、わかりました?
とりあえずKDBを動かせるようにはなりましたが、アプリケーションを起動してテストまでは進んでないです
そうですか。こちらの調査によると、WNDにHIMCがセットされていないということが分かりまして、HIMCをセットすると修正されました。
これで最初の問題は解決済みです。修正後はこうなりました。
次の問題は、見ての通り、ImmLockIMCで失敗することです。
何か質問はありませんか?
KDBを動かせるようになってから、どのようにするべきか全く想像がついていないので多少ご教授願いたいです
まず、ターゲットのプログラムにDebugBreak();を仕掛けて下さい。これでデバッグしやすくなります。
次はset condition * first alwaysをKDBで実行して下さい。これでユーザー側の例外がキャッチできます。
bpx [address]でブレークポイントを設定できますが、これは関数アドレスがわからないと使えません。
printf("fn: %p\n", fn); などと関数ポインタを吐かせればアドレスが使えます。
状態を追っていくには、ソースコード側でprintfやERR文を埋め込む必要があります。いわゆるprintfデバッグです。
imm32でImmLockIMCをgrepしてReactOSの実装を確かめて下さい。そして分岐点にERRを埋め込んで下さい。これで失敗の原因がある程度わかります。
わかりました
今日はここまで。
ありがとうございました