This revision was automatically updated to reflect the committed changes.
Closed by commit rL268615: Fix DW_AT_specification handling in DWO files 
(authored by labath).

Changed prior to commit:
  http://reviews.llvm.org/D19927?vs=56168&id=56245#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D19927

Files:
  
lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/Makefile
  
lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
  
lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/decls.h
  
lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file1.cpp
  
lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file2.cpp
  lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp

Index: lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
+++ lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/TestSymbolContextTwoFiles.py
@@ -0,0 +1,35 @@
+"""
+Test SBSymbolContext APIs.
+"""
+
+from __future__ import print_function
+
+import os
+
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+class SymbolContextTwoFilesTestCase(TestBase):
+
+    mydir = TestBase.compute_mydir(__file__)
+
+    @add_test_categories(['pyapi'])
+    def test_lookup_by_address(self):
+        """Test lookup by address in a module with multiple compilation units"""
+        self.build()
+        exe = os.path.join(os.getcwd(), "a.out")
+
+        target = self.dbg.CreateTarget(exe)
+        self.assertTrue(target, VALID_TARGET)
+
+        module = target.GetModuleAtIndex(0)
+        self.assertTrue(module.IsValid())
+        for symbol_name in ["struct1::f()", "struct2::f()"]:
+            sc_list = module.FindFunctions(symbol_name, lldb.eSymbolTypeCode)
+            self.assertTrue(1, sc_list.GetSize())
+            symbol_address = sc_list.GetContextAtIndex(0).GetSymbol().GetStartAddress()
+            self.assertTrue(symbol_address.IsValid())
+            sc_by_address = module.ResolveSymbolContextForAddress(symbol_address, lldb.eSymbolContextFunction)
+            self.assertEqual(symbol_name, sc_by_address.GetFunction().GetName())
Index: lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/Makefile
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/Makefile
+++ lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/Makefile
@@ -0,0 +1,5 @@
+LEVEL = ../../../make
+
+CXX_SOURCES := file1.cpp file2.cpp
+
+include $(LEVEL)/Makefile.rules
Index: lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file2.cpp
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file2.cpp
+++ lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file2.cpp
@@ -0,0 +1,6 @@
+#include "decls.h"
+
+void
+struct2::f()
+{
+}
Index: lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file1.cpp
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file1.cpp
+++ lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/file1.cpp
@@ -0,0 +1,13 @@
+#include "decls.h"
+
+void
+struct1::f()
+{
+}
+
+int main()
+{
+    struct1::f();
+    struct2::f();
+    return 0;
+}
Index: lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/decls.h
===================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/decls.h
+++ lldb/trunk/packages/Python/lldbsuite/test/python_api/symbol-context/two-files/decls.h
@@ -0,0 +1,11 @@
+struct struct1
+{
+    static void
+    f();
+};
+
+struct struct2
+{
+    static void
+    f();
+};
Index: lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp
===================================================================
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp
@@ -610,7 +610,7 @@
         {
             if (die_ref.die_offset != DW_INVALID_OFFSET)
             {
-                DWARFDIE die = dwarf2Data->DebugInfo()->GetDIE(die_ref);
+                DWARFDIE die = dwarf2Data->GetDIE(die_ref);
                 if (die)
                     die.GetDIE()->GetDIENamesAndRanges(die.GetDWARF(), die.GetCU(), name, mangled, ranges, decl_file, decl_line, decl_column, call_file, call_line, call_column);
             }
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to