dsu之二

继续考虑动态更新。想想看能不能用代码插装(code instrumentation)的办法解决?看到了很多实现,有John Panzer的99年(!)在C/C++ Users Journal发表的Automatic Code Instrumentation。里面用到了vc编译器的一个特性,打开-Gh开关后可以插入一个_penter函数,然后通过_penter可以做出自己的_pexit,这样就可以在进入和退出函数时插入代码。因为代码插装通常都用在性能分析中,所以可以加上计时的代码。动态更新不用这么麻烦,只要插入引用计数代码就可以了。可惜——,diab编译器里没有这个功能,文档里说可以打开开关,控制在函数的前后分别加上填充了NOP的prolog和epilog,“以便模拟器使用”,但是我真的拿这些NOP没办法。又找到一个可以在powerpc上跑的开源性能分析器,可是在看了德国佬的小论文后我觉得我们的解决方案及时实现了也可能很笨拙。而我们见到过一篇重量级完美解决方案,可是包括老师在内都没下定决心使用,因为实在太重了。我们想用轻量级的办法解决。

Automatic Code Instrumentation里的方法可以在vc2005上使用,如果以后有需求可以用,做个标记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值