每次函数调用发生的时候,都会执行保护现场寄存器、参数压栈、为被调用的函数创建堆栈这几个对堆栈的操作,它们都使堆栈增长。每次函数返回则是恢复现场,使堆栈减小。我们把函数返回过程中恢复现场的过程称为unwinding stack.
The exception-handling index tables generated by the compiler are given the section name .ARM.exidx
. For more information, please see the .
At link time these tables must be placed in the same execution
region and be contiguous. If a user explicitly places these sections
non-contiguously using specific selector patterns in their
scatter-loading description file, then this error message is likely to
occur.
The runtime environment must ensure a stack unwind cannot proceed beyond the valid stack region, possibly by marking the caller of main() as EXIDX_CANTUNWIND.
.ARM.exidx names a section that contains index entries for section unwinding.
#ifdef __LEAVE_EQUALS_THROW__
asm(".word .ARM.exidx$$Base"); /* index table base */
asm(".word .ARM.exidx$$Limit"); /* index table limit */
#endif
阅读(899) | 评论(0) | 转发(0) |