Acknowledgement sent
to Sami Liedes <[email protected]>:
New Bug report received and forwarded. Copy sent to Héctor Orón Martínez <[email protected]>.
(Sun, 05 Feb 2017 01:57:04 GMT) (full text, mbox, link).
Subject: gdb: Reverse debugging broken on Debian's libc because of missing
support for vorpd in memset
Date: Sun, 5 Feb 2017 03:48:32 +0200
Package: gdb
Version: 7.12-6
Severity: normal
Tags: upstream
Reverse debugging is currently broken with sid's combination of libc
and GDB on x86_64. The problem is that support for some instructions
is missing; one of these is vorpd, used at least in libc's memset():
============================================================
$ gcc gdb-test.c -o gdb-test -g
$ gdb -q gdb-test
Reading symbols from gdb-test...done.
(gdb) start
Temporary breakpoint 1 at 0x6d4: file gdb-test.c, line 10.
Starting program: /home/sliedes/gdb-test/gdb-test
Temporary breakpoint 1, main () at gdb-test.c:10
10 foo();
(gdb) target record-full
(gdb) c
Continuing.
Process record does not support instruction 0xc5 at address 0x7ffff7deea70.
Process record: failed to record execution log.
Program stopped.
_dl_runtime_resolve_avx_slow () at ../sysdeps/x86_64/dl-trampoline.h:70
70 ../sysdeps/x86_64/dl-trampoline.h: No such file or directory.
(gdb) disas
Dump of assembler code for function _dl_runtime_resolve_avx_slow:
=> 0x00007ffff7deea70 <+0>: vorpd %ymm0,%ymm1,%ymm8
0x00007ffff7deea74 <+4>: vorpd %ymm2,%ymm3,%ymm9
0x00007ffff7deea78 <+8>: vorpd %ymm4,%ymm5,%ymm10
0x00007ffff7deea7c <+12>: vorpd %ymm6,%ymm7,%ymm11
0x00007ffff7deea80 <+16>: vorpd %ymm8,%ymm9,%ymm9
0x00007ffff7deea85 <+21>: vorpd %ymm10,%ymm11,%ymm10
0x00007ffff7deea8a <+26>: vpcmpeqd %xmm8,%xmm8,%xmm8
0x00007ffff7deea8f <+31>: vorpd %ymm9,%ymm10,%ymm10
0x00007ffff7deea94 <+36>: vptest %ymm10,%ymm8
0x00007ffff7deea99 <+41>: bnd jae 0x7ffff7deead0 <_dl_runtime_resolve_avx>
0x00007ffff7deea9c <+44>: vzeroupper
0x00007ffff7deea9f <+47>: bnd jmpq 0x7ffff7def3f0 <_dl_runtime_resolve_sse_vex>
End of assembler dump.
(gdb) reverse-stepi
0x0000555555554556 in ?? ()
(gdb)
0x0000555555554550 in ?? ()
(gdb)
0x000055555555456b in memset@plt ()
(gdb)
============================================================
-- System Information:
Debian Release: 9.0
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.9.6 (SMP w/8 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=fi_FI.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages gdb depends on:
ii libbabeltrace-ctf1 1.5.1-1
ii libbabeltrace1 1.5.1-1
ii libc6 2.24-9
ii libexpat1 2.2.0-2
ii liblzma5 5.2.2-1.2
ii libncurses5 6.0+20161126-1
ii libpython3.5 3.5.3-1
ii libreadline7 7.0-2
ii libtinfo5 6.0+20161126-1
ii zlib1g 1:1.2.8.dfsg-5
Versions of packages gdb recommends:
ii libc6-dbg [libc-dbg] 2.24-9
Versions of packages gdb suggests:
ii gdb-doc 7.12-2
ii gdbserver 7.12-6
-- no debconf information