a8b56238ce138e70433a0ce0b4218c9257beae38 |
|
19-Jun-2013 |
Greg Clayton <gclayton@apple.com> |
Added the ability to get a list of types from a SBModule or SBCompileUnit. Sebastien Metrot wanted this, and sent a hollowed out patch. I filled in the blanks and did the low level implementation. The new functions are: //------------------------------------------------------------------ /// Get all types matching \a type_mask from debug info in this /// module. /// /// @param[in] type_mask /// A bitfield that consists of one or more bits logically OR'ed /// together from the lldb::TypeClass enumeration. This allows /// you to request only structure types, or only class, struct /// and union types. Passing in lldb::eTypeClassAny will return /// all types found in the debug information for this module. /// /// @return /// A list of types in this module that match \a type_mask //------------------------------------------------------------------ lldb::SBTypeList SBModule::GetTypes (uint32_t type_mask) //------------------------------------------------------------------ /// Get all types matching \a type_mask from debug info in this /// compile unit. /// /// @param[in] type_mask /// A bitfield that consists of one or more bits logically OR'ed /// together from the lldb::TypeClass enumeration. This allows /// you to request only structure types, or only class, struct /// and union types. Passing in lldb::eTypeClassAny will return /// all types found in the debug information for this compile /// unit. /// /// @return /// A list of types in this compile unit that match \a type_mask //------------------------------------------------------------------ lldb::SBTypeList SBCompileUnit::GetTypes (uint32_t type_mask = lldb::eTypeClassAny); This lets you request types by filling out a mask that contains one or more bits from the lldb::TypeClass enumerations, so you can only get the types you really want. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@184251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
ce490e3161b17c3f2904d6e797bb5e5517d651c2 |
|
13-Feb-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13210494> Parse objective C information as efficiently as possible and without taking dangerous runtime locks. Reworked the way objective C information is parsed by: 1 - don't read all class names up front, this is about 500K of data with names 2 - add a 32 bit hash map that maps a hash of a name to the Class pointer (isa) 3 - Improved name lookups by using the new hash map 4 - split up reading the objc runtime info into dynamic and shared cache since the shared cache only needs to be read once. 5 - When reading all isa values, also get the 32 bit hash instead of the name 6 - Read names lazily now that we don't need all names up front 7 - Allow the hash maps to not be there and still have this function correctly There is dead code in here with all of the various methods I tried. I want to check this in first to not lose any of it in case we need to revert to any of the extra code. I will promptly cleanup and commit again. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@175101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
36da2aa6dc5ad9994b638ed09eb81c44cc05540b |
|
25-Jan-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13069948> Major fixed to allow reading files that are over 4GB. The main problems were that the DataExtractor was using 32 bit offsets as a data cursor, and since we mmap all of our object files we could run into cases where if we had a very large core file that was over 4GB, we were running into the 4GB boundary. So I defined a new "lldb::offset_t" which should be used for all file offsets. After making this change, I enabled warnings for data loss and for enexpected implicit conversions temporarily and found a ton of things that I fixed. Any functions that take an index internally, should use "size_t" for any indexes and also should return "size_t" for any sizes of collections. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@173463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
37bb8ddd443da172f42bb8657f15ec856a525c84 |
|
08-Dec-2011 |
Greg Clayton <gclayton@apple.com> |
Added a new class called lldb_private::SymbolFileType which is designed to take a SymbolFile reference and a lldb::user_id_t and be used in objects which represent things in debug symbols that have types where we don't need to know the true type yet, such as in lldb_private::Variable objects. This allows us to defer resolving the type until something is used. More specifically this allows us to get 1000 local variables from the current function, and if the user types "frame variable argc", we end up _only_ resolving the type for "argc" and not for the 999 other local variables. We can expand the use of this as needed in the future. Modified the DWARFMappedHash class to be able to read the HashData that has more than just the DIE offset. It currently will read the atoms in the header definition and read the data correctly. Currently only the DIE offset and type flags are supported. This is needed for adding type flags to the .apple_types hash accelerator tables. Fixed a assertion crash that would happen if we have a variable that had a DW_AT_const_value instead of a location where "location.LocationContains_DW_OP_addr()" would end up asserting when it tried to parse the variable location as a DWARF opcode list. Decreased the amount of memory that LLDB would use when evaluating an expression by 3x - 4x for clang. There was a place in the namespace lookup code that was parsing all namespaces with a certain name in a DWARF file instead of stopping when it found the first match. This was causing all of the compile units with a matching namespace to get parsed into memory and causing unnecessary memory bloat. Improved "Target::EvaluateExpression(...)" to not try and find a variable when the expression contains characters that would certainly cause an expression to need to be evaluated by the debugger. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@146130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
ce04560e6affff2342d931cab4e904605119c742 |
|
28-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
Remove incorrect return type from SetHeaderDataByteSize accessor (partial patch from Dawn). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
22a3afd927a97026bd22b6023162439c59e6166d |
|
11-Nov-2011 |
Greg Clayton <gclayton@apple.com> |
Allow the Apple hash tables to be emtpy. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@144353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
f09a857961404d937463e9419dc3a8d019cae5f6 |
|
31-Oct-2011 |
Daniel Dunbar <daniel@zuster.org> |
warnings: Fix several uses of trailing comma on enumeration extensions. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@143380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
bbe39167c881ac025cdc4f383ee8895cfd5b1148 |
|
21-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Fixed some issues where we might not have one of the new apple accelerator tables (like the .apple_namespaces) and it would cause us to index DWARF that didn't need to be indexed. Updated the MappedHash.h (generic Apple accelerator table) and the DWARF specific one (HashedNameToDIE.h) to be up to date with the latest and greatest hash table format. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@142627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
141f8d98cb74262914d66a7af4732e8cb2d8699f |
|
12-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Fix preprocessor warnings for no newline at the end of the source files. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
49e08e3b6ffa42a0148bad845c34da2c4fe603de |
|
08-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Started on the export table for the MappedHash. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|
ff9a7e065cb72e24dc3629725ae7d1100b29acd4 |
|
05-Oct-2011 |
Greg Clayton <gclayton@apple.com> |
Added missing file. git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Core/MappedHash.h
|