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 [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
