[lldb-dev] Fwd: Re: [Lldb-commits] [lldb] r179738 - Fixed a few m_private_run_lock issues when attaching and also fixed the process to not try to restart the process if the process is exited, crashed or detached. Partial patch from Carlo Kok.

Carlo Kok ck at remobjects.com
Thu Apr 18 09:59:15 PDT 2013


Op 18-4-2013 02:42, Greg Clayton schreef:
> Author: gclayton
> Date: Wed Apr 17 19:42:25 2013
> New Revision: 179738

just realized i sent this to the wrong list. afaik this is still 
relevant after Thirumurthi, Ashok changes.

> URL: http://llvm.org/viewvc/llvm-project?rev=179738&view=rev
> Log:
> Fixed a few m_private_run_lock issues when attaching and also fixed the process to not try to restart the process if the process is exited, crashed or detached. Partial patch from Carlo Kok.
>
> Modified:
>      lldb/trunk/source/Target/Process.cpp
>
> Modified: lldb/trunk/source/Target/Process.cpp
> URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=179738&r1=179737&r2=179738&view=diff
> ==============================================================================
> --- lldb/trunk/source/Target/Process.cpp (original)
> +++ lldb/trunk/source/Target/Process.cpp Wed Apr 17 19:42:25 2013
> @@ -2955,6 +2955,7 @@ Process::Attach (ProcessAttachInfo &atta

Process::Attach doesn't get called for GDB remote, so this doesn't get
called for that.

adding this in Process::ConnectRemote makes it work:
...
             if (state == eStateStopped || state == eStateCrashed)
             {
+                if (m_public_run_lock.WriteTryLock())
+                {
+                    m_private_run_lock.WriteLock();
                     // If we attached and actually have a process on
the other end, then
                     // this ended up being the equivalent of an attach.
                     CompleteAttach ();

                     // This delays passing the stopped event to
listeners till
                     // CompleteAttach gets a chance to complete...
                     HandlePrivateEvent (event_sp);
                 }
+            }
         }

         if (PrivateStateThreadIsValid ())
             ResumePrivateStateThread ();
         else
             StartPrivateStateThread ();
     }
     return error;
}

_______________________________________________
lldb-commits mailing list
lldb-commits at cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits





More information about the lldb-dev mailing list