关于DebugAPI调试程序问题

plane_more 2017-02-19 12:35:04
下面是我写的代码,但是不止为何在加载了被调试程序后,被调试程序始终被挂起,调试程序也一直在等待调试事件,求大神指点下

#include <Windows.h>
#include <iostream>
TCHAR szName[] = TEXT("f://primer.exe");
int main()
{
//加载被调试进程
HANDLE hProcess, hThread;
DWORD threadID, processID;
DEBUG_EVENT dEvent;
STARTUPINFO si;
memset(&si, 0, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOW;
PROCESS_INFORMATION pi;
CreateProcess(NULL, szName, NULL, NULL,NULL,DEBUG_PROCESS|DEBUG_ONLY_THIS_PROCESS, NULL, NULL, &si, &pi);
hProcess = pi.hProcess;
hThread = pi.hThread;
processID = pi.dwProcessId;
threadID = pi.dwThreadId;
//接收调试事件

while (WaitForDebugEvent(&dEvent, INFINITE))
{
switch (dEvent.dwDebugEventCode)
{
case EXCEPTION_DEBUG_EVENT:
switch (dEvent.u.Exception.ExceptionRecord.ExceptionCode)
{
case EXCEPTION_BREAKPOINT:
MessageBoxA(NULL, "INT 3", "EXCEPTION", 0);
break;
case EXCEPTION_SINGLE_STEP:
MessageBoxA(NULL, "F7", "EXCEPTION", 0);
break;
}
}
ContinueDebugEvent(processID, threadID, DBG_CONTINUE);
}
return 0;
}
...全文
242 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-02-20
  • 打赏
  • 举报
回复
参考MSDN98自带的例子DRWATSON? MSDN98\SAMPLES\VC98\SDK\SDKTOOLS\IMAGE\DRWATSON\*.* MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix, MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vl

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧