[發明專利]補丁程序編譯方法、程序修補方法及相關設備在審
| 申請號: | 202110794690.2 | 申請日: | 2021-07-14 |
| 公開(公告)號: | CN113504934A | 公開(公告)日: | 2021-10-15 |
| 發明(設計)人: | 劉長琦 | 申請(專利權)人: | 安徽聆思智能科技有限公司;上海聆芯科技有限公司 |
| 主分類號: | G06F8/658 | 分類號: | G06F8/658;G06F8/41 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 張影 |
| 地址: | 230601 安徽省合肥市經濟技術開*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 補丁 程序 編譯 方法 修補 相關 設備 | ||
本申請提出一種補丁程序編譯方法、程序修補方法及相關設備,該補丁程序編譯方法包括:獲取目標符號信息,所述目標符號信息中包含目標程序中的函數的名稱信息和地址信息,和/或包含目標程序中的變量的名稱信息和地址信息;對補丁程序進行編譯處理,所述補丁程序中包含調用所述目標程序中的函數的程序代碼,和/或包含引用所述目標程序中的變量的程序代碼;根據所述目標符號信息,對編譯后的所述補丁程序進行鏈接處理,使所述補丁程序鏈接至所述目標程序中的函數和/或變量。通過執行上述技術方案,可以使補丁程序調用原程序中的函數或引用原程序的變量,從而提升補丁編譯效率以及提升軟件程序修補效率。
技術領域
本申請涉及軟件技術領域,尤其涉及一種補丁程序編譯方法及裝置、一種程序修補方法及裝置、電子設備、存儲介質。
背景技術
軟件打補丁是常見的軟件程序修補和升級方法。為便于軟件程序的修補和升級,在軟件程序內部預留補丁點,當需要對軟件程序進行修補或升級時,通過補丁點調用補丁程序即可。
通常情況下,補丁程序是與待修補的軟件程序相關的程序,補丁程序中的某些功能需要依托原軟件程序中已有的函數或變量而實現,但是,原軟件程序與補丁程序是分別獨立編寫并且各自分別進行編譯鏈接得到的,補丁程序無法調用原軟件程序中的函數,從而在補丁程序中不得不重新實現原軟件程序中已有的函數或變量,由此導致補丁程序代碼量較大,嚴重影響補丁程序編譯效率以及軟件程序修補效率。
發明內容
基于上述技術現狀,本申請提出一種補丁程序編譯方法及裝置、一種程序修補方法及裝置、電子設備、存儲介質,可以使得補丁程序能夠調用原程序中的函數或引用原程序中的變量,從而提升補丁編譯效率以及提升軟件程序修補效率。
為了實現上述目的,本申請具體提出如下技術方案:
一種補丁程序編譯方法,包括:
獲取目標符號信息,所述目標符號信息中包含目標程序中的函數的名稱信息和地址信息,和/或包含目標程序中的變量的名稱信息和地址信息;
對補丁程序進行編譯處理,所述補丁程序中包含調用所述目標程序中的函數的程序代碼,和/或包含引用所述目標程序中的變量的程序代碼;
根據所述目標符號信息,對編譯后的所述補丁程序進行鏈接處理,使所述補丁程序鏈接至所述目標程序中的函數和/或變量。
可選的,所述補丁程序中包括程序初始化函數,用于對所述補丁程序進行初始化,以及將所述補丁程序中的函數地址與所述目標程序中的待修補函數的函數指針變量綁定。
可選的,所述獲取目標符號信息,包括:
從目標程序的編譯結果中獲取目標程序的符號文件,所述符號文件中至少包括所述目標程序中的各個函數和/或變量的名稱,以及各個函數和/或變量的地址;
根據所述符號文件,生成目標符號信息。
可選的,根據所述目標符號信息,對編譯后的所述補丁程序進行鏈接處理,包括:
利用所述目標符號信息,對所述補丁程序的鏈接腳本文件進行更新;
利用更新后的鏈接腳本文件,對編譯后的所述補丁程序進行鏈接處理。
一種程序修補方法,包括:
當目標程序啟動運行時,判斷設定存儲地址是否存儲有效的目標補丁程序;
其中,所述目標補丁程序中包含調用所述目標程序中的函數的程序代碼,和/或包含引用所述目標程序中的變量的程序代碼,并且,所述目標補丁程序根據目標符號信息進行鏈接處理得到,所述目標符號信息中包含所述目標程序中的函數的名稱信息和地址信息,和/或包含所述目標程序中的變量的名稱信息和地址信息;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于安徽聆思智能科技有限公司;上海聆芯科技有限公司,未經安徽聆思智能科技有限公司;上海聆芯科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110794690.2/2.html,轉載請聲明來源鉆瓜專利網。





