CREATE_PROCESS_DEBUG_EVENT用于子进程



我编写了一个简单的调试器,并在创建子进程的进程上运行它。CREATE_PROCESS_DEBUG_EVENT仅针对主进程而非子进程调用(我使用CreateProcess和DEBUG_PROCESS标志打开此进程)。

当子进程启动时,怎么会不调用CREATE_PROCESS_DEBUG_EVENT?

此页面表示CREATE_PROCESS_DEBUG_EVENT生成一个回调,其中包含"被调试进程的映像文件句柄、被调试进程句柄和被调试进程初始线程句柄"。它没有说明孩子的过程。而CREATE_PROCESS_DEBUG_EVENT上的页面确实提到了子进程。我指出这一点的原因是,为了让它发挥作用,你可能需要做一些没有记录的事情。

一个建议是看看Windbg是否能正确处理您遇到的问题。如果是,则调试Windbg并在WaitForDebugEvent上设置断点。看看Windbg调用WaitForDebugEvent的方式与调试器的方式是否有什么不同。

我遇到的另一个问题是,调试器无权访问子进程。使用Windbg运行上面提到的测试应该会告诉你情况是否如此。

最新更新