forked from OSchip/llvm-project
1075acafeb
add them to a fast lookup map. lldb_private::Symtab now export the following public typedefs: namespace lldb_private { class Symtab { typedef std::vector<uint32_t> IndexCollection; typedef UniqueCStringMap<uint32_t> NameToIndexMap; }; } Clients can then find symbols by name and or type and end up with a Symtab::IndexCollection that is filled with indexes. These indexes can then be put into a name to index lookup map and control if the mangled and demangled names get added to the map: bool add_demangled = true; bool add_mangled = true; Symtab::NameToIndexMap name_to_index; symtab->AppendSymbolNamesToMap (indexes, add_demangled, add_mangled, name_to_index). This can be repeated as many times as needed to get a lookup table that you are happy with, and then this can be sorted: name_to_index.Sort(); Now name lookups can be done using a subset of the symbols you extracted from the symbol table. This is currently being used to extract objective C types from object files when there is no debug info in SymbolFileSymtab. Cleaned up how the objective C types were being vended to be more efficient and fixed some errors in the regular expression that was being used. llvm-svn: 145777 |
||
---|---|---|
.. | ||
Block.cpp | ||
ClangASTContext.cpp | ||
ClangASTImporter.cpp | ||
ClangASTType.cpp | ||
ClangExternalASTSourceCallbacks.cpp | ||
ClangExternalASTSourceCommon.cpp | ||
ClangNamespaceDecl.cpp | ||
CompileUnit.cpp | ||
DWARFCallFrameInfo.cpp | ||
Declaration.cpp | ||
FuncUnwinders.cpp | ||
Function.cpp | ||
LineEntry.cpp | ||
LineTable.cpp | ||
Makefile | ||
ObjectFile.cpp | ||
Symbol.cpp | ||
SymbolContext.cpp | ||
SymbolFile.cpp | ||
SymbolVendor.cpp | ||
Symtab.cpp | ||
Type.cpp | ||
TypeHierarchyNavigator.cpp | ||
TypeList.cpp | ||
UnwindPlan.cpp | ||
UnwindTable.cpp | ||
Variable.cpp | ||
VariableList.cpp | ||
VerifyDecl.cpp |