3

ドライバー開発者として、WinDbgは私の親友の1人です。

Windows 8から始めて、新しいWDKをインストールし、新しいWinDbgを使用したいと思いました。ネットワークを介したリモートデバッグのようないくつかの優れた機能があります。

しかし、それを使用しているときに、32個のブレークポイントしかアクティブにできないことに気付いたとき、私はショックを受けました。次のメッセージが表示されます。

*******************************************************************************
* You have attempted to enable   33 KD breakpoints, which exceeds the         *
* currently supported limit of   32 breakpoints for Windows kernel debugging. *
* Breakpoints exceeding this limit are ignored.                               *
* Please disable/clear breakpoints until you are within the supported limit.  *
*******************************************************************************

これは以前のバージョンには当てはまりませんでした。これを回避する方法はありますか?まだ見つからなかったオプション、レジストリキー、または実行可能ファイルにパッチを適用できますか?

4

2 に答える 2

1

面白い。警告メッセージはdbgeng!AddBreakpointから送信されており、コードをステップ実行すると、32の制限がハードコーディングされているように見えます。

cmp     esi, 20h
jbe     short loc_100A5721
push    offset asc_10038758 ; "***************************************"...
call    ?WarnOut@@YAXPBGZZ
pop     ecx
push    esi
push    offset aYouHaveAttempt ; "* You have attempted to enable %4u KD b"...
call    ?WarnOut@@YAXPBGZZ
push    20h
push    offset aCurrentlySuppo ; "* currently supported limit of %4u brea"...
call    ?WarnOut@@YAXPBGZZ
push    offset aBreakpointsExc ; "* Breakpoints exceeding this limit are "...
call    ?WarnOut@@YAXPBGZZ

この1つのチェックにパッチを適用するだけでは不十分だと思いますが、それを確認するためにこれ以上調べていません。

于 2012-09-18T18:06:52.647 に答える
0

次のコマンドを使用して、int 3 (バイト 0xCC) を任意のアドレスに配置できます: eb [address] cc

int 3 をヒットしたときは、必ず元のバイトを復元してください。

于 2012-09-25T08:20:26.590 に答える