summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2012-04-24 21:22:41 +0000
committerGreg Clayton <gclayton@apple.com>2012-04-24 21:22:41 +0000
commita8022fa70de20171d95d54d6921d7a32d7108a77 (patch)
treeafd27119820040a5e5912a60e2b3f22abd5aa76f /lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h
parent7af41ccdc478f8bf27694f3d17fa60df4d534fc9 (diff)
downloadbcm5719-llvm-a8022fa70de20171d95d54d6921d7a32d7108a77.tar.gz
bcm5719-llvm-a8022fa70de20171d95d54d6921d7a32d7108a77.zip
<rdar://problem/11291668>
Fixed an issue that would happen when using debug map with DWARF in the .o files where we wouldn't ever track down the actual definition for a type when things were in namespaces. We now serialize the decl context information into an intermediate format which allows us to track down the correct definition for a type regardless of which DWARF symbol file it comes from. We do this by creating a "DWARFDeclContext" object that contains the DW_TAG + name for each item in a decl context which we can then use to veto potential accelerator table matches. For example, the accelerator tables store the basename of the type, so if you have "std::vector<int>", we would end up with an accelerator table entry for the type that contained "vector<int>", which we would then search for using a DWARFDeclContext object that contained: [0] DW_TAG_class_type "vector<int>" [1] DW_TAG_namespace "std" This is currently used to track down forward declarations for things like "class a::b::Foo;". llvm-svn: 155488
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h')
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h
index caa55857765..b9010cdefaa 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h
@@ -46,6 +46,7 @@ public:
void AddCompileUnit(DWARFCompileUnitSP& cu);
uint32_t GetNumCompileUnits();
+ bool ContainsCompileUnit (const DWARFCompileUnit *cu) const;
DWARFCompileUnit* GetCompileUnitAtIndex(uint32_t idx);
DWARFCompileUnitSP GetCompileUnit(dw_offset_t cu_offset, uint32_t* idx_ptr = NULL);
DWARFCompileUnitSP GetCompileUnitContainingDIE(dw_offset_t die_offset);
OpenPOWER on IntegriCloud