import lldb from lldbsuite.test.lldbtest import * from lldbsuite.test.decorators import * import lldbsuite.test.lldbutil as lldbutil import unittest2 class TestObjCXXHideRuntimeSupportValues(TestBase): mydir = TestBase.compute_mydir(__file__) def test_hide_runtime_support_values(self): self.build() _, process, _, _ = lldbutil.run_to_source_breakpoint( self, 'break here', lldb.SBFileSpec('main.mm')) var_opts = lldb.SBVariablesOptions() var_opts.SetIncludeArguments(True) var_opts.SetIncludeLocals(True) var_opts.SetInScopeOnly(True) var_opts.SetIncludeStatics(False) var_opts.SetIncludeRuntimeSupportValues(False) var_opts.SetUseDynamic(lldb.eDynamicCanRunTarget) values = self.frame().GetVariables(var_opts) def shows_var(name): for value in values: if value.name == name: return True return False # ObjC method. values = self.frame().GetVariables(var_opts) self.assertFalse(shows_var("this")) self.assertTrue(shows_var("self")) self.assertTrue(shows_var("_cmd")) self.assertTrue(shows_var("c")) process.Continue() # C++ method. values = self.frame().GetVariables(var_opts) self.assertTrue(shows_var("this")) self.assertFalse(shows_var("self")) self.assertFalse(shows_var("_cmd"))