diff options
author | Ilia K <ki.stfu@gmail.com> | 2015-04-30 13:10:32 +0000 |
---|---|---|
committer | Ilia K <ki.stfu@gmail.com> | 2015-04-30 13:10:32 +0000 |
commit | d8c1475f46dcfffde8dfd9c87dddbab176588150 (patch) | |
tree | 1d45fd6181fa7116ca2d49114e0b5e2caa7d7ecb /lldb/source/Target/Process.cpp | |
parent | e740409d521645b04de08e97038a24b3343b5b96 (diff) | |
download | bcm5719-llvm-d8c1475f46dcfffde8dfd9c87dddbab176588150.tar.gz bcm5719-llvm-d8c1475f46dcfffde8dfd9c87dddbab176588150.zip |
Fix Process::ResumeSynchronous which waits a process even in case of error
llvm-svn: 236231
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r-- | lldb/source/Target/Process.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index e844138a8fd..1a4383eb13a 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -1731,15 +1731,17 @@ Process::ResumeSynchronous (Stream *stream) HijackProcessEvents(listener_sp.get()); Error error = PrivateResume(); - - StateType state = WaitForProcessToStop (NULL, NULL, true, listener_sp.get(), stream); + if (error.Success()) + { + StateType state = WaitForProcessToStop (NULL, NULL, true, listener_sp.get(), stream); + const bool must_be_alive = false; // eStateExited is ok, so this must be false + if (!StateIsStoppedState(state, must_be_alive)) + error.SetErrorStringWithFormat("process not in stopped state after synchronous resume: %s", StateAsCString(state)); + } // Undo the hijacking of process events... RestoreProcessEvents(); - if (error.Success() && !StateIsStoppedState(state, false)) - error.SetErrorStringWithFormat("process not in stopped state after synchronous resume: %s", StateAsCString(state)); - return error; } |