See my other email. You can abstract this, but it doesn't seem worth it unless PDB has some really powerful way to express variable locations?
> On Mar 11, 2016, at 11:39 AM, Zachary Turner via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > > Can we abstract this somehow? Converting all my debug info to DWARF seems > like a non-starter, as it doesn't look like you can just do it partially, you > have to go all the way (just based on glancing at the DWARFExpression header > file) > > On Fri, Mar 11, 2016 at 11:38 AM Jim Ingham <jing...@apple.com> wrote: > lldb uses DWARF expressions internally as a convenient language to represent > locations of values. We had to pick some representation, and the DWARF > expression was powerful enough for our purposes, meant we didn't have to > reinvent something that already existed, and had the added benefit that if > you did your DWARF then you don't have to transcode. > > Jim > > > On Mar 11, 2016, at 11:32 AM, Zachary Turner via lldb-dev > > <lldb-dev@lists.llvm.org> wrote: > > > > Also why does the lldb_private::Variable() class take a DWARFExpression to > > its constructor? Seems like this is wrong in the face of non-DWARF debug > > information. > > > > On Fri, Mar 11, 2016 at 11:02 AM Zachary Turner <ztur...@google.com> wrote: > > I'm trying to implement this function for PDB. There are two overloads: > > > > uint32_t > > FindGlobalVariables (const ConstString &name, const CompilerDeclContext > > *parent_decl_ctx, bool append, uint32_t max_matches, VariableList& > > variables) > > > > uint32_t > > FindGlobalVariables(const RegularExpression& regex, bool append, uint32_t > > max_matches, VariableList& variables) > > > > I know how to implement the second overload, but not the first. What is a > > CompilerDeclContext? Some comments in the DWARF implementation of the > > function seem to imply it's related to namespaces, but there's a lot of > > strange code that I don't understand. What is the relationship between a > > namespace and a symbol file? And why does > > `DeclContextMatchesThisSymbolFile` contain no code at all that accesses any > > property of the symbol file? It just checks if > > decl_ctx->GetTypeSystem()->GetMinimumLanguage(nullptr) == > > decl_ctx->GetTypeSystem(), which appears to have nothing to do with any > > symbol file. > > > > What user command or debugger operation results in FindGlobalVariables > > getting called with this particular overload, and how does it build the > > CompilerDeclContext? > > > > On another note, why is the decl context stored as void* instead of having > > an actual wrapper with an abstract interface such as ClangDeclContext / > > JavaDeclContext, etc that all inherit from LanguageDeclContext, and pass > > the LanguageDeclContext around instead of a void*? > > _______________________________________________ > > lldb-dev mailing list > > lldb-dev@lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev