Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于LLVM的变量类型信息修复与比较方法及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:浙江大学

摘要:本发明公开了一种基于LLVM的变量类型信息修复与比较方法和系统,包括变量类型信息修复分析和变量类型比较分析;其中变量类型信息修复分析包括将目标程序源代码编译到LLVMIR、目标变量提取、LLVMIR变量类型与源代码信息匹配、类型分析结果存储。变量类型信息修复分析和变量类型比较分析通过两个的LLVM分析流实现,且变量类型比较分析结果应用了变量类型信息修复分析结果。该方法和系统可以解决前LLVMIR中存在类型信息缺失和或联合体类型相关类型导致无法进行类型比较分析以及比较分析不准确的问题。

主权项:1.一种基于LLVM的变量类型信息修复与比较方法,其特征在于,包括以下步骤:步骤1,获取并编译目标程序源代码为带有调试信息的LLVM中间表示;步骤2,从LLVM中间表示中提取目标变量,其中,目标变量包括与分析任务相关,且涉及类型信息缺失的结构体或类型为联合体类型的结构体;步骤3,依据调试信息获取目标变量包含的结构体及其中间表示类型在目标程序源代码中对应的源码结构体及其源码定义类型,比较分析结构体的中间表示类型与对应源码结构体的源码定义类型,输出比较结果为不一致的结构体与对应的源码结构体,组成的结构体对;步骤4,针对每个结构体对,利用源码结构体的源码定义类型进行变量类型信息修复并存储于修复数据库;步骤5,在对待比较分析的两个变量进行中间表示类型比较分析时,调用修复数据库中存储的结构体信息对结构体进行缺失类型信息修复后,再进行变量中间表示类型比较分析,包括:步骤5-1,上层程序分析任务在目标程序源代码对应的LLVM中间表示提取待分析比较的两个变量的中间表示类型;步骤5-2,调用LLVM分析框架自带的类型比较方法对两个变量的中间表示类型进行比较分析,若比较结果一致,则输出比较结果,若不一致,则执行步骤5-3;步骤5-3,判断中间表示类型包括结构体类型时,如果两个结构体类型的类型名信息均为非空,则将结构体类型名称中的.struct去掉后,进行结构体类型名信息比较,如果比较结果一致,则输出比较结果;如果存在结构体类型的类型信息为空,则执行步骤5-4;步骤5-4,针对类型信息为空的结构体类型,从修复数据库中查询结构体信息,如果找不到与类型信息为空的结构体类型对应的结构体信息,则认为比较结果不一致并输出;如果能找到与类型信息为空的结构体类型对应的结构体信息,则执行步骤5-5;步骤5-5,判断调用的结构体信息包含的类型信息为自定义字符串,则认为比较结果为未知并输出,判断调用的结构体信息包含的类型信息为非自定义字符串,则将该类型信息作为类型名信息为空的结构体类型的类型名信息后,进行结构体类型名信息比较,并输出比较结果。

全文数据:

权利要求:

百度查询: 浙江大学 一种基于LLVM的变量类型信息修复与比较方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。