Re: [OT] backtrace

Keith Owens (kaos@sgi.com)
Thu, 03 Oct 2002 19:38:09 +1000


On Thu, 03 Oct 2002 09:31:06 +0100,
Padraig Brady <padraig.brady@corvil.com> wrote:
>Sorry to go off topic but this tip is just too useful IMHO.
>You can do the same in userspace with glibc. Details here:
>http://www.iol.ie/~padraiga/backtrace.c

info libc, /backtrace.

Note that certain compiler optimisations may interfere with
obtaining a valid backtrace. Function inlining causes the inlined
function to not have a stack frame; tail call optimisation
replaces one stack frame with another; frame pointer elimination
will stop `backtrace' from interpreting the stack contents
correctly.

Most architectures compile with -fomit-frame-pointer (except for ARM
where RMK does it differently). Neither gdb not glibc can cope with
kernel code built with -fomit-frame-pointer. See the horrible
heuristics kdb has to apply to get any sort of backtrace on i386.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/