llvm-project/lldb
Greg Clayton 1075acafeb Added the ability for clients to grab a set of symbol table indexes and then
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
2011-12-03 20:02:42 +00:00
..
docs I added more complete documentation on all of the new packets we use in LLDB 2011-11-29 01:44:07 +00:00
examples Add an example customization directory which uses a binutils.py module to provide 2011-10-28 23:30:28 +00:00
include Added the ability for clients to grab a set of symbol table indexes and then 2011-12-03 20:02:42 +00:00
lib build: liblldb now depends on the linker library 2011-11-01 17:32:01 +00:00
lldb.xcodeproj Added ClangExternalASTSourceCommon, a local superclass 2011-12-03 03:15:28 +00:00
lldb.xcworkspace Adding a Xcode workspace for lldb. 2011-01-27 20:15:39 +00:00
resources Bumping Xcode project version for lldb-91. 2011-12-01 03:52:18 +00:00
scripts Picked up a new revision of Clang to pull in Objective-C 2011-12-01 04:31:46 +00:00
source Added the ability for clients to grab a set of symbol table indexes and then 2011-12-03 20:02:42 +00:00
test Added a code for a test to find the real Objective C class definition. I 2011-12-03 04:35:51 +00:00
tools Process IDs (lldb::pid_t) and thread IDs (lldb::tid_t) are now 64 bit. This 2011-12-01 23:28:38 +00:00
utils Add a utility script: 2011-11-04 01:05:29 +00:00
www Updated the grossly out of date status page. 2011-10-27 01:33:27 +00:00
INSTALL.txt You'll need to be running Mac OS X to get lldb to build right now. 2010-06-09 07:29:26 +00:00
LICENSE.TXT test commit 2010-06-09 03:55:24 +00:00
Makefile build/Make: Tweak Clang include paths to use LLVM_{SRC,OBJ}_ROOT instead of 2011-11-11 23:36:19 +00:00