摘要
一个可执行程序在实际运行中可能包含复杂的函数调用和跳转,而这些函数又会使用不同大小的栈空间来保存一些临时变量。随着函数调用深度的增加,实际所占用的栈空间会越来越大且不可预测,可能造成栈空间溢出的情况发生。针对上述问题,提出自动计算函数调用关系及实际使用栈空间大小的技术,采用静态分析的方法收集ELF文件中的函数及指令信息,实验结果证明,该技术具有较好的实用性。
一个可执行程序在实际运行中可能包含复杂的函数调用和跳转,而这些函数又会使用不同大小的栈空间来保存一些临时变量。随着函数调用深度的增加,实际所占用的栈空间会越来越大且不可预测,可能造成栈空间溢出的情况发生。针对上述问题,提出自动计算函数调用关系及实际使用栈空间大小的技术,采用静态分析的方法收集ELF文件中的函数及指令信息,实验结果证明,该技术具有较好的实用性。
出处
《计算机工程》
CAS
CSCD
北大核心
2011年第S1期338-340,共3页
Computer Engineering
基金
工信部科技重大专项基金资助项目"支持国产CPU的编译系统及工具链"(2009ZX01036-001-001)
关键词
栈空间
ELF文件
静态分析
函数调用
编译优化工具
stack space
Executable and Linking Format(ELF) file
static analysis
function call
compiler optimization tool