如何提高当前WinDbg的断点限制?

时间:2012-09-18 15:01:21

标签: windbg

作为一名司机开发者,WinDbg是我最好的朋友之一。

现在从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.  *
*******************************************************************************

在早期版本中并非如此。有没有解决的办法?我还没找到的选项,注册表项或者我可以修补可执行文件吗?

2 个答案:

答案 0 :(得分:0)

有趣。警告消息来自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 :(得分:0)

您可以通过以下命令将int 3(字节0xCC)放在任何地址:eb [address] cc

确保在按下int 3时恢复原始字节。