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