Try this out: % svn commit Sending include/lldb/Symbol/ClangASTContext.h Sending include/lldb/Symbol/TypeSystem.h Sending lldb.xcodeproj/project.pbxproj Sending source/Plugins/SymbolFile/DWARF/CMakeLists.txt Adding source/Plugins/SymbolFile/DWARF/DWARFASTParser.h Adding source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp Adding source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h Sending source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp Sending source/Plugins/SymbolFile/DWARF/DWARFDIE.h Sending source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Sending source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h Sending source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h Sending source/Symbol/ClangASTContext.cpp Transmitting file data ............. Committed revision 246242.
It should address everything we talked about. Commit message for this was: Made a new abstract class named "DWARFASTParser" which lives in "source/Plugins/SymbolFile/DWARF": class DWARFASTParser { public: virtual ~DWARFASTParser() {} virtual lldb::TypeSP ParseTypeFromDWARF (const lldb_private::SymbolContext& sc, const DWARFDIE &die, lldb_private::Log *log, bool *type_is_new_ptr) = 0; virtual lldb_private::Function * ParseFunctionFromDWARF (const lldb_private::SymbolContext& sc, const DWARFDIE &die) = 0; virtual bool CompleteTypeFromDWARF (const DWARFDIE &die, lldb_private::Type *type, lldb_private::CompilerType &clang_type) = 0; virtual lldb_private::CompilerDeclContext GetDeclContextForUIDFromDWARF (const DWARFDIE &die) = 0; virtual lldb_private::CompilerDeclContext GetDeclContextContainingUIDFromDWARF (const DWARFDIE &die) = 0; }; We have one subclass named DWARFASTParserClang that implements all of the clang specific AST type parsing. This keeps all DWARF parsing in the DWARF plug-in. Moved all of the DWARF parsing code that was in ClangASTContext over into DWARFASTParserClang. lldb_private::TypeSystem classes no longer have any DWARF parsing functions in them, but they can hand out a DWARFASTParser: virtual DWARFASTParser * GetDWARFParser () { return nullptr; } This keeps things clean and makes for easy merging when we have different AST's for different languages. > On Aug 27, 2015, at 4:06 PM, d...@burble.org wrote: > > On Thu, Aug 27, 2015 at 03:57:30PM -0700, Greg Clayton wrote: >> >> I can probably clean this up by making a DWARFASTParser a plug-in type and >> move all DWARF parsing code over into it and place that inside the DWARF >> plug-in folder. I see if I can do that quick to get the code organization >> back to how we want it. > > Very cool!! This is exactly what I was hoping for. Thank you Greg!!! _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits