[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 14:48:30 PDT 2019

jingham added a comment.

In D64599#1581604 <https://reviews.llvm.org/D64599#1581604>, @labath wrote:

> What is the indented relationship between CPPLanguage and CPPLanguageRuntime plugins (and generally between any Language and its LanguageRuntime)? Right now you're having the CPPLanguage depend on the CPPLanguageRuntime plugin. There is no reverse dependency, so this may be fine, if that's how we intend things to be. However, it's not clear to me whether that's the right way to organize things. Intuitively, I'd expect the LanguageRuntime to depend on Language, and not the other way around...

The nominal distinction is that the Language files contain what you can know about or need to do with a given language without having a process and thus a live runtime to query.  The LanguageRuntimes are supposed to be about what you can gather from the actual runtime, or what you need to do to handle things like "stepping into steps across ObjC method dispatch functions" or "stepping into std::function steps in to the target function".  Given this distinction you'd actually expect the two to be independent of one another, but then it turns out that in both ObjC and Swift, you can't actually know the sizes of objects, or the offsets of ivar members until you have a running process.  So things you'd think the Language would know actually require the LanguageRuntime...



More information about the lldb-commits mailing list