bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/23357] New: LD debug info cannot be read by valgrind


From: dilyan.palauzov at aegee dot org
Subject: [Bug ld/23357] New: LD debug info cannot be read by valgrind
Date: Sat, 30 Jun 2018 08:51:04 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=23357

            Bug ID: 23357
           Summary: LD debug info cannot be read by valgrind
           Product: binutils
           Version: 2.32 (HEAD)
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: dilyan.palauzov at aegee dot org
  Target Milestone: ---

Created attachment 11110
  --> https://sourceware.org/bugzilla/attachment.cgi?id=11110&action=edit
The object file in the experiments.

I gcc (GCC) 7.3.1 20180629 compiled with
mkdir build && cd build && ../configure --enable-threads=posix --enable-nls
--disable-multilib --enable-interpreter --with-system-zlib
--enable-libgcj-multifile --enable-languages=all --enable-targets=all
--with-system-unwind --without-x --with-linker-hash-style=gnu --enable-shared
--with-build-config=bootstrap-lto\ bootstrap-O3 && make install

binutils 2.31.51.20180630 compiled with

/git/binutils-gdb/configure --enable-threads --with-system-zlib
--with-system-readline --with-python=/usr/local/bin/python3
--enable-compressed-debug-sections=gold,ld --enable-gold

and this file:
#include <stdio.h>

int main() {
  printf("a\n");
  int i = 7 /0;
  printf("b\n");
  return 0;
}

which I compile with 'gcc -g -c -o t.o t.c'.

Then I link the file with bfd and gold separately:
gcc -fuse-ld=gold -o t-gold t.o
gcc -fuse-ld=bfd -o t-bfd t.o

t.o, t-gold and t-bfd are uploaded.

Running under gdb shows for both t-binaries cases troubles in t.c:5.

I have valgrind-3.14.0.GIT-f008d35bb3-20180629X.

"valgrind ./t-gold" shows:
Process terminating with default action of signal 8 (SIGFPE)
 Integer divide by zero at address 0x100905BADE
   at 0x400579: main (t.c:5)

but "valgrind ./t-bfd" prints:
Process terminating with default action of signal 8 (SIGFPE)
 Integer divide by zero at address 0x1008F5BADE
   at 0x401149: ??? (in /root/T/t-bfd)
   by 0x4A44B44: (below main) (libc-start.c:287)

Installing a ld 2.30 under /usr/local/x86_64-pc-linux-gnu/bin/ld.bfd, doing
'gcc -fuse-ld=bfd -o t-bfd2.30 t.o' and then 'valgrind ./t-bfd2.30' prints
Process terminating with default action of signal 8 (SIGFPE)
 Integer divide by zero at address 0x100905FADE
   at 0x4004F9: main (t.c:5)

This means that valgrind cannot read debug information when most current ld is
used, but can read the information when gold or ld 2.30 are used.  The fact
that gdb can read the information in all cases does not prove that the problem
is in valgrind, it could be also in the common libbdf.

Please verify that the debug information generated by ld is correct and help at
https://bugs.kde.org/show_bug.cgi?id=395682 to find what the problem with
valgrind is.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]