Op 17-4-2013 19:34, Malea, Daniel schreef:
Carlo, awesome work!

Are your fixes on the Windows branch? If not, could you provide a patch
with your changes? I'd love to try them out to see if it fixes the hangs
in question on Linux. Multiple people seem affected by the problem.


They are on the windows branch but part of the same commit. I can extract them though. All in process, note: not a proper patch but the line info should be good, had to manually edit it:

Index: C:/Projects/oxygene-nougat-llvm/lldb/source/Target/Process.cpp
===================================================================
--- C:/Projects/oxygene-nougat-llvm/lldb/source/Target/Process.cpp (revision 171849) +++ C:/Projects/oxygene-nougat-llvm/lldb/source/Target/Process.cpp (revision 179679)
@@ -962,14 +1023,18 @@
     m_allocated_memory_cache (*this),
     m_should_detach (false),
     m_next_event_action_ap(),
     m_public_run_lock (),
     m_private_run_lock (),
     m_currently_handling_event(false),
     m_finalize_called(false),
     m_last_broadcast_state (eStateInvalid),
     m_destroy_in_process (false),
     m_can_jit(eCanJITDontKnow)
 {
     CheckInWithManager ();
+       m_private_run_lock.WriteLock();

     Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_OBJECT));
     if (log)
         log->Printf ("%p Process::Process()", this);

@@ -1079,6 +1144,8 @@
// contain events that have ProcessSP values in them which can keep this
     // process around forever. These events need to be cleared out.
     m_private_state_listener.Clear();
-    m_public_run_lock.WriteUnlock();
+    //m_public_run_lock.WriteUnlock();
     m_private_run_lock.WriteUnlock();
     m_finalize_called = true;
 }

@@ -3858,27 +4071,36 @@ // give or take
-        if (m_process_sp->GetPrivateState() != eStateRunning)
+               lldb::StateType state = m_process_sp->GetPrivateState();
+ if (state != eStateRunning && state != eStateCrashed && state != eStateDetached && state != eStateExited)
         {
             if (!still_should_stop)
             {




_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to