summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2019-05-02 23:07:23 +0000
committerAdrian Prantl <aprantl@apple.com>2019-05-02 23:07:23 +0000
commit1db0f0ca988f95916dc553afa48387b698811ec8 (patch)
tree5679d6e2935d321e754d233f7ecd7be3ef74b1c1 /lldb/packages/Python/lldbsuite/test/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py
parentbf29238e1a8709c3bde667f787ea4b84637fdfd4 (diff)
downloadbcm5719-llvm-1db0f0ca988f95916dc553afa48387b698811ec8.tar.gz
bcm5719-llvm-1db0f0ca988f95916dc553afa48387b698811ec8.zip
Hide runtime support values such as clang's __vla_expr from frame variable
by respecting the "artificial" attribute on variables. Function arguments that are artificial and useful to end-users are being whitelisted by the language runtime. <rdar://problem/45322477> Differential Revision: https://reviews.llvm.org/D61451 llvm-svn: 359841
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py b/lldb/packages/Python/lldbsuite/test/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py
new file mode 100644
index 00000000000..04b2fa22f16
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/lang/objcxx/hide-runtime-values/TestObjCXXHideRuntimeValues.py
@@ -0,0 +1,47 @@
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+import lldbsuite.test.lldbutil as lldbutil
+import os
+import unittest2
+
+
+class TestObjCXXHideRuntimeSupportValues(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ def setUp(self):
+ TestBase.setUp(self)
+
+ 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"))
OpenPOWER on IntegriCloud