diff options
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r-- | lldb/source/Target/Process.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index e50ecf27ef0..cebec5bbd31 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -1478,10 +1478,6 @@ Process::Halt () } else { - // Since we are eating the event, we need to update our state - // otherwise the process state will not match reality... - SetPublicState(state); - if (StateIsStoppedState (state)) { // We caused the process to interrupt itself, so mark this @@ -1508,7 +1504,7 @@ Process::Halt () // stopped the process, intercepted the event and set the interrupted // bool in the event. if (event_sp) - BroadcastEvent(event_sp); + m_private_state_broadcaster.BroadcastEvent(event_sp); } return error; @@ -2175,6 +2171,14 @@ Process::ProcessInputReaderCallback (void *baton, } break; + case eInputReaderInterrupt: + process->Halt (); + break; + + case eInputReaderEndOfFile: + process->AppendSTDOUT ("^D", 2); + break; + case eInputReaderDone: break; |