slydiman wrote:

> The question here is who is using those files and why. These are all plugins, 
> so they shouldn't be pulled in unless they are `Initialized`.

RichManglingContext.cpp is not a plugin and it uses `m_cxx_method_parser = new 
CPlusPlusLanguage::MethodName(demangled);`, including casting 
`get<CPlusPlusLanguage::MethodName>(m_cxx_method_parser)`. We can move 
`CPlusPlusLanguage::MethodName` from CPlusPlusLanguage plugin to core, but it 
still depends on CPlusPlusNameParser.cpp

> Another way to attack this would be to remove the 
> SystemLifetimeManager->Debugger dependency.

I tried it. `SystemLifetimeManager` calls `Debugger::Initialize(nullptr);` and 
`Debugger::Terminate();`. `Debugger::Initialize()` creates a mutex and an empty 
list of debuggers. But it seems the Debugger instance is created while a remote 
process is running. I'm not sure lldb-server can work w/o Debugger. It also 
contains a lot of I/O handling code and thread pools. Anyway the class Debugger 
is used directly in many places. We can start making the class Debugger an 
interface and move the implementation to the new class DebuggerImpl or such.

https://github.com/llvm/llvm-project/pull/132274
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to