[發明專利]一種源代碼檢查方法及裝置有效
| 申請號: | 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.szxzyx.cn/pat/books/201310203759.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:存儲器的訪問方法
- 下一篇:一種獲得硬件資源的方法及電子設備





