我已经使用 DebugActiveProcess 附加一个进程。之后我使用了 WaitForDebugEvent,但应用程序似乎陷入了某种无限循环,我无法调试附加的进程。
下面是我的代码:
DebugActiveProcess( processID );
int temp = 0;
DEBUG_EVENT DBEvent;
while (1)
{
WaitForDebugEvent( &DBEvent, INFINITE );
if ( DBEvent.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT )
break;
if ( DBEvent.dwDebugEventCode == CREATE_PROCESS_DEBUG_EVENT )
{
//MessageBox(0,"Debugging started!","Ble",0);
temp = 1;
}
else if ( DBEvent.dwDebugEventCode == EXCEPTION_DEBUG_EVENT )
{
if ( DBEvent.u.Exception.ExceptionRecord.ExceptionCode == EXCEPTION_BREAKPOINT )
{
ContinueDebugEvent( processID, qalsrvid, DBG_CONTINUE );
continue;
}
ContinueDebugEvent( processID, qalsrvid, DBG_EXCEPTION_NOT_HANDLED );
}
}
你没有打电话ContinuteDebugEvent
on CREATE_PROCESS_DEBUG_EVENT
event.
如果您还没有阅读过,您应该:
编写 Windows 调试器 http://www.codeproject.com/KB/system/writing_debugger_1.aspx and Part 2 http://www.codeproject.com/KB/system/writing_debugger_2.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)