[lldb-dev] [PATCH][Linux] compilation fails on linux after revision 196787

Xavier de Gaye xdegaye at gmail.com
Wed Dec 11 07:42:53 PST 2013


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();
 >> +
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sin_len.patch
Type: text/x-patch
Size: 1153 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20131211/c3a54496/attachment.bin>


More information about the lldb-dev mailing list