Reworked the way Process::RunThreadPlan and the ThreadPlanCallFunction interoperate to fix problems where

hitting auto-continue signals while running a thread plan would cause us to lose control of the debug 
session.

<rdar://problem/12993641>

llvm-svn: 174793
This commit is contained in:
Jim Ingham
2013-02-09 01:29:05 +00:00
parent 1aa79e9f63
commit 0161b49cba
37 changed files with 595 additions and 329 deletions

View File

@@ -199,6 +199,11 @@ protected:
if (environment.GetArgumentCount() > 0)
m_options.launch_info.GetEnvironmentEntries ().AppendArguments (environment);
// Get the value of synchronous execution here. If you wait till after you have started to
// run, then you could have hit a breakpoint, whose command might switch the value, and
// then you'll pick up that incorrect value.
bool synchronous_execution = m_interpreter.GetSynchronous ();
// Finalize the file actions, and if none were given, default to opening
// up a pseudo terminal
const bool default_to_use_pty = true;
@@ -258,7 +263,6 @@ protected:
error = process->Resume();
if (error.Success())
{
bool synchronous_execution = m_interpreter.GetSynchronous ();
if (synchronous_execution)
{
state = process->WaitForProcessToStop (NULL);