windbg设置条件断点

时间:2009-09-02 06:07:32

标签: debugging windbg breakpoints

我想在windbg中添加一个条件断点。

例如,让我们说LoadLibrary API。

如果加载user32.dll,我怎样才能将断点设置为它。

> x kernel32!LoadLibraryW

它会给出一些地址[XXXX]

现在我可以把断点作为

> bu [XXXX] 

但是对于所有对LoadLibraryW的调用都会出现这种情况。

任何建议。

2 个答案:

答案 0 :(得分:9)

你不能在user32.dll上设置一个条件断点,因为它被相对较早地映射到地址空间,并且初始调试器的断点在此之后触发(据我所知)。

如果您可以跟踪加载user32.dll的时刻,您可以覆盖这样的模块中断:

sxe ld user32.dll

你可以做的是让你的应用程序由一个boostrapper应用程序启动,然后在user32.dll加载时让windows调试器中断。只需使用-o命令行选项或.childdbg 1扩展调用来启动子进程的调试,并以cmd.exe启动它,例如:

windbg -c "sxe ld user32.dll;g" -o cmd.exe /C yourapp.exe

答案 1 :(得分:0)

我对你问题中的文字和标题感到有些困惑。但是假设你想设置一个条件断点,你应该看一下documentation因为它会详细介绍这个主题。