Resolve binary symlinks before finding its separate .debug file
authorJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 5 Feb 2018 10:50:38 +0000 (10:50 +0000)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Mon, 5 Feb 2018 10:50:38 +0000 (10:50 +0000)
commit401df580641bd6be73d37a0dbb65e7348263fd8a
tree5ca9712b22a57dc6a4e92a6acf03702e7bbd2c7c
parent10392cdbf7fa417976d003e10fae871aedaab322
Resolve binary symlinks before finding its separate .debug file

I have found LLDB cannot find separate debug info of Fedora /usr/bin/gdb.
It is because:

lrwxrwxrwx 1 root root       14 Jan 25 20:41 /usr/bin/gdb -> ../libexec/gdb*
-rwxr-xr-x 1 root root 10180296 Jan 25 20:41 /usr/libexec/gdb*
ls: cannot access '/usr/lib/debug/usr/bin/gdb-8.0.1-35.fc27.x86_64.debug': No such file or directory
-r--r--r-- 1 root root 29200464 Jan 25 20:41 /usr/lib/debug/usr/libexec/gdb-8.0.1-35.fc27.x86_64.debug

FYI that -8.0.1-35.fc27.x86_64.debug may look confusing, it was always just
.debug before.
Why is /usr/bin/gdb a symlink is offtopic for this bugreport, Fedora has it so
for some reasons.

It is always safest to look at the .debug file only after resolving all
symlinks on the binary file.

Differential revision: https://reviews.llvm.org/D42853

llvm-svn: 324224
lldb/packages/Python/lldbsuite/test/linux/sepdebugsymlink/Makefile [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/linux/sepdebugsymlink/TestTargetSymbolsSepDebugSymlink.py [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/linux/sepdebugsymlink/main.c [new file with mode: 0644]
lldb/source/Host/common/Symbols.cpp