This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Unwinding CFI stop at the outermost clone()


Hi,

currently (on x86_64) the gdb backtrace shows:

#2  0x0000000000400b65 in makeSyscall (ignored=0x0) at threadcrash.c:142
#3  0x00000036ddb0610a in start_thread () from /lib64/tls/libpthread.so.0
#4  0x00000036dd0c68c3 in clone () from /lib64/tls/libc.so.6
#5  0x0000000000000000 in ?? ()

Currently it relies only on clearing %rbp (0x0000000000000000 above is
unrelated to it, it got read from uninitialized memory).

http://sourceware.org/ml/gdb/2004-08/msg00060.html suggests 0x0 should be
enough for a debugger without CFI to stop unwinding, still it is a heuristic.

Provided proper CFI. GDB should also get fixed for the unCFIed functions.


Regards,
Jan

Attachment: glibc-clone-outermost.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]