每个关键字都有一个小故事
#if defined(DEBUG_ASSERT)
#define STATIC
#else
#define STATIC static
#endif
backtrace()
Note that names of "static" functions
are not exposed, and won't be available in the backtrace.
These functions make some assumptions about how a function's return
address is stored on the stack. Note the following:
* Omission of the frame pointers (as implied by any of gcc(1)'s
nonzero optimization levels) may cause these assumptions to be
violated.
* Inlined functions do not have stack frames.
* Tail-call optimization causes one stack frame to replace another.
The symbol names may be unavailable without the use of special linker
options. For systems using the GNU linker, it is necessary to use
the -rdynamic linker option. Note that names of "static" functions
are not exposed, and won't be available in the backtrace.
阅读(784) | 评论(0) | 转发(0) |