[Lldb-commits] [lldb] r250768 - Make sure we restore the process events so they aren't hijacked when using the async attach when attaching to a process by name and with waitfor.
Greg Clayton via lldb-commits
lldb-commits at lists.llvm.org
Mon Oct 19 17:14:20 PDT 2015
Author: gclayton
Date: Mon Oct 19 19:14:20 2015
New Revision: 250768
URL: http://llvm.org/viewvc/llvm-project?rev=250768&view=rev
Log:
Make sure we restore the process events so they aren't hijacked when using the async attach when attaching to a process by name and with waitfor.
<rdar://problem/22821480>
Modified:
lldb/trunk/source/Target/Target.cpp
Modified: lldb/trunk/source/Target/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=250768&r1=250767&r2=250768&view=diff
==============================================================================
--- lldb/trunk/source/Target/Target.cpp (original)
+++ lldb/trunk/source/Target/Target.cpp Mon Oct 19 19:14:20 2015
@@ -3162,19 +3162,26 @@ Target::Attach (ProcessAttachInfo &attac
error = process_sp->Attach (attach_info);
}
- if (error.Success () && process_sp && async == false)
+ if (error.Success () && process_sp)
{
- state = process_sp->WaitForProcessToStop (nullptr, nullptr, false, attach_info.GetHijackListener ().get (), stream);
- process_sp->RestoreProcessEvents ();
-
- if (state != eStateStopped)
+ if (async)
+ {
+ process_sp->RestoreProcessEvents ();
+ }
+ else
{
- const char *exit_desc = process_sp->GetExitDescription ();
- if (exit_desc)
- error.SetErrorStringWithFormat ("%s", exit_desc);
- else
- error.SetErrorString ("process did not stop (no such process or permission problem?)");
- process_sp->Destroy (false);
+ state = process_sp->WaitForProcessToStop (nullptr, nullptr, false, attach_info.GetHijackListener ().get (), stream);
+ process_sp->RestoreProcessEvents ();
+
+ if (state != eStateStopped)
+ {
+ const char *exit_desc = process_sp->GetExitDescription ();
+ if (exit_desc)
+ error.SetErrorStringWithFormat ("%s", exit_desc);
+ else
+ error.SetErrorString ("process did not stop (no such process or permission problem?)");
+ process_sp->Destroy (false);
+ }
}
}
return error;
More information about the lldb-commits
mailing list