首页 > 其他 > 详细

llvm JIT强制保留frame pointer(栈帧)

时间:2015-06-14 09:27:40      阅读:325      评论:0      收藏:0      [点我收藏+]


llvm JIT强制保留frame pointer(栈帧)

搬运自我的百度空间

不优化时,在每个函数开头都会把ebp入栈,这样可以方便调试时栈回溯(Stack Trace)等。push ebp的这个动作称为创建栈桢

但是llvm默认情况下,如果函数中没有alloca等栈操作,就会把栈桢动作优化掉(因为没有用到espebp),这样调试时无法回溯了。

解决办法:

在创建execution engine

EngineBuilder&eb= EngineBuilder(m);

                   TargetMachine* tm=eb.selectTarget();

                   tm->Options.NoFramePointerElim=1;

                   TheExecutionEngine=        eb.setErrorStr(&ErrStr).create(tm);

 

NoFramePointerElim这个选项设为1,阻止优化栈桢操作


2014-09-21

llvm JIT强制保留frame pointer(栈帧)

原文:http://blog.csdn.net/myjisgreat/article/details/46487045

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!