1import lldb 2from lldbsuite.test.lldbtest import * 3from lldbsuite.test.decorators import * 4import lldbsuite.test.lldbutil as lldbutil 5 6 7class TestObjCXXHideRuntimeSupportValues(TestBase): 8 9 def test_hide_runtime_support_values(self): 10 self.build() 11 _, process, _, _ = lldbutil.run_to_source_breakpoint( 12 self, 'break here', lldb.SBFileSpec('main.mm')) 13 14 var_opts = lldb.SBVariablesOptions() 15 var_opts.SetIncludeArguments(True) 16 var_opts.SetIncludeLocals(True) 17 var_opts.SetInScopeOnly(True) 18 var_opts.SetIncludeStatics(False) 19 var_opts.SetIncludeRuntimeSupportValues(False) 20 var_opts.SetUseDynamic(lldb.eDynamicCanRunTarget) 21 values = self.frame().GetVariables(var_opts) 22 23 def shows_var(name): 24 for value in values: 25 if value.name == name: 26 return True 27 return False 28 # ObjC method. 29 values = self.frame().GetVariables(var_opts) 30 self.assertFalse(shows_var("this")) 31 self.assertTrue(shows_var("self")) 32 self.assertTrue(shows_var("_cmd")) 33 self.assertTrue(shows_var("c")) 34 35 process.Continue() 36 # C++ method. 37 values = self.frame().GetVariables(var_opts) 38 self.assertTrue(shows_var("this")) 39 self.assertFalse(shows_var("self")) 40 self.assertFalse(shows_var("_cmd")) 41