[发明专利]一种基于Makefile自动编译技术实现的软件源文件静态分析方法有效
申请号: | 201510418857.X | 申请日: | 2015-07-16 |
公开(公告)号: | CN105094939B | 公开(公告)日: | 2018-05-01 |
发明(设计)人: | 蔡志旻;沈峰;朱敏杰;姚幸涛 | 申请(专利权)人: | 南京富士通南大软件技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 南京钟山专利代理有限公司32252 | 代理人: | 马晓辉 |
地址: | 210012 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 makefile 自动 编译 技术 实现 软件 源文件 静态 分析 方法 | ||
1.一种基于Makefile自动编译技术实现的软件源文件静态分析方法,其特征在于,包括以下步骤:
步骤一:调用Make工具对自动化编译所用的Makefile工程文件内容进行解析,获得待编译的源文件的编译命令行,截获该编译命令行,并暂停make的执行权;
步骤二:将截获的编译命令行格式化,将编译命令行分离成编译命令和编译选项;通过编译命令进行编译器匹配;能匹配到编译器的,解析编译命令行,获取静态分析命令行;不能匹配到编译器的,跳转步骤四;
步骤三:将执行权交给获取到的静态分析命令行,由静态分析命令行执行编译源文件的静态分析工作;静态分析完成后,将解析结果输出到log文件中,并将执行权限交还给Make;
步骤四:Make工具重新获得执行权限后,继续执行当前的编译命令行;
步骤五:当Make工具获取到下一条编译命令行时,则跳转到步骤一;否则,跳转到步骤六;
步骤六:将静态分析结果文件格式化成CSV格式;根据解析结果,将存在问题的解析项插入到对应源文件的对应位置;输出静态分析过程中存在问题的源文件列表。
2.根据权利要求1所述的一种基于Makefile自动编译技术实现的软件源文件静态分析方法,其特征在于,所述步骤一还包括以下步骤:
步骤1.1)在Make工具的job.c中的job_next_command()函数中,截取Make工具已
解析的Makefile中的编译命令行;
步骤1.2)调用system()函数,执行compilerControl.rb,调用形式为system(“compilerControl.rb编译命令行”);调用system()函数后,Make工具将执行权限交给compilerControl.rb。
3.根据权利要求1或2所述的一种基于Makefile自动编译技术实现的软件源文件静态分析方法,其特征在于,所述步骤二还包括以下步骤:
步骤2.1)compilerControl.rb获得执行权后,将截获的编译命令行进行格式化;
步骤2.2)从格式化后的编译命令行中提取编译命令,进行编译器匹配;若匹配到相应的编译器,则继续向下执行;若未匹配,则跳转到步骤四;
步骤2.3):根据匹配到的编译命令选择对应的pgr_fake脚本文件,该脚本文件的格式为pgr5_xxx;
步骤2.4):将编译命令行中的编译命令替换成对应的pgr_fake脚本;替换前后的编译命令行如下:替换前:“编译命令编译选项编译源文件”;替换后:“pgr5_xxx编译选项编译源文件”;
步骤2.5):调用system()函数执行步骤2.4中的替换后的编译命令行;该函数执行后,执行权交给pgr5_xxx执行。
4.根据权利要求1或2所述的一种基于Makefile自动编译技术实现的软件源文件静态分析方法,其特征在于,所述步骤三还包括以下步骤:
步骤3.1):获取系统宏定义;根据每种编译器获取系统宏定义的方式,获取相应的系统宏定义,并将其加入到静态分析选项中;
步骤3.2):获取系统头文件路径;根据每种编译器获取系统头文件路径的方式,获取系统头文件路径,并将其加入到静态分析选项中;
步骤3.3):解析编译选项,过滤掉静态分析不支持的,不必要的选项,将编译器特定的编译选项等效地转换成静态分析测试系统可识别的选项,将解析后的编译选项加入到静态分析选项中;
步骤3.4):将静态分析命令设定为pgr5,并与已获得的静态分析选项进行拼接,创建一个子进程执行拼接后的静态分析命令行;当前源文件的静态分析工作结束后,解析的log输出到指定的文件,并将执行权交还make工具。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京富士通南大软件技术有限公司,未经南京富士通南大软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510418857.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:分布式环境下虚拟机异常恢复方法
- 下一篇:一种软件升级方法及装置