[Lldb-commits] [lldb] r152161 - in /lldb/trunk: source/Core/ValueObject.cpp test/lang/objc/objc-stepping/TestObjCStepping.py

Enrico Granata egranata at apple.com
Tue Mar 6 15:21:17 PST 2012


Author: enrico
Date: Tue Mar  6 17:21:16 2012
New Revision: 152161

URL: http://llvm.org/viewvc/llvm-project?rev=152161&view=rev
Log:
Fixing an issue where a ValueObject had changed its value but the 'value changed' flag was not being set. This was breaking one of our test cases

Modified:
    lldb/trunk/source/Core/ValueObject.cpp
    lldb/trunk/test/lang/objc/objc-stepping/TestObjCStepping.py

Modified: lldb/trunk/source/Core/ValueObject.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/ValueObject.cpp?rev=152161&r1=152160&r2=152161&view=diff
==============================================================================
--- lldb/trunk/source/Core/ValueObject.cpp (original)
+++ lldb/trunk/source/Core/ValueObject.cpp Tue Mar  6 17:21:16 2012
@@ -1204,7 +1204,15 @@
                 }
             }
         }
-        GetValueAsCString(my_format, m_value_str);
+        if (GetValueAsCString(my_format, m_value_str))
+        {
+            if (!m_value_did_change && m_old_value_valid)
+            {
+                // The value was gotten successfully, so we consider the
+                // value as changed if the value string differs
+                SetValueDidChange (m_old_value_str != m_value_str);
+            }
+        }
     }
     if (m_value_str.empty())
         return NULL;

Modified: lldb/trunk/test/lang/objc/objc-stepping/TestObjCStepping.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/lang/objc/objc-stepping/TestObjCStepping.py?rev=152161&r1=152160&r2=152161&view=diff
==============================================================================
--- lldb/trunk/test/lang/objc/objc-stepping/TestObjCStepping.py (original)
+++ lldb/trunk/test/lang/objc/objc-stepping/TestObjCStepping.py Tue Mar  6 17:21:16 2012
@@ -10,8 +10,6 @@
 
     mydir = os.path.join("lang", "objc", "objc-stepping")
 
-    # rdar://problem/10986147
-    @unittest2.expectedFailure
     @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
     @python_api_test
     def test_with_dsym_and_python_api(self):
@@ -19,8 +17,6 @@
         self.buildDsym()
         self.objc_stepping()
 
-    # rdar://problem/10986147
-    @unittest2.expectedFailure
     @python_api_test
     def test_with_dwarf_and_python_api(self):
         """Test stepping through ObjC method dispatch in various forms."""
@@ -81,6 +77,9 @@
         self.assertTrue(mySource_isa, "Found mySource->isa local variable.")
         mySource_isa.GetValue ()
 
+        if self.TraceOn():
+             print mySource_isa
+
         # Lets delete mySource so we can check that after stepping a child variable
         # with no parent persists and is useful.
         del (mySource)
@@ -121,6 +120,9 @@
         mySource_isa.GetValue ()
         did_change = mySource_isa.GetValueDidChange ()
 
+        if self.TraceOn():
+             print mySource_isa
+
         self.assertTrue (did_change, "The isa did indeed change, swizzled!")
 
         # Now step in, that should leave us in the Source randomMethod:





More information about the lldb-commits mailing list