2011-08-03 5 views
4

DebugActiveProcessを使用してプロセスをアタッチしました。その後、WaitForDebugEventを使用しましたが、アプリケーションがいくつかの無限ループに詰まっていると思われ、接続プロセスをデバッグできません。以下は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); 
     } 
    } 

答えて

4

あなたはCREATE_PROCESS_DEBUG_EVENTイベントにContinuteDebugEventを呼び出していません。

あなたはまだそれを読んでいない場合は、あなたがすべき:

Writing Windows DebuggerPart 2