]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix incorrect backtrace unwinding through thread_start() on x86_64 pasky/fixes-overdue
authorJan Kratochvil <jan.kratochvil@redhat.com>
Tue, 16 Nov 2010 02:47:22 +0000 (03:47 +0100)
committerPetr Baudis <pasky@suse.cz>
Tue, 16 Nov 2010 02:47:22 +0000 (03:47 +0100)
Provide CFI for the outermost clone() to ensure proper unwinding stop
of gdb.

ChangeLog
sysdeps/unix/sysv/linux/x86_64/clone.S

index c7174be1062854577cf7c1645539ed93e78e79a7..9f0a7a94c3166a4fa63fec4f643dc9f758622a44 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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]
index db42f209c9fe4e827a816b753adf5b57fdf8849a..8a12b09035eeece1f9bd41cdb5077216be92f326 100644 (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))