[LLVMdev] Fwd: Profile (-pg) segfault
Renato Golin
renato.golin at linaro.org
Fri Sep 13 08:28:02 PDT 2013
Folks,
I'm trying to profile a code compiled with Clang and I'm getting a segfault
on mcount independently of the program I run:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b1245b in mcount () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0 0x00007ffff7b1245b in mcount () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff7dd6588 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x0000000000000000 in ?? ()
(gdb) disas
Dump of assembler code for function mcount:
0x00007ffff7b12430 <+0>: sub $0x38,%rsp
0x00007ffff7b12434 <+4>: mov %rax,(%rsp)
0x00007ffff7b12438 <+8>: mov %rcx,0x8(%rsp)
0x00007ffff7b1243d <+13>: mov %rdx,0x10(%rsp)
0x00007ffff7b12442 <+18>: mov %rsi,0x18(%rsp)
0x00007ffff7b12447 <+23>: mov %rdi,0x20(%rsp)
0x00007ffff7b1244c <+28>: mov %r8,0x28(%rsp)
0x00007ffff7b12451 <+33>: mov %r9,0x30(%rsp)
0x00007ffff7b12456 <+38>: mov 0x38(%rsp),%rsi
=> 0x00007ffff7b1245b <+43>: mov 0x8(%rbp),%rdi
0x00007ffff7b1245f <+47>: callq 0x7ffff7b116a0
0x00007ffff7b12464 <+52>: mov 0x30(%rsp),%r9
0x00007ffff7b12469 <+57>: mov 0x28(%rsp),%r8
0x00007ffff7b1246e <+62>: mov 0x20(%rsp),%rdi
0x00007ffff7b12473 <+67>: mov 0x18(%rsp),%rsi
0x00007ffff7b12478 <+72>: mov 0x10(%rsp),%rdx
0x00007ffff7b1247d <+77>: mov 0x8(%rsp),%rcx
0x00007ffff7b12482 <+82>: mov (%rsp),%rax
0x00007ffff7b12486 <+86>: add $0x38,%rsp
0x00007ffff7b1248a <+90>: retq
End of assembler dump.
(gdb) p $rdi
$1 = 1
(gdb) p $rsp
$2 = (void *) 0x7fffffffded0
(gdb) p $rbp
$3 = (void *) 0x0
This is Ubuntu 12.10, libc6 2.15, gcc 4.7.2, and of course, it works with
gcc.
I'm not sure how to begin debugging it, since mcount was probably compiled
with gcc, but it looks like LLVM is generating the wrong call standard.
It only appears in -O1 upwards, but there's not stack trace, and I suspect
this is due to how the profiling instrumentation work... Any pointers?
cheers,
--renato
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130913/d362fdac/attachment.html>
More information about the llvm-dev
mailing list