summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
authorRaphael Isemann <teemperor@gmail.com>2019-11-07 15:47:01 +0100
committerRaphael Isemann <teemperor@gmail.com>2019-11-07 15:47:01 +0100
commit87bc320b510e91a1a71aa8a154c585db65579628 (patch)
treec121e533a5190be9e7a1413ff542c2d5b4431784 /lldb/packages/Python/lldbsuite/test
parente58985a5ec355095b5fbdfb659de181efddef2fd (diff)
downloadbcm5719-llvm-87bc320b510e91a1a71aa8a154c585db65579628.tar.gz
bcm5719-llvm-87bc320b510e91a1a71aa8a154c585db65579628.zip
[lldb] Add -m option to 'target modules dump symtab' to disable demangling
Summary: This option was added downstream in swift-lldb. This upstreams this option as it seems useful and also adds the missing tests. Reviewers: #lldb, kwk, labath Reviewed By: kwk, labath Subscribers: labath, kwk, abidh, JDevlieghere, lldb-commits Tags: #lldb, #upstreaming_lldb_s_downstream_patches Differential Revision: https://reviews.llvm.org/D69944
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/target/dump-symtab-demangle/TestDumpSymtabDemangle.py30
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/target/dump-symtab-demangle/a.yaml18
2 files changed, 48 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/commands/target/dump-symtab-demangle/TestDumpSymtabDemangle.py b/lldb/packages/Python/lldbsuite/test/commands/target/dump-symtab-demangle/TestDumpSymtabDemangle.py
new file mode 100644
index 00000000000..9f95a11f387
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/target/dump-symtab-demangle/TestDumpSymtabDemangle.py
@@ -0,0 +1,30 @@
+"""
+Test 'target modules dump symtab -m' doesn't demangle symbols.
+"""
+
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+class TestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ @no_debug_info_test
+ def test(self):
+ src_dir = self.getSourceDir()
+ yaml_path = os.path.join(src_dir, "a.yaml")
+ yaml_base, ext = os.path.splitext(yaml_path)
+ obj_path = self.getBuildArtifact("main.o")
+ self.yaml2obj(yaml_path, obj_path)
+
+ # Create a target with the object file we just created from YAML
+ target = self.dbg.CreateTarget(obj_path)
+ self.assertTrue(target, VALID_TARGET)
+
+ # First test that we demangle by default and our mangled symbol isn't in the output.
+ self.expect("target modules dump symtab", substrs=["foo::bar(int)"])
+ self.expect("target modules dump symtab", matching=False, substrs=["_ZN3foo3barEi"])
+
+ # Turn off demangling and make sure that we now see the mangled name in the output.
+ self.expect("target modules dump symtab -m", substrs=["_ZN3foo3barEi"])
diff --git a/lldb/packages/Python/lldbsuite/test/commands/target/dump-symtab-demangle/a.yaml b/lldb/packages/Python/lldbsuite/test/commands/target/dump-symtab-demangle/a.yaml
new file mode 100644
index 00000000000..ed591d7c1c1
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/target/dump-symtab-demangle/a.yaml
@@ -0,0 +1,18 @@
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x0000000000000010
+ Content: 554889E5897DFC5DC3
+Symbols:
+ - Name: _ZN3foo3barEi
+ Type: STT_FUNC
+ Section: .text
+ Size: 0x0000000000000009
+...
OpenPOWER on IntegriCloud