[Lldb-commits] [lldb] r147914 - /lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Jim Ingham jingham at apple.com
Tue Jan 10 18:21:12 PST 2012


Author: jingham
Date: Tue Jan 10 20:21:12 2012
New Revision: 147914

URL: http://llvm.org/viewvc/llvm-project?rev=147914&view=rev
Log:
Don't assert but report & return a NULL type if we end up parsing a type we are in the middle of parsing.

Modified:
    lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp

Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp?rev=147914&r1=147913&r2=147914&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp (original)
+++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Tue Jan 10 20:21:12 2012
@@ -1916,8 +1916,18 @@
             type = GetTypeForDIE (curr_cu, type_die).get();
 
         if (assert_not_being_parsed)
-            assert (type != DIE_IS_BEING_PARSED);
-        return type;
+        { 
+            if (type != DIE_IS_BEING_PARSED)
+                return type;
+            
+            GetObjectFile()->GetModule()->ReportError ("Parsing a die that is being parsed die: 0x%8.8x: %s %s",
+                                                                       type_die->GetOffset(), 
+                                                                       DW_TAG_value_to_name(type_die->Tag()), 
+                                                                       type_die->GetName(this, curr_cu));
+
+        }
+        else
+            return type;
     }
     return NULL;
 }





More information about the lldb-commits mailing list