Sourcery G++ supports the backtrace
function
from GLIBC.
Backtracing is supported regardless of optimization,
with or without a frame pointer, and in both ARM and Thumb modes.
In order to support backtracing, Sourcery G++ enables generation of
unwind tables by default when compiling.
These tables are used for any stack traversal, including
backtrace
, C++ exception handling, and POSIX
thread cancellation. Where none of these are required, you can
reduce application size by compiling with
-fno-unwind-tables
.
Some stand-alone programs, including bootloaders and the Linux
kernel, cannot be built with unwind tables. To accommodate
these programs, Sourcery G++ suppresses unwind tables
for C code if the -ffreestanding
option is used.
Unwind tables are also suppressed if
the -mabi
option is provided, as
this option is not generally used in user-space programs.
To override this behavior, specify -funwind-tables
on the arm-none-linux-gnueabi-gcc
command line.