So here I *think* we want to do something that will let the linker dead code elimination be able to figure out which modules it doesn't need. Which means I think we really want the call graph for initializing the lighter apps (lldb-platform, lldb-gdbserver) to have a method they call which initializes the always-present items (i.e. the core). Then we can have the heavier apps (lldb) call the core initialization, then layer on the higher-level systems.
---------- Forwarded message ---------- From: Todd Fiala <tfi...@google.com> Date: Tue, Aug 26, 2014 at 12:18 PM Subject: Re: [Lldb-commits] [lldb] r216238 - Add missing HostInfo::Initialize() in llgs. To: Greg Clayton <gclay...@apple.com> Cc: Todd Fiala <todd.fi...@gmail.com>, lldb-commits < lldb-comm...@cs.uiuc.edu> Ok back looking at this for real. So I'm going to need to adjust Debugger::Initalize() or use an alternative installation path. Right now it goes and calls lldb_private::Initialize(), which pretty much brings in the whole world. llgs needs to be *thin*, as we're counting on static linkage and dead code elimination to cut out the bulk of the exe size. There is a ton more stuff initialized in lldb_private::Initialize() than we need in llgs. (e.g. ProcessLinux, DynamicLoader*, language runtimes, etc. --- none of those should be getting initialized in llgs). On Tue, Aug 26, 2014 at 11:52 AM, Todd Fiala <tfi...@google.com> wrote: > Ok - but - are we okay with moving PluginManager::Initialize() within > there? If so, we're good. Because HostInfo::Initialize() needs to come > *before* PluginManager::Initialize(). > > Seems reasonable, I just need to peek where we're initializing > PluginManager. > > > On Tue, Aug 26, 2014 at 11:51 AM, Greg Clayton <gclay...@apple.com> wrote: > >> then HostInfo::Initialize() should go first within Debugger::Initialize() >> and HostInfo::Terminate() should go last in Debugger::Terminate(). >> >> > On Aug 26, 2014, at 11:46 AM, Todd Fiala <tfi...@google.com> wrote: >> > >> > > But I think Debugger depends on HostInfo being initialized first. >> > >> > Rather I meant: >> > * PluginManager::Initialize() requires HostInfo to already be >> initialized. >> > * Debugger::Initialize() expects PluginManager is already initialized. >> > >> > >> > On Tue, Aug 26, 2014 at 11:44 AM, Todd Fiala <tfi...@google.com> wrote: >> > There might be an issue there. >> > >> > PluginManager uses the file system initialization. But I think >> Debugger depends on HostInfo being initialized first. >> > >> > I'll look and see if I can detangle that. >> > >> > >> > On Tue, Aug 26, 2014 at 11:43 AM, Todd Fiala <tfi...@google.com> wrote: >> > Ah ok. I'll move those in a minute. Another check-in coming shortly >> before. >> > >> > >> > On Tue, Aug 26, 2014 at 11:34 AM, Greg Clayton <gclay...@apple.com> >> wrote: >> > Todd: >> > >> > HostInfo::Intialize() should be done in Debugger::Initialize() >> > HostInfo::Terminate() should be done in Debugger::Terminate() >> > >> > We want there to be single call to initialize everything and terminate >> everything and this is done via the Debugger calls. >> > >> > > On Aug 21, 2014, at 3:41 PM, Todd Fiala <todd.fi...@gmail.com> wrote: >> > > >> > > Author: tfiala >> > > Date: Thu Aug 21 17:41:25 2014 >> > > New Revision: 216238 >> > > >> > > URL: http://llvm.org/viewvc/llvm-project?rev=216238&view=rev >> > > Log: >> > > Add missing HostInfo::Initialize() in llgs. >> > > >> > > This fixes an llgs segfault on startup. >> > > >> > > Modified: >> > > lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp >> > > >> > > Modified: lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp >> > > URL: >> http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp?rev=216238&r1=216237&r2=216238&view=diff >> > > >> ============================================================================== >> > > --- lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp (original) >> > > +++ lldb/trunk/tools/lldb-gdbserver/lldb-gdbserver.cpp Thu Aug 21 >> 17:41:25 2014 >> > > @@ -32,6 +32,7 @@ >> > > #include "lldb/Core/Debugger.h" >> > > #include "lldb/Core/PluginManager.h" >> > > #include "lldb/Core/StreamFile.h" >> > > +#include "lldb/Host/HostInfo.h" >> > > #include "lldb/Host/OptionParser.h" >> > > #include "lldb/Host/Socket.h" >> > > #include "lldb/Interpreter/CommandInterpreter.h" >> > > @@ -152,6 +153,7 @@ dump_available_platforms (FILE *output_f >> > > static void >> > > initialize_lldb_gdbserver () >> > > { >> > > + HostInfo::Initialize (); >> > > PluginManager::Initialize (); >> > > Debugger::Initialize (NULL); >> > > } >> > > @@ -159,7 +161,7 @@ initialize_lldb_gdbserver () >> > > static void >> > > terminate_lldb_gdbserver () >> > > { >> > > - Debugger::Terminate(); >> > > + Debugger::Terminate (); >> > > PluginManager::Terminate (); >> > > } >> > > >> > > >> > > >> > > _______________________________________________ >> > > lldb-commits mailing list >> > > lldb-comm...@cs.uiuc.edu >> > > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits >> > >> > _______________________________________________ >> > lldb-commits mailing list >> > lldb-comm...@cs.uiuc.edu >> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits >> > >> > >> > >> > -- >> > Todd Fiala | Software Engineer | tfi...@google.com | >> 650-943-3180 >> > >> > >> > >> > >> > -- >> > Todd Fiala | Software Engineer | tfi...@google.com | >> 650-943-3180 >> > >> > >> > >> > >> > -- >> > Todd Fiala | Software Engineer | tfi...@google.com | >> 650-943-3180 >> > >> >> > > > -- > Todd Fiala | Software Engineer | tfi...@google.com | 650-943-3180 > -- Todd Fiala | Software Engineer | tfi...@google.com | 650-943-3180 -- Todd Fiala | Software Engineer | tfi...@google.com | 650-943-3180
_______________________________________________ lldb-dev mailing list lldb-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev