我有一个简单的调试器,我写了,我在一个创建子进程的进程上运行它。 CREATE_PROCESS_DEBUG_EVENT仅针对主进程而不是子进程调用(我使用CreateProcess和DEBUG_PROCESS标志打开此进程)。
如何在子进程启动时不调用CREATE_PROCESS_DEBUG_EVENT?
答案 0 :(得分:0)
This page表示CREATE_PROCESS_DEBUG_EVENT
生成一个回调,其中包含“正在调试的进程的映像文件的句柄,正在调试的进程的句柄,以及对初始线程的句柄”正在调试的过程“。它没有说明儿童过程。鉴于CREATE_PROCESS_DEBUG_EVENT
上的页面确实提到了子进程。我指出这一点的原因是,为了让这个工作起作用,你可能需要做一些无证件的事情。
一个建议是看看Windbg是否正确处理了您遇到问题的情况。如果是,则调试Windbg并在WaitForDebugEvent
上设置断点。看看Windbg如何调用WaitForDebugEvent
与调试器有什么不同。
我遇到的另一个问题是您的调试器没有子进程的权限。使用Windbg运行上述测试应告诉您是否属于这种情况。