[lldb-dev] Deadlock loading DWARF symbols
Pavel Labath via lldb-dev
lldb-dev at lists.llvm.org
Mon Oct 5 05:29:25 PDT 2020
On 02/10/2020 23:13, Greg Clayton wrote:
> Yes this is bad, and GetDescription() is used as a convenience to print out the module path (which might be a .o file within a .a file) and optionally architecture of the module. It probably shouldn't be taking the module lock as the only member variables that that GetDescription accesses are:
>
> Module::m_arch
> Module::m_file
> Module::m_object_name
>
> I would almost vote to take out the mutex lock in GetDescription() as the arch, file and name don't change after the module has been created. I am going to CC a few extra folks for discussion.
>
> Anyone else have any objections to removing the mutex in GetDescription? Seems like this deadlock is easy to trigger if you have DWARF with errors or warnings inside of it.
>
That sounds reasonable to me. All of the above fields can change during
the early stages of Module construction (while the ObjectFile is being
parsed and such), but I would certainly hope they remain stable after
that. And this early construction process should be single-threaded.
So, I am fine with saying any subsequent modification is a bug.
pl
More information about the lldb-dev
mailing list