Using gdb 9.2-0ubuntu1~20.04, libc6 and libc6-dbg 2.31-0ubuntu9.2
gdb -q /bin/date
Reading symbols from /bin/date...
(No debugging symbols found in /bin/date)
(gdb) starti
Starting program: /usr/bin/date
Program stopped.
0x00007ffff7fd0100 in ?? () from /lib64/ld-linux-x86-64.so.2
(gdb) b _dl_debug_state
Breakpoint 1 at 0x7ffff7fe11d0
(gdb) c
Continuing.
Breakpoint 1, 0x00007ffff7fe11d0 in _dl_debug_state () from /lib64/ld-linux-x86-64.so.2
(gdb) bt
#0 0x00007ffff7fe11d0 in _dl_debug_state () from /lib64/ld-linux-x86-64.so.2
#1 0x00007ffff7fd2fd1 in ?? () from /lib64/ld-linux-x86-64.so.2
#2 0x00007ffff7febc3b in ?? () from /lib64/ld-linux-x86-64.so.2
#3 0x00007ffff7fd104c in ?? () from /lib64/ld-linux-x86-64.so.2
#4 0x00007ffff7fd0108 in ?? () from /lib64/ld-linux-x86-64.so.2
#5 0x0000000000000001 in ?? ()
#6 0x00007fffffffe58c in ?? ()
#7 0x0000000000000000 in ?? ()
Note that debug info for ld-linux is missing despite libc6-dbg being installed.
Catchpoint 2 (call to syscall exit_group), __GI__exit (status=status@entry=0) at ../sysdeps/unix/sysv/linux/_exit.c:31
31 ../sysdeps/unix/sysv/linux/_exit.c: No such file or directory.
Note that debug info for `libc.so.6` was loaded correctly, but debug info for ld-linux was not.
(gdb) info shared
From To Syms Read Shared Object Library
0x00007ffff7fd0100 0x00007ffff7ff2674 Yes (*) /lib64/ld-linux-x86-64.so.2
0x00007ffff7df4630 0x00007ffff7f6920d Yes /lib/x86_64-linux-gnu/libc.so.6
(*): Shared library is missing debugging information.
----
As far as I can tell, this is happening because libc6-dbg installs ld-2.31.so into the wrong place:
gdb -q /bin/date
Reading symbols from /bin/date...
(No debugging symbols found in /bin/date)
(gdb) starti
Starting program: /usr/bin/date
Program stopped.
0x00007ffff7fd0100 in _start () from /lib64/ld-linux-x86-64.so.2
(gdb) b _dl_debug_state
Breakpoint 1 at 0x7ffff7fe11d0: file dl-debug.c, line 73.
(gdb) c
Continuing.
Breakpoint 1, __GI__dl_debug_state () at dl-debug.c:73
73 dl-debug.c: No such file or directory.
(gdb) bt
#0 __GI__dl_debug_state () at dl-debug.c:73
#1 0x00007ffff7fd2fd1 in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=<optimized out>) at rtld.c:1661
#2 0x00007ffff7febc3b in _dl_sysdep_start (start_argptr=start_argptr@entry=0x7fffffffe390, dl_main=dl_main@entry=0x7ffff7fd15e0 <dl_main>) at ../elf/dl-sysdep.c:252
#3 0x00007ffff7fd104c in _dl_start_final (arg=0x7fffffffe390) at rtld.c:449
#4 _dl_start (arg=0x7fffffffe390) at rtld.c:539
#5 0x00007ffff7fd0108 in _start () from /lib64/ld-linux-x86-64.so.2
#6 0x0000000000000001 in ?? ()
#7 0x00007fffffffe5c8 in ?? ()
#8 0x0000000000000000 in ?? ()
ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: libc6-dbg 2.31-0ubuntu9.2
Uname: Linux 5.4.72-microsoft-standard-WSL2 x86_64
ApportVersion: 2.20.11-0ubuntu27.16
Architecture: amd64
CasperMD5CheckResult: skip
Date: Sat Mar 6 22:39:51 2021
ProcEnviron:
TERM=xterm-256color
PATH=(custom, no user)
LANG=C.UTF-8
SHELL=/bin/bash
SourcePackage: glibc
UpgradeStatus: No upgrade log present (probably fresh install)
lsb_release -rd
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Using gdb 9.2-0ubuntu1~20.04, libc6 and libc6-dbg 2.31-0ubuntu9.2
gdb -q /bin/date
Reading symbols from /bin/date...
(No debugging symbols found in /bin/date)
(gdb) starti
Starting program: /usr/bin/date
Program stopped. ld-linux- x86-64. so.2
0x00007ffff7fd0100 in ?? () from /lib64/
(gdb) b _dl_debug_state
Breakpoint 1 at 0x7ffff7fe11d0
(gdb) c
Continuing.
Breakpoint 1, 0x00007ffff7fe11d0 in _dl_debug_state () from /lib64/ ld-linux- x86-64. so.2 ld-linux- x86-64. so.2 ld-linux- x86-64. so.2 ld-linux- x86-64. so.2 ld-linux- x86-64. so.2 ld-linux- x86-64. so.2
(gdb) bt
#0 0x00007ffff7fe11d0 in _dl_debug_state () from /lib64/
#1 0x00007ffff7fd2fd1 in ?? () from /lib64/
#2 0x00007ffff7febc3b in ?? () from /lib64/
#3 0x00007ffff7fd104c in ?? () from /lib64/
#4 0x00007ffff7fd0108 in ?? () from /lib64/
#5 0x0000000000000001 in ?? ()
#6 0x00007fffffffe58c in ?? ()
#7 0x0000000000000000 in ?? ()
Note that debug info for ld-linux is missing despite libc6-dbg being installed.
(gdb) disable 1
(gdb) catch syscall exit_group
Catchpoint 2 (syscall 'exit_group' [231])
(gdb) c
Continuing.
Sat Mar 6 22:47:08 PST 2021
Catchpoint 2 (call to syscall exit_group), __GI__exit (status= status@ entry=0) at ../sysdeps/ unix/sysv/ linux/_ exit.c: 31 unix/sysv/ linux/_ exit.c: No such file or directory.
31 ../sysdeps/
Note that debug info for `libc.so.6` was loaded correctly, but debug info for ld-linux was not.
(gdb) info shared ld-linux- x86-64. so.2 64-linux- gnu/libc. so.6
From To Syms Read Shared Object Library
0x00007ffff7fd0100 0x00007ffff7ff2674 Yes (*) /lib64/
0x00007ffff7df4630 0x00007ffff7f6920d Yes /lib/x86_
(*): Shared library is missing debugging information.
----
As far as I can tell, this is happening because libc6-dbg installs ld-2.31.so into the wrong place:
dpkg -L libc6-dbg | grep /ld-2.31 debug/lib/ libc6-prof/ x86_64- linux-gnu/ ld-2.31. so debug/lib/ x86_64- linux-gnu/ ld-2.31. so
/usr/lib/
/usr/lib/
Since ld-linux resolves to /lib64/ ld-linux- x86-64. so.2, GDB looks for debug symbols in the following paths:
/lib64/ .debug/ ld-2.31. so debug/lib64/ ld-2.31. so x86_64- linux-gnu/ .debug/ ld-2.31. so debug/usr/ lib/x86_ 64-linux- gnu/ld- 2.31.so x86_64- linux-gnu/ .debug/ ld-2.31. so debug/usr/ lib/x86_ 64-linux- gnu/ld- 2.31.so
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
/usr/lib/
None of these matches the actual installed path, so debug symbols are not loaded.
P.S. Manually adding symbols via add-symbol-file /usr/lib/ debug/lib/ x86_64- linux-gnu/ ld-2.31. so works fine, but this should be automatic.
P.P.S. After running
sudo mkdir /usr/lib/ debug/lib64 debug/lib/ x86_64- linux-gnu/ ld-2.31. so /usr/lib/ debug/lib64
sudo ln -s /usr/lib/
things start working as expected:
gdb -q /bin/date
Reading symbols from /bin/date...
(No debugging symbols found in /bin/date)
(gdb) starti
Starting program: /usr/bin/date
Program stopped. ld-linux- x86-64. so.2
0x00007ffff7fd0100 in _start () from /lib64/
(gdb) b _dl_debug_state
Breakpoint 1 at 0x7ffff7fe11d0: file dl-debug.c, line 73.
(gdb) c
Continuing.
Breakpoint 1, __GI__dl_ debug_state () at dl-debug.c:73 debug_state () at dl-debug.c:73 <optimized out>, auxv=<optimized out>) at rtld.c:1661 argptr= start_argptr@ entry=0x7ffffff fe390, dl_main= dl_main@ entry=0x7ffff7f d15e0 <dl_main>) at ../elf/ dl-sysdep. c:252 e390) at rtld.c:449 e390) at rtld.c:539 ld-linux- x86-64. so.2
73 dl-debug.c: No such file or directory.
(gdb) bt
#0 __GI__dl_
#1 0x00007ffff7fd2fd1 in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=
#2 0x00007ffff7febc3b in _dl_sysdep_start (start_
#3 0x00007ffff7fd104c in _dl_start_final (arg=0x7fffffff
#4 _dl_start (arg=0x7fffffff
#5 0x00007ffff7fd0108 in _start () from /lib64/
#6 0x0000000000000001 in ?? ()
#7 0x00007fffffffe5c8 in ?? ()
#8 0x0000000000000000 in ?? ()
ProblemType: Bug microsoft- standard- WSL2 x86_64 0ubuntu27. 16 esult: skip 256color
DistroRelease: Ubuntu 20.04
Package: libc6-dbg 2.31-0ubuntu9.2
Uname: Linux 5.4.72-
ApportVersion: 2.20.11-
Architecture: amd64
CasperMD5CheckR
Date: Sat Mar 6 22:39:51 2021
ProcEnviron:
TERM=xterm-
PATH=(custom, no user)
LANG=C.UTF-8
SHELL=/bin/bash
SourcePackage: glibc
UpgradeStatus: No upgrade log present (probably fresh install)