[發明專利]一種實現編譯器錯誤的自動定位方法和裝置有效
| 申請號: | 201010508986.5 | 申請日: | 2010-10-13 |
| 公開(公告)號: | CN102446134A | 公開(公告)日: | 2012-05-09 |
| 發明(設計)人: | 漆鋒濱;李中升;白書敬;姜軍;張海軍;王超 | 申請(專利權)人: | 無錫江南計算技術研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 逯長明;王寶筠 |
| 地址: | 214083 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 實現 編譯器 錯誤 自動 定位 方法 裝置 | ||
1.一種實現編譯器錯誤的自動定位方法,其特征在于,所述方法包括:
利用編譯器編譯可執行程序的源文件,包括:分別用標準的編譯器生成正確的第一可執行碼,用待定位錯誤的編譯器生成第二可執行碼;
利用程序加載工具讀入所述第一可執行碼和第二可執行碼,完成對應所述第一可執行碼的第一可執行程序及對應所述第二可執行碼的第二可執行程序的運行,將第二可執行程序中使用的全局數據映射到第一可執行程序的地址空間;
利用所述程序加載工具分別從第一可執行程序和第二可執行程序中選取函數,利用二分法和替代法定位實現對第二可執行程序中錯誤函數的定位,所述替代法包括基于第二可執行程序中使用的全局數據與第一可執行程序的地址空間的映射關系,以第二可執行程序中的函數替代第一可執行程序中的相應函數。
2.根據權利要求1所述的實現編譯器錯誤的自動定位方法,其特征在于,利用所述程序加載工具根據可執行程序的格式讀入可執行碼,按照可執行程序指定的地址空間申請相應的運行空間,并將相應的讀入內容寫入所述運行空間。
3.根據權利要求2所述的實現編譯器錯誤的自動定位方法,其特征在于,所述自動定位方法還包括:
在將相應的讀入內容寫入所述地址空間后,利用所述程序加載工具修改所述運行空間中的內容,實現對可執行程序的執行控制;
修改完成后轉入所述可執行程序的入口函數,再次啟動所述可執行程序的運行。
4.根據權利要求2所述的實現編譯器錯誤的自動定位方法,其特征在于,所述第一可執行程序和第二可執行程序分別運行的運行空間不同,運行所述第一可執行程序和第二可執行程序的運行空間與所述程序加載工具的地址空間也不同。
5.根據權利要求4所述的實現編譯器錯誤的自動定位方法,其特征在于,實現所述第一可執行碼和第二可執行碼分別運行的運行空間不同的方式包括:
通過不同的鏈接腳本實現,在鏈接腳本中指定對應可執行碼的可執行程序對應的靜態空間的起始地址。
6.根據權利要求1所述的實現編譯器錯誤的自動定位方法,其特征在于,所述將第二可執行程序中使用的全局數據映射到第一可執行程序的地址空間,包括:
將第二可執行程序的全局偏移表中的地址改為第一可執行程序中對應的運行地址數據;
遍歷第二可執行程序中的重定位信息,將涉及到全局符號地址重定位的地址數據修改為第一可執行程序對應的運行地址數據。
7.根據權利要求1所述的實現編譯器錯誤的自動定位方法,其特征在于,利用所述程序加載工具控制從第一可執行程序和第二可執行程序中選取函數,利用二分法和替代法定位實現對第二可執行程序中錯誤函數的定位,具體包括:
4-1、由程序加載工具統計第一可執行程序和第二可執行程序中包含的函數數量,將所有函數分別按在第一可執行程序和第二可執行程序中的地址順序排序,將考察排序范圍的最低點的值設為1,對應于第一個函數;將最高點的值設置為所述出錯的可執行程序中的函數總個數,對應于最后一個函數;將最高點和最低點的中間值設置為中間點的值,對應于位于第一個和最后一個函數中間的函數;
4-2、判斷最低點的值是否小于最高點的值與1的差值;
如果否,則將第一可執行程序中最低點對應的函數替換為第二可執行碼中最低點對應的函數,利用程序加載工具控制完成替換后的第一可執行程序運行;如果運行出現錯誤,則第二可執行碼中最低點的函數就是所求錯誤函數;如果運行正確,則第二可執行碼中最高點函數為所求錯誤函數;
如果是,則將第一可執行程序中最低點與中間點之間的函數替換為第二可執行碼中的函數,利用程序加載工具控制完成替換后的第一可執行程序運行,如果運行結果正確,則轉入步驟4-3;否則,轉入步驟4-4;
4-3、將原中間點的值賦給最低點,并根據原最高點的值和新的最低點的值重新計算中間點的值,然后按照步驟4-2對重新確定的最低點和原最高點間的函數進行判斷;
4-4、將原中間點的值賦給最高點,并根據原最低點的值和新的最高點的值重新計算中間點的值,然后按照步驟4-2對原最低點和重新確定的最高點間的函數進行判斷。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于無錫江南計算技術研究所,未經無錫江南計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010508986.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種音頻功率放大模塊
- 下一篇:對位調整裝置及衛星天線





