2

我想在windbg中放置一个条件断点。

例如,让我们说 LoadLibrary API。

我如何设置断点,以便在加载 user32.dll 时应该设置断点。

> x kernel32!LoadLibraryW

它会给出一些地址 [XXXX]

现在我可以将断点设置为

> bu [XXXX] 

但这将适用于对 LoadLibraryW 的所有调用。

有什么建议么。

4

2 回答 2

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
于 2009-09-02T09:38:15.220 回答
0

我对您问题中的文字和标题感到有些困惑。但是假设你想设置一个条件断点,你应该看一下文档,因为它在这个主题上有很多细节。

于 2009-09-02T06:40:57.107 回答