155 kamil@chieftec /tmp $ gcc -fomit-frame-pointer -O3 test.c -lexecinfo -m32 156 kamil@chieftec /tmp $ ./a.out ^Cx 2 Backtrace 6 stack frames. 0x8048972 at ./a.out 0xfbd93010 <__sigtramp_siginfo_2> at /usr/lib/i386/libc.so.12 0x804899e at ./a.out 0x80489a5 at ./a.out 0x80489aa at ./a.out 0x80489de <__x86.get_pc_thunk.ax> at ./a.out ^\Quit (core dumped) 157 kamil@chieftec /tmp $ cat test.c #include #include #include #include static void handler(int s) { printf("x %d\n", s); void *array[10]; size_t size = backtrace (array, 10); printf ("Backtrace %zd stack frames.\n", size); backtrace_symbols_fd (array, size, 2); } __attribute__ ((noinline)) int run1(void) { for (;;) continue; } __attribute__ ((noinline)) int run2(void) { run1(); } __attribute__ ((noinline)) int run3(void) { run2(); } int main(int argc, char **argv) { signal(SIGINT, handler); run3(); return 0; }