首页 > 解决方案 > Windbg,如何在特定进程上设置方法断点

问题描述

我已经VirtualKD安装了驱动程序并附加到运行在主机上的windbg 的虚拟机。

到目前为止,我已经通过以下方式切换到所需的进程上下文,设法在用户空间进程上设置断点:

# get procID      
!process 0 0 myproc.exe    

# use procID to switch context
.process /i <procID>

# continue till scheduler context switch to the desired process
g

# set break point on process' context (symbols should be visible)
...

这里的问题是该进程必须已经可用(否则我们将无法获得它的上下文)。

也许有一种更简单的方法可以在断点命令中声明进程名称,并能够等待进程出现?

编辑 :

发现sxe ld myproc.exe我可以在进程加载时获得断点。但是,在这个阶段,并不是所有的库都被加载,所以我不能在他们的方法上设置断点。当库 x.dll 在进程 myproc.exe 中加载时,也许有一种方法可以更好地引起注意?

标签: windowsdebuggingwinapiwindbg

解决方案


放入__debugbreak()您的代码中。编译。复制到虚拟机。运行附加了调试器的 exe。一旦你的代码命中__debugbreak,它会打破你windbg


推荐阅读