Index: source/Target/Process.cpp =================================================================== --- source/Target/Process.cpp +++ source/Target/Process.cpp @@ -3930,7 +3930,15 @@ // Consume the halt event. TimeValue timeout (TimeValue::Now()); timeout.OffsetWithSeconds(1); - StateType state = WaitForProcessToStop (&timeout, &exit_event_sp); + + ListenerSP listener_sp (new Listener("lldb.Process.HaltForDestroyOrDetach.hijack")); + HijackProcessEvents(listener_sp.get()); + + StateType state = WaitForProcessToStop (NULL, &exit_event_sp, true, listener_sp.get()); + + // Don't forget to notify other listeners. + RestoreProcessEvents(); + BroadcastEvent(exit_event_sp); // If the process exited while we were waiting for it to stop, put the exited event into // the shared pointer passed in and return. Our caller doesn't need to do anything else, since