在每个被调试进程创建前,都会向调试进程发一个EXCEPTION_BREAKPOINT。但是,我的程序中,对这个事件的处理,为什么没有执行呢?
#include"windows.h"
#include"Winnt.h"
//#include"TCHAR.h"
void main()
{
     DEBUG_EVENT DBEvent;
     STARTUPINFO sif={0};
     sif.cb=sizeof(sif);
     PROCESS_INFORMATION pi={0};     BOOL STOP=0;
    CreateProcess(NULL,"\"c:\\Win-TC\\Win-TC.exe\"" ,NULL,NULL,NULL,
         DEBUG_PROCESS|DEBUG_ONLY_THIS_PROCESS,NULL,NULL,&sif,&pi);
 do{
     WaitForDebugEvent(&DBEvent,INFINITE);
       DWORD dwState=DBG_EXCEPTION_NOT_HANDLED;
    switch(DBEvent.dwDebugEventCode)
    {
      case EXCEPTION_DEBUG_EVENT:
        {
           switch(DBEvent.u.Exception.ExceptionRecord.ExceptionCode)
           {  case  EXCEPTION_BREAKPOINT:
             {dwState=DBG_CONTINUE;
              break;}
           }        
             break;
        }
      case EXIT_PROCESS_DEBUG_EVENT:
             { 
                 STOP=TRUE;
                 break;
             }
    }         
             if(!STOP)
             {ContinueDebugEvent(pi.dwProcessId,pi.dwThreadId,dwState);}
     }while(!STOP);
 }