Fix incorrect backtrace unwinding through thread_start() on x86_64

Provide CFI for the outermost clone() to ensure proper unwinding stop
of gdb.
This commit is contained in:
Jan Kratochvil 2010-11-16 03:47:22 +01:00 committed by Petr Baudis
parent c8e6e9e783
commit fb8fb8464c
2 changed files with 6 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2006-11-30 Jan Kratochvil <jan.kratochvil@redhat.com>
[BZ #6693]
* sysdeps/unix/sysv/linux/x86_64/clone.S: Provide CFI for the outermost
`clone' function to ensure proper unwinding stop of gdb.
2010-05-31 Petr Baudis <pasky@suse.cz>
[BZ #11149]

View File

@ -89,9 +89,6 @@ L(pseudo_end):
ret
L(thread_start):
cfi_startproc;
/* Clearing frame pointer is insufficient, use CFI. */
cfi_undefined (rip);
/* Clear the frame pointer. The ABI suggests this be done, to mark
the outermost frame obviously. */
xorl %ebp, %ebp
@ -116,7 +113,6 @@ L(thread_start):
/* Call exit with return value from function call. */
movq %rax, %rdi
call HIDDEN_JUMPTARGET (_exit)
cfi_endproc;
cfi_startproc;
PSEUDO_END (BP_SYM (__clone))