我已经安装了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)
...
这里的问题是该进程必须已经可用(否则我们将无法获得其上下文)。
也许有一种更简单的方法可以在breakpoint命令中声明进程名称,并且可以等待进程启动?
编辑:
[发现,使用sxe ld myproc.exe
可以在进程加载时获取断点。在进程myproc.exe中加载库x.dll时,也许有一种方法可以引起更好的注意?
将__debugbreak()放入您的代码中。编译。复制到VM。运行带有调试器的exe。一旦您的代码命中了__debugbreak,它就会在windbg中打扰您。