-fno-omit-frame-pointer may be what I want, since the programs are running in a native embeded system without glibc. I have read the gcc manual and noticed the option -fomit-frame-pointer. But the manual says nothing about -fno-omit-frame-pointer. Is it a default convention that each -fxxx option has a -fno-xxx counterpart? ---------------------------------------------------------- Andrew Haley wrote: > PRC writes: > > > Gcc saves the frame pointer to fp(s8) register at the beginning of > > each function if compiling source with -O0. But it won't do so if > > compiling source with -O2. Without frame pointers, can I trace back > > call stacks in current function context? Or is there any option > > which forces gcc to save frame pointers for MIPS arch? > > You need to use the unwinder. > > For that to work, you must compile all the code with -fexceptions. You could also try compiling all the code with -fno-omit-framepointer and writing your own unwinder. I posted such an unwinder to java-patches@xxxxxxxxxxx several years ago. Later versions of GCC are starting to do optimizations in the function prolog that make unwinding without the unwinder meta-data very difficult. David Daney