diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2018-02-05 10:46:56 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2018-02-05 10:46:56 +0000 |
commit | 4fc027105a95b2d1e8a079a3ded39feb3e355f06 (patch) | |
tree | 0ebf2822e5e5393ba59fa605a766fb82cb089d84 /lldb/packages/Python/lldbsuite/test | |
parent | 64f65b02d287b760959e727d897cbeb3f8c50434 (diff) | |
download | bcm5719-llvm-4fc027105a95b2d1e8a079a3ded39feb3e355f06.tar.gz bcm5719-llvm-4fc027105a95b2d1e8a079a3ded39feb3e355f06.zip |
Fix upper->lower case for /usr/lib/debug/.build-id/**.debug
I have found the lookup by build-id
(when lookup by /usr/lib/debug/path/name/exec.debug failed) does not work as
LLDB tries the build-id hex string in uppercase but Fedora uses lowercase.
xubuntu-16.10 also uses lowercase during my test:
/usr/lib/debug/.build-id/6c/61f3566329f43d03f812ae7057e9e7391b5ff6.debug
Differential revision: https://reviews.llvm.org/D42852
llvm-svn: 324222
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
3 files changed, 44 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/linux/buildidcase/Makefile b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/Makefile new file mode 100644 index 00000000000..31a33f0156f --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/Makefile @@ -0,0 +1,20 @@ +LEVEL = ../../make +C_SOURCES := main.c +LD_EXTRAS += -Wl,--build-id=sha1 + +all: stripped.out + +.PHONY: .build-id +stripped.out .build-id: a.out + $(OBJCOPY) -j .note.gnu.build-id -O binary $< tmp + rm -rf .build-id + fn=`od -An -tx1 <tmp|tr -d ' \n'|sed -e 's/^.\{32\}//' -e 's#^..#.build-id/&/#' -e 's#$$#.debug#'` && \ + mkdir -p `dirname $$fn` && \ + $(OBJCOPY) --only-keep-debug $< $$fn && \ + $(OBJCOPY) --strip-all --add-gnu-debuglink=$$fn $< stripped.out + $(RM) tmp + +clean:: + $(RM) -r stripped.out .build-id + +include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py new file mode 100644 index 00000000000..f4c965eba31 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py @@ -0,0 +1,21 @@ +""" Testing separate debug info loading by its .build-id. """ +import os +import time +import lldb +import sys +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + + +class TestTargetSymbolsBuildidCase(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + @no_debug_info_test # Prevent the genaration of the dwarf version of this test + @skipUnlessPlatform(['linux']) + def test_target_symbols_buildid_case(self): + self.build(clean=True) + exe = self.getBuildArtifact("stripped.out") + + lldbutil.run_to_name_breakpoint(self, "main", exe_name = exe) diff --git a/lldb/packages/Python/lldbsuite/test/linux/buildidcase/main.c b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/main.c new file mode 100644 index 00000000000..4cce7f667ff --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/main.c @@ -0,0 +1,3 @@ +int main() { + return 0; +} |