2

windbgに条件付きブレークポイントを設定したいと思います。

たとえば、LoadLibraryAPIとしましょう。

user32.dllがロードされるたびにブレークポイントが設定されるようにブレークポイントを設定するにはどうすればよいですか。

> x kernel32!LoadLibraryW

それはいくつかのアドレスを与えるでしょう[XXXX]

今、私はブレークポイントを次のように置くことができます

> bu [XXXX] 

ただし、これはLoadLibraryWへのすべての呼び出しに当てはまります。

助言がありますか。

4

2 に答える 2

9

user32.dll に条件付きブレークポイントを設定することはできません。なぜなら、それは比較的早い段階でアドレス空間にマップされており、最初のデバッガーのブレークポイントはその後 (私の知る限り) トリガーされるためです。

user32.dll がロードされた瞬間を追跡できれば、次のようにモジュール ブレークをオーバーライドできます。

sxe ld user32.dll

あなたができることは、ブーストラッパーアプリケーションによってアプリを開始し、user32.dll の読み込み時に Windows デバッガーを中断させることです。-o コマンドライン オプションまたは.childdbg 1拡張呼び出しを使用して、子プロセスのデバッグを開始し、cmd.exe で開始します。たとえば、次のようになります。

windbg -c "sxe ld user32.dll;g" -o cmd.exe /C yourapp.exe
于 2009-09-02T09:38:15.220 に答える
0

あなたの質問のテキストとヘッダーに少し混乱しています。ただし、条件付きブレークポイントを設定したい場合は、ドキュメントを参照する必要があります。これは、その主題に関する詳細が詳しく説明されているためです。

于 2009-09-02T06:40:57.107 に答える