Package: gcc-6 Version: 6.3.0-18 Severity: important Hi,
I am directing this bug as relevant to gcc package as this is my best guess so far of a possible culprit. gdb is the package which has its functionality affected. Consider the following trivial code: #include <stdio.h> void a() { printf("Hello, world\n"); } int main() { a(); return 0; } When debugging such a program with gdb, gdb notices if the binary changes between two runs (within the same session). However, binaries created with gcc as in packages 6.3.0-18 (or 6.3.0-16 in testing) are not properly reloaded: localhost /tmp $ gcc -W -Wall -g a.c localhost /tmp $ gdb -q a.out Reading symbols from a.out...done. (gdb) b a Breakpoint 1 at 0x6b4: file a.c, line 5. (gdb) r Starting program: /tmp/a.out Breakpoint 1, a () at a.c:5 5 printf("Hello, world\n"); (gdb) shell gcc -W -Wall -g a.c (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) y `/tmp/a.out' has changed; re-reading symbols. Error in re-setting breakpoint 1: Cannot access memory at address 0x55555555 46b0 Starting program: /tmp/a.out Hello, world [Inferior 1 (process 22102) exited normally] (gdb) quit Note that instructing gdb to explicitly reload the binary localhost ~ $ dpkg -l gcc-6 gdb binutils | grep ^i ii binutils 2.28-5 amd64 GNU assembler, linker and binary utilities ii gcc-6 6.3.0-18 amd64 GNU C compiler ii gdb 7.12-6 amd64 GNU Debugger I've tried other gcc+gdb combinations. Binary reload fails similarly in the following case: ubuntu 17.04 gdb 7.12.50.20170314-0ubuntu1 + gcc 6.3.0-2ubuntu1 Binary reloads fine in the following cases: debian testing, gdb 7.12-6 + home-compiled upstream gcc-7.1.0 debian testing, gdb 7.12-6 + home-compiled upstream gcc-6.3.0 debian testing, gdb 7.12-6 + gcc 5.4.1-4 archlinux gdb 7.12.1 + gcc 6.3.1 20170306 On the gcc-6.3.0 I had, objdump -x a.out tells, among other things: EXEC_P, HAS_SYMS, D_PAGED start address 0x00000000004003f0 while on the gcc-6.3.0-16 debian package, I have: HAS_SYMS, DYNAMIC, D_PAGED start address 0x0000000000000580 I would be happy to provide more information if needed. Cheers, E. -- System Information: Debian Release: 9.0 APT prefers testing APT policy: (900, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=C, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages gcc-6 depends on: ii binutils 2.28-5 ii cpp-6 6.3.0-18 ii gcc-6-base 6.3.0-18 ii libc6 2.24-10 ii libcc1-0 6.3.0-18 ii libgcc-6-dev 6.3.0-18 ii libgcc1 1:6.3.0-18 ii libgmp10 2:6.1.2+dfsg-1 ii libisl15 0.18-1 ii libmpc3 1.0.3-1+b2 ii libmpfr4 3.1.5-1 ii libstdc++6 6.3.0-18 ii zlib1g 1:1.2.8.dfsg-5 Versions of packages gcc-6 recommends: ii libc6-dev 2.24-10 Versions of packages gcc-6 suggests: ii gcc-6-doc 6.3.0-1 pn gcc-6-locales <none> ii gcc-6-multilib 6.3.0-18 pn libasan3-dbg <none> pn libatomic1-dbg <none> pn libcilkrts5-dbg <none> pn libgcc1-dbg <none> pn libgomp1-dbg <none> pn libitm1-dbg <none> pn liblsan0-dbg <none> pn libmpx2-dbg <none> pn libquadmath0-dbg <none> pn libtsan0-dbg <none> pn libubsan0-dbg <none> -- no debconf information