017c16aa483e6edabdbbee1bdcd1ce3f8e8a12d1 |
|
27-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
Don't use a "uintptr_t" for the metadata key, use a "void *". This removes all of the casts that were being used and cleans the code up a bit. Also added the ability to dump the metadata. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@178113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
|
9c09181404cc35f65d5353231246959135fb7684 |
|
08-Mar-2013 |
Greg Clayton <gclayton@apple.com> |
<rdar://problem/13119621> Make dynamic type detection faster by using the AST metadata to help out and allow us not to complete types when we don't need to. After running "purge" on a MacOSX system, the Xcode variables view now populates more than 3x faster with this fix. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@176676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
|
c7f17c030eb0632a0bb1cd0ebf29900d6d97a902 |
|
31-Oct-2012 |
Jim Ingham <jingham@apple.com> |
Make blocks that capture their containing method's object pointer look like methods of the containing class so that direct ivar access will work in the expression parser. <rdar://problem/9797999> git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@167061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
|
a32c5a5aa1fec0f9bc2a5b123f07ff6b8c979999 |
|
27-Oct-2012 |
Jim Ingham <jingham@apple.com> |
This is the first phase of supporting the DW_AT_object_pointer tag. I expanded the decl metadata so it could hold this information, and then used it to look up unfound names in the object pointer if it exists. This gets "frame var" to work for unqualified references to ivars captured in blocks. But the expression parser is ignoring this information still. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@166860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
|
fafffe000eb4a3902ecefc82446d11e6838167c6 |
|
13-Apr-2012 |
Sean Callanan <scallanan@apple.com> |
Added a mechanism for keeping track of where in the debug information individual Decls came from. We've had a metadata infrastructure for a while, which was intended to solve a problem we've since dealt with in a different way. (It was meant to keep track of which definition of an Objective-C class was the "true" definition, but we now find it by searching the symbols for the class symbol.) The metadata is attached to the ExternalASTSource, which means it has a one-to-one correspondence with AST contexts. I've repurposed the metadata infrastructure to hold the object file and DIE offset for the DWARF information corresponding to a Decl. There are methods in ClangASTContext that get and set this metadata, and the ClangASTImporter is capable of tracking down the metadata for Decls that have been copied out of the debug information into the parser's AST context without using any additional memory. To see the metadata, you just have to enable the expression log: - (lldb) log enable lldb expr - and watch the import messages. The high 32 bits of the metadata indicate the index of the object file in its containing DWARFDebugMap; I have also added a log which you can use to track that mapping: - (lldb) log enable dwarf map - This adds 64 bits per Decl, which in my testing hasn't turned out to be very much (debugging Clang produces around 6500 Decls in my tests). To track how much data is being consumed, I've also added a global variable g_TotalSizeOfMetadata which tracks the total number of Decls that have metadata in all active AST contexts. Right now this metadata is enormously useful for tracking down bugs in the debug info parser. In the future I also want to use this information to provide more intelligent error messages instead of printing empty source lines wherever Clang refers to the location where something is defined. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@154634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
|
e628a9f23e6ed8883e1a4ba9a2a563ccbcf2f93e |
|
22-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove extra semicolon (breaking g++ builds). git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@151199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
|
2fc7e8d0d392fe85f22d9c75212ebca4cbce547f |
|
03-Dec-2011 |
Sean Callanan <scallanan@apple.com> |
Added ClangExternalASTSourceCommon, a local superclass for all our external AST sources that lets us associate arbitrary flags with the types we put into the AST contexts. Also added an API on ClangASTContext that allows access to these flags given only an ASTContext and a type. Because we don't have access to RTTI, and because at some point in the future we might encounter external AST sources that we didn't make (so they don't subclass ClangExternalASTSourceCommon) I added a magic number that we check before doing anything else, so that we can catch that problem as soon as it appears. git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h
|