【发布时间】:2019-08-04 03:03:27
【问题描述】:
我已经安装了带有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 中加载时,也许有一种方法可以更好地引起注意?
【问题讨论】:
-
为什么要在内核模式下这样做?
-
如果你有符号,你可以
bu。 -
@Neitsa,也许你可以给我一个使用示例,使用
bu在进程名称x.exe尝试加载库y.dll而进程x.exe仍然不存在时触发断点。谢谢!
标签: windows debugging winapi windbg