[发明专利]用于控制流分析的方法和装置有效
申请号: | 201110461369.9 | 申请日: | 2011-12-30 |
公开(公告)号: | CN103186406A | 公开(公告)日: | 2013-07-03 |
发明(设计)人: | 刘峰;梁祺;陈沁悦;林鸿昌 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 高青 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 控制 分析 方法 装置 | ||
1.一种用于控制流分析的方法,该方法包括:
获取程序的原始函数调用树,其中所述原始函数调用树的节点表示函数,节点之间的父子关系表示调用关系;
根据所述调用关系生成对应的函数支配树,其中函数支配树的节点表示函数,节点之间的父子关系表示支配关系,其中如果对第二函数的调用都由第一函数发起,则第一函数支配第二函数;
根据所述函数支配树对所述原始函数调用树进行简化从而得到简化函数调用树。
2.如权利要求1所述的方法,其中根据所述调用关系生成对应的函数支配树包括:
将所述原始函数调用树转换成函数调用有向图;和
将函数调用有向图转换成函数支配树。
3.如权利要求1所述的方法,其中根据所述函数支配树对所述原始函数调用树进行简化从而得到简化函数调用树包括:
根据所述函数支配树,识别基本函数包的入口函数;和
从所述原始函数调用树中移除所述入口函数对应的节点的子节点,从而得到简化函数调用树。
4.如权利要求3所述的方法,其中根据所述函数支配树识别基本函数包的入口函数所对应的节点包括:
在所述函数支配树中识别强支配者函数,其中所述强支配者函数被多个其他函数调用,并且没有任何其他强支配者函数支配所述多个其他函数的全部;
将所述强支配者函数作为所述入口函数。
5.如权利要求1所述的方法,进一步包括:
根据过滤标准对所述简化函数调用树进行过滤。
6.一种用于控制流分析的设备,该设备包括:
获取装置,配置为获取程序的原始函数调用树,其中所述原始函数调用树的节点表示函数,节点之间的父子关系表示调用关系;
生成装置,配置为根据所述调用关系生成对应的函数支配树,其中函数支配树的节点表示函数,节点之间的父子关系表示支配关系,其中如果对第二函数的调用都由第一函数发起,则第一函数支配第二函数;
简化装置,配置为根据所述函数支配树对所述原始函数调用树进行简化从而得到简化函数调用树。
7.如权利要求6所述的设备,其中所述生成装置包括:
配置为将所述原始函数调用树转换成函数调用有向图的装置;和
配置为将函数调用有向图转换成函数支配树的装置。
8.如权利要求6所述的设备,其中所述简化装置包括:
配置为根据所述函数支配树,识别基本函数包的入口函数的装置;和
配置为从所述原始函数调用树中移除所述入口函数对应的节点的子节点,从而得到简化函数调用树的装置。
9.如权利要求8所述的设备,其中根据所述函数支配树识别基本函数包的入口函数所对应的节点包括:
配置为在所述函数支配树中识别强支配者函数的装置,其中所述强支配者函数被多个其他函数调用,并且没有任何其他强支配者函数支配所述多个其他函数的全部;
配置为将所述强支配者函数作为所述入口函数的装置。
10.如权利要求6所述的设备,进一步包括:
配置为根据过滤标准对所述简化函数调用树进行过滤的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110461369.9/1.html,转载请声明来源钻瓜专利网。