Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1563758
  • 博文数量: 237
  • 博客积分: 5139
  • 博客等级: 大校
  • 技术积分: 2751
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 14:48
文章分类

全部博文(237)

文章存档

2016年(1)

2012年(4)

2011年(120)

2010年(36)

2009年(64)

2008年(12)

分类: C/C++

2010-09-17 10:48:36

每次函数调用发生的时候,都会执行保护现场寄存器、参数压栈、为被调用的函数创建堆栈这几个对堆栈的操作,它们都使堆栈增长。每次函数返回则是恢复现场,使堆栈减小。我们把函数返回过程中恢复现场的过程称为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) |
给主人留下些什么吧!~~