summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Process.cpp
diff options
context:
space:
mode:
authorIlia K <ki.stfu@gmail.com>2015-04-30 13:10:32 +0000
committerIlia K <ki.stfu@gmail.com>2015-04-30 13:10:32 +0000
commitd8c1475f46dcfffde8dfd9c87dddbab176588150 (patch)
tree1d45fd6181fa7116ca2d49114e0b5e2caa7d7ecb /lldb/source/Target/Process.cpp
parente740409d521645b04de08e97038a24b3343b5b96 (diff)
downloadbcm5719-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.cpp12
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;
}
OpenPOWER on IntegriCloud