[lldb-dev] lldb::SBDebugger::Terminate() hangs in deadlock

Stefan Kratochwil via lldb-dev lldb-dev at lists.llvm.org
Mon Sep 28 01:12:39 PDT 2015


Hi,

I've got a problem with lldb deadlocking upon a call to 
lldb::SBDebugger::Terminate().

I am currently using svn revision 247535 of llvm and lldb, and I know 
that my code was working with svn revision 229496.

In short, I am doing the following steps:

   lldb_debugger = lldb::SBDebugger::Create()
   lldb_debugger.SetAsync(true)
   lldb_target = lldb_debugger.CreateTarget()
   lldb_process = lldb_target.AttachToProcessWithID()
   ... (doing stuff with modules)
   lldb::SBDebugger::Terminate()

The last call results in a deadlock.

I enabled the DEBUG_LOG and ENABLE_MUTEX_ERROR_CHECKING macros within 
Mutex.cpp and found out that a mutex is getting locked whose ID never 
came up in the log before. This mutex has no owner, so it should be 
lockable - but it isn't...

A gdb backtrace with the last few debug messages can be found here:
http://pastebin.com/Kv4EidHx


Does anyone have an idea what is going on here? Am I missing something?

Thanks in advance!


Cheers,
Stefan Kratochwil


More information about the lldb-dev mailing list