[发明专利]一种源代码检查方法及装置有效
| 申请号: | 201310203759.5 | 申请日: | 2013-05-28 |
| 公开(公告)号: | CN103294598A | 公开(公告)日: | 2013-09-11 |
| 发明(设计)人: | 张东杰 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/45 |
| 代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 源代码 检查 方法 装置 | ||
技术领域
本发明涉及通信领域,尤其涉及一种代码检查方法及装置。
背景技术
在计算机系统中,通常以字节为单位来对数据进行存储,每个地址单元对应存储一个字节,字节序是指多字节数据在计算机内存或网络传输时各字节的存储顺序。在现有技术中字节序存在两种模式:小端模式和大端模式,其中小端模式是指数据的高位存储在内存地址的高位,数据的低位存储在内存地址的低位,反之则为大端模式。
网络序是指通信双方在网络通信时所使用的字节序,传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,TCP/IP)规定网络序采用大端模式。主机序是指计算机进行本地处理时使用的字节序,不同的操作系统采用的字节序模式不同,如Windows等操作系统采用小端模式,Solaris等操作系统采用大端模式。因此在网络序与主机序采用的字节序模式不一致、或者中央处理机(Central Processing Unit,CPU)与数字信号处理器(Digital Signal Processor,DSP)采用的字节序模式不一致、或者采用不同字节序模式的芯片混用等场景中,需要进行字节序转换,转换之前首先要做的就是在源代码中找出存在字节序问题的代码。现有技术中提供三种查找存在字节序问题的代码的方法,第一种是由人工查找,第二种是通过Intel编译器字节转换工具查找,第三种是基于C++操作符重载查找。
现有技术中至少存在如下问题:采用人工进行查找时工作量很大且很容易遗漏,并且若发生字节序问题,很难找出发生字节序问题地方,且花费时间长;Intel编译器字节转换工具只适用于Intel处理器,且只能将大端模式的字节序转换为小端模式的字节序,并只能处理初始化的变量等简单的场景,无法解决复杂的网络序与主机序不一致,尤其是通信系统中收发消息包多层次字节序转换的场景;基于C++操作符重载的方法仅适用于C++代码,对于其他无法重载操作符的编程语言并不适用。
发明内容
本发明的实施例提供一种源代码检查方法及装置,减少人工检查的工作量,并大大减小代码出现问题的可能性,且适用于所有编程语言。
为达到上述目的,本发明的实施例采用如下技术方案:
本发明的第一方面,提供一种源代码检查方法,包括:
对属性信息进行格式转换;
根据参数信息,解析源代码获得语法树;
根据所述属性信息和所述参数信息对所述语法树进行数据流分析,并对属性与所述属性信息不相符的代码提示告警;
其中,所述参数信息中包含用于解析所述源代码所需的信息、用于进行所述数据流分析所需的信息。
结合第一方面,在一种可能的实现方式中,所述属性信息以注释的形式预先配置在所述源代码中,所述语法树中包含所述属性信息;
所述对属性信息进行格式转换,包括:
对所述源代码中以注释形式存在的所述属性信息进行格式转换;
在所述对属性信息进行格式转换之前,还包括:
对命令行参数和配置文件进行解析获得所述参数信息。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述属性信息预先配置在config文件中;
在所述对属性信息进行格式转换之前,还包括:
对所述config文件进行解析获得所述属性信息;
对命令行参数和配置文件进行解析获得所述参数信息;
在所述根据参数信息,解析源代码获得语法树之后,还包括:
将所述属性信息添加到所述语法树中。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述对属性信息进行格式转换之后,还包括:
将所述源代码中与所述属性信息相关的宏替换为预设的转换函数。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述根据参数信息,解析源代码获得语法树之后,还包括:
将所述语法树以中间文件的形式进行存储;
所述根据所述属性信息和所述参数信息对所述语法树进行数据流分析,并对属性与所述属性信息不相符的代码提示告警,包括:
根据所述属性信息和所述参数信息对所述中间文件进行数据流分析,并对属性与所述属性信息不相符的代码提示告警。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据所述属性信息和所述参数信息对所述中间文件进行数据流分析,并对属性与所述属性信息不相符的代码提示告警,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310203759.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:存储器的访问方法
- 下一篇:一种获得硬件资源的方法及电子设备





