[lldb-dev] interesting note on build times: configure/make vs. cmake/ninja

Ed Maste emaste at freebsd.org
Fri Mar 21 12:10:52 PDT 2014


> Sounds very likely that your ProcessPOSIX change addressed the issues.  Nice job, Ed!  ProcessLinux is nearly entirely ProcessPOSIX, the big diff being a different ProcessMonitor and a few minor bits of functionality that differ from ProcessFreeBSD.

Hi Todd - I'm now using this change on FreeBSD
(https://github.com/emaste/lldb/commit/e64649d8cd1a171086ace48e2beb587acd0c82e0)

     if (!HasExited())
     {
-        // Drive the exit event to completion (do not keep the inferior in
-        // limbo).
+        assert (m_monitor);
         m_exit_now = true;
-
-        if ((m_monitor == NULL || kill(m_monitor->GetPID(), SIGKILL))
&& error.Success())
+        if (m_monitor->BringProcessIntoLimbo())
         {
             error.SetErrorToErrno();
             return error;


- AFAIK m_monitor cannot be null in ProcessPOSIX::DoDestroy, so I just
switched to asserting that it is not.
- BringProcessIntoLimbo() in the FreeBSD and Linux ProcessMonitor is
poorly named, but just implements ptrace(PT_KILL, ...).  I believe
this is exactly the behaviour we want from DoDestroy.

On FreeBSD the test suite passes for me, and I'm going to commit the
change to the copy of LLDB that we ship with the FreeBSD base system.
Can you tell me if you're happy with this change on Linux as well?
(If it's not suitable for Linux I can just switch this to be separate
ProcessFreeBSD::DoDestroy and ProcessLinux::DoDestroy.)



More information about the lldb-dev mailing list