[lldb-dev] Freeze in lldb [Re: [PATCH][Linux] compilation fails on linux after revision 196787]

Sylvestre Ledru sylvestre at debian.org
Wed Dec 11 08:25:51 PST 2013


To rephrase my question, do you know which commit(s) broke lldb under
GNU/Linux ?
r196786 seems unrelated to me.

Sylvestre

On 11/12/2013 17:19, Xavier de Gaye wrote:
> Yes, testing r196786 does not cause lldb to freeze, see my previous
> post.
>
> Xavier
>
> On 12/11/2013 05:10 PM, Sylvestre Ledru wrote:
> > Did you try to revert the commits which introduced that ?
> > Did it fix the freeze ?
> >
> > Thanks
> > S
> >
> > On 11/12/2013 16:42, Xavier de Gaye wrote:
> >> This has been commited at r196830 and fixes the build but there is
> still
> >> an  issue on linux with r196787.
> >>
> >> When lldb is built on linux at r196786 (the previous revision) with
> the
> >> attached  sin_len.patch (to fix temporarily the issue
> >> http://llvm.org/bugs/show_bug.cgi?id=18210 so as to allow the build),
> >> then lldb  stops correctly at main in the following simple test:
> >>     breakpoint set --name main
> >>     run
> >>
> >> When lldb is built on linux at r196787 with the sin_len.patch and with
> >> the changes made in r196830 applied (same as the patch proposed in the
> >> OP), the above simple test fails and lldb is stuck in a futex syscall.
> >>
> >> Xavier
> >>
> >>
> >> On 12/10/2013 10:00 PM, Greg Clayton wrote:
> >> > Looks good.
> >> >
> >> > On Dec 9, 2013, at 1:54 PM, Xavier de Gaye wrote:
> >> >
> >> >> The following patch fixes this.
> >> >>
> >> >> Xavier
> >> >>
> >> >>
> >> >> diff --git
> a/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp
> b/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp
> >> >> --- a/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp
> >> >> +++ b/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp
> >> >> @@ -12,6 +12,10 @@
> >> >> // Other libraries and framework includes
> >> >> // Project includes
> >> >> #include "LinuxThread.h"
> >> >> +#include "lldb/Core/State.h"
> >> >> +#include "ProcessPOSIX.h"
> >> >> +#include "ProcessMonitor.h"
> >> >> +#include "ProcessPOSIXLog.h"
> >> >>
> >> >> using namespace lldb;
> >> >> using namespace lldb_private;
> >> >> diff --git
> a/tools/lldb/source/Plugins/Process/Linux/LinuxThread.h
> b/tools/lldb/source/Plugins/Process/Linux/LinuxThread.h
> >> >> --- a/tools/lldb/source/Plugins/Process/Linux/LinuxThread.h
> >> >> +++ b/tools/lldb/source/Plugins/Process/Linux/LinuxThread.h
> >> >> @@ -33,7 +33,7 @@
> >> >>
> >> >>      // POSIXThread overrides
> >> >>      virtual bool
> >> >> -    LinuxThread::Resume();
> >> >> +    Resume();
> >> >>
> >> >>      virtual void
> >> >>      RefreshStateAfterStop();
> >> >> diff --git
> a/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
> b/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
> >> >> --- a/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
> >> >> +++ b/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
> >> >> @@ -182,7 +182,7 @@
> >> >>      uint32_t thread_count = m_thread_list.GetSize(false);
> >> >>      for (uint32_t i = 0; i < thread_count; ++i)
> >> >>      {
> >> >> -        POSIXThread *thread = static_cast<POSIXThread*>(
> >> >> +        LinuxThread *thread = static_cast<LinuxThread*>(
> >> >>              m_thread_list.GetThreadAtIndex(i, false).get());
> >> >>          did_resume = thread->Resume() || did_resume;
> >> >>      }
> >> >> diff --git
> a/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.h
> b/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.h
> >> >> --- a/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.h
> >> >> +++ b/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.h
> >> >> @@ -60,6 +60,9 @@
> >> >>      virtual bool
> >> >>      UpdateThreadList(lldb_private::ThreadList &old_thread_list,
> lldb_private::ThreadList &new_thread_list);
> >> >>
> >> >> +    virtual lldb_private::Error
> >> >> +    DoResume();
> >> >> +
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list