[Lldb-commits] [PATCH] D64599: [LanguageRuntime] Move CPPLanguageRuntime into a plugin

Jim Ingham via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Jul 11 15:32:52 PDT 2019


jingham added inline comments.


================
Comment at: source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp:55
 #include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h"
+#include "Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h"
 
----------------
xiaobai wrote:
> labath wrote:
> > compnerd wrote:
> > > xiaobai wrote:
> > > > JDevlieghere wrote:
> > > > > What's the benefit of making this a separate plugin, as compared to making it part of `Plugins/Language/CPlusPlus`? 
> > > > I view LanguageRuntimes as distinct from Languages and thus I think they should go into their own plugins. However, I'm not against moving this to `Plugins/Language/CPlusPlus` if you think it would make more sense to do so for another reason (e.g. less plugins overall?)
> > > We do need the abstraction since there are multiple C++ runtimes: c++, stdc++, MSVCPRT, stlport, etc.  Each one is slightly different.  Furthermore, libstdc++ supported the GNU and Solaris ABIs, libc++ only does itanium, MSVCPRT only does MSVC ABI.  So, we need to have some layer to differentiate between the various ABIs and just general C++ language support.
> > That is true. However, I'm not sure whether the current boundary actually makes sense. E.g. the c++ language plugin implements pretty printers for both libc++ and libstdc++.
> Given that those are formatters specific to the libc++ and libstdc++ implementations, I think it would make sense that those are a part of the C++ language runtime plugin(s).
So the problem with that is that formatters don't actually require a live process to be useful.  They can be used to view static data in a not-running process.  But LanguageRuntimes currently only come from a process.  So to move the formatters to the LanguageRuntime - which does make some sense - you're going to have to change the LanguageRuntime to do some things for a target with no process and the more things when the Process gets a target.  That's not a bad change, BTW.

Anyway, that's why the formatters are a little out-of-place.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64599/new/

https://reviews.llvm.org/D64599





More information about the lldb-commits mailing list