https://bugs.llvm.org/show_bug.cgi?id=35032

            Bug ID: 35032
           Summary: lld's debug info is not compatible with valgrind
           Product: lld
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: ELF
          Assignee: unassignedb...@nondot.org
          Reporter: r...@google.com
                CC: llvm-bugs@lists.llvm.org

Assume we have this C source file.

  $ cat foo.c
  #include <stdlib.h>
  int main() { for (int i = 0; i < 1000000; i++) malloc(10); }

When I link an executable with bfd or gold, ms_print correctly prints out the
source location where we allocate heap memory.

  $ clang -g -o foo foo.c
  $ valgrind --tool=massif --massif-out-file=massif.foo ./foo
  $ ms_print massif.foo
  (omit)
  ->41.67% (127,990B) 0x40053D: main (in /ssd/b/foo)

However, if we use lld, it doesn't.

  $ clang -g -o foo foo.c -fuse-ld=lld
  $ valgrind --tool=massif --massif-out-file=massif.foo ./foo
  $ ms_print massif.foo
  ->41.67% (127,990B) 0x20111D: ??? (in /ssd/b/foo)
    ->41.67% (127,990B) 0x4E4FF43: (below main) (libc-start.c:287)

Looks like we are producing debug info which valgrind cannot read.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to