Thank you for fixing this and adding a test!
On Mon, Feb 5, 2018 at 2:46 AM, Jan Kratochvil via lldb-commits <lldb-commits@lists.llvm.org> wrote: > Author: jankratochvil > Date: Mon Feb 5 02:46:56 2018 > New Revision: 324222 > > URL: http://llvm.org/viewvc/llvm-project?rev=324222&view=rev > Log: > 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 > > Added: > lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/ > lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/Makefile > > lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py > lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/main.c > Modified: > lldb/trunk/source/Host/common/Symbols.cpp > > Added: lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/Makefile > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/Makefile?rev=324222&view=auto > ============================================================================== > --- lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/Makefile > (added) > +++ lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/Makefile Mon > Feb 5 02:46:56 2018 > @@ -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 > > Added: > lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py?rev=324222&view=auto > ============================================================================== > --- > lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py > (added) > +++ > lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py > Mon Feb 5 02:46:56 2018 > @@ -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) > > Added: lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/main.c > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/main.c?rev=324222&view=auto > ============================================================================== > --- lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/main.c (added) > +++ lldb/trunk/packages/Python/lldbsuite/test/linux/buildidcase/main.c Mon > Feb 5 02:46:56 2018 > @@ -0,0 +1,3 @@ > +int main() { > + return 0; > +} > > Modified: lldb/trunk/source/Host/common/Symbols.cpp > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Symbols.cpp?rev=324222&r1=324221&r2=324222&view=diff > ============================================================================== > --- lldb/trunk/source/Host/common/Symbols.cpp (original) > +++ lldb/trunk/source/Host/common/Symbols.cpp Mon Feb 5 02:46:56 2018 > @@ -245,6 +245,8 @@ FileSpec Symbols::LocateExecutableSymbol > // Some debug files are stored in the .build-id directory like this: > // > /usr/lib/debug/.build-id/ff/e7fe727889ad82bb153de2ad065b2189693315.debug > uuid_str = module_uuid.GetAsString(""); > + std::transform(uuid_str.begin(), uuid_str.end(), uuid_str.begin(), > + ::tolower); > uuid_str.insert(2, 1, '/'); > uuid_str = uuid_str + ".debug"; > } > > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits