protected virtual void OnCreateProcess(DebuggedProcessEventArgs e) { _on_event(m_create_process, e); }
// We get this process if someone used the Debugger to create // a process (instead of attaching to one). We need to grab // the PID of the process so that our normal handling of the // ProcessExit event will work correctly. private void _on_create_process(DebuggedProcessEventArgs e) { m_pids.Add(e.Process.Id); OnCreateProcess(e); }
protected virtual void OnProcessExit(DebuggedProcessEventArgs e) { _on_event(m_process_exit, e); }
protected virtual void OnControlCTrap(DebuggedProcessEventArgs e) { _on_event(m_control_c_trap, e); }
// Since ``OnProcessExit'' might be overriden by a derived class, // the "COM+ Frameworks Practices" site suggests that the default // event handler not do any necessary processing. // // Removing the exitted process pid from the list of pids to detach // from is "necessary", so we don't do that in the event handler, // we do that here. After removing the pid, then we call the // default event handler. private void _on_process_exit(DebuggedProcessEventArgs e) {// we don't want to detach from a process if it doesn't exist anymore. m_pids.Remove(e.Process.Id); OnProcessExit(e); }