<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Did you try to revert the commits which
      introduced that ?<br>
      Did it fix the freeze ?<br>
      <br>
      Thanks<br>
      S<br>
      <br>
      On 11/12/2013 16:42, Xavier de Gaye wrote:<br>
    </div>
    <blockquote cite="mid:52A887FD.5030402@gmail.com" type="cite">This
      has been commited at r196830 and fixes the build but there is
      still
      <br>
      an  issue on linux with r196787.
      <br>
      <br>
      When lldb is built on linux at r196786 (the previous revision)
      with the
      <br>
      attached  sin_len.patch (to fix temporarily the issue
      <br>
      <a class="moz-txt-link-freetext" href="http://llvm.org/bugs/show_bug.cgi?id=18210">http://llvm.org/bugs/show_bug.cgi?id=18210</a> so as to allow the
      build),
      <br>
      then lldb  stops correctly at main in the following simple test:
      <br>
          breakpoint set --name main
      <br>
          run
      <br>
      <br>
      When lldb is built on linux at r196787 with the sin_len.patch and
      with
      <br>
      the changes made in r196830 applied (same as the patch proposed in
      the
      <br>
      OP), the above simple test fails and lldb is stuck in a futex
      syscall.
      <br>
      <br>
      Xavier
      <br>
      <br>
      <br>
      On 12/10/2013 10:00 PM, Greg Clayton wrote:
      <br>
      > Looks good.
      <br>
      >
      <br>
      > On Dec 9, 2013, at 1:54 PM, Xavier de Gaye wrote:
      <br>
      >
      <br>
      >> The following patch fixes this.
      <br>
      >>
      <br>
      >> Xavier
      <br>
      >>
      <br>
      >>
      <br>
      >> diff --git
      a/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp
      b/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp
      <br>
      >> ---
      a/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp
      <br>
      >> +++
      b/tools/lldb/source/Plugins/Process/Linux/LinuxThread.cpp
      <br>
      >> @@ -12,6 +12,10 @@
      <br>
      >> // Other libraries and framework includes
      <br>
      >> // Project includes
      <br>
      >> #include "LinuxThread.h"
      <br>
      >> +#include "lldb/Core/State.h"
      <br>
      >> +#include "ProcessPOSIX.h"
      <br>
      >> +#include "ProcessMonitor.h"
      <br>
      >> +#include "ProcessPOSIXLog.h"
      <br>
      >>
      <br>
      >> using namespace lldb;
      <br>
      >> using namespace lldb_private;
      <br>
      >> diff --git
      a/tools/lldb/source/Plugins/Process/Linux/LinuxThread.h
      b/tools/lldb/source/Plugins/Process/Linux/LinuxThread.h
      <br>
      >> ---
      a/tools/lldb/source/Plugins/Process/Linux/LinuxThread.h
      <br>
      >> +++
      b/tools/lldb/source/Plugins/Process/Linux/LinuxThread.h
      <br>
      >> @@ -33,7 +33,7 @@
      <br>
      >>
      <br>
      >>      // POSIXThread overrides
      <br>
      >>      virtual bool
      <br>
      >> -    LinuxThread::Resume();
      <br>
      >> +    Resume();
      <br>
      >>
      <br>
      >>      virtual void
      <br>
      >>      RefreshStateAfterStop();
      <br>
      >> diff --git
      a/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
      b/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
      <br>
      >> ---
      a/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
      <br>
      >> +++
      b/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp
      <br>
      >> @@ -182,7 +182,7 @@
      <br>
      >>      uint32_t thread_count =
      m_thread_list.GetSize(false);
      <br>
      >>      for (uint32_t i = 0; i < thread_count; ++i)
      <br>
      >>      {
      <br>
      >> -        POSIXThread *thread =
      static_cast<POSIXThread*>(
      <br>
      >> +        LinuxThread *thread =
      static_cast<LinuxThread*>(
      <br>
      >>              m_thread_list.GetThreadAtIndex(i,
      false).get());
      <br>
      >>          did_resume = thread->Resume() || did_resume;
      <br>
      >>      }
      <br>
      >> diff --git
      a/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.h
      b/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.h
      <br>
      >> ---
      a/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.h
      <br>
      >> +++
      b/tools/lldb/source/Plugins/Process/Linux/ProcessLinux.h
      <br>
      >> @@ -60,6 +60,9 @@
      <br>
      >>      virtual bool
      <br>
      >>      UpdateThreadList(lldb_private::ThreadList
      &old_thread_list, lldb_private::ThreadList
      &new_thread_list);
      <br>
      >>
      <br>
      >> +    virtual lldb_private::Error
      <br>
      >> +    DoResume();
      <br>
      >> +
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
lldb-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>