[發明專利]一種基于擴展腳本的軟件斷點調試方法、裝置有效
| 申請號: | 202011599164.2 | 申請日: | 2020-12-29 |
| 公開(公告)號: | CN112612712B | 公開(公告)日: | 2022-08-12 |
| 發明(設計)人: | 蘇再添;黃志煒;孫善為 | 申請(專利權)人: | 廈門市美亞柏科信息股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/30 |
| 代理公司: | 廈門福貝知識產權代理事務所(普通合伙) 35235 | 代理人: | 陳遠洋 |
| 地址: | 361000 福建省廈門市思明*** | 國省代碼: | 福建;35 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 擴展 腳本 軟件 斷點 調試 方法 裝置 | ||
本發明提出了一種基于擴展腳本的軟件斷點調試方法及裝置,該方法包括:擴展腳本生成步驟,將編譯型語言編寫的軟件的一功能使用解釋語言編寫實現該功能的擴展腳本,并在該擴展腳本中添加調試錨點;轉換步驟,將所述功能涉及的編譯型語言編寫的軟件的鏈接庫轉換為解釋語言可調用的鏈接庫;調試步驟,通過調試器基于所述擴展腳本中添加調試錨點對軟件進行斷點調試。解決了現有技術中的軟件調試方法僅適用于開發環境的情況,無法在軟件運行的過程中對其進行調試的問題,實現了基于擴展腳本對運行中的軟件進行同步調試,且內存占用小,問題可以復現便于排查。
技術領域
本發明涉及計算機程序調試技術領域,具體涉及一種基于擴展腳本的軟件斷點調試方法、裝置。
背景技術
軟件是一系列按照特定順序組織的計算機數據和指令的集合,而軟件開發是指根據用戶需求建造出軟件系統或者系統中的軟件部分的過程,是一項包括需求捕捉、需求分析、設計、實現、調試和測試的系統工程。
在軟件開發及使用過程中,不可避免的會出現各種意料之外的軟件問題,現有的用于定位軟件問題的方法包括運行日志分析、內存DUMP分析和代碼單步調試。
上述定位軟件問題的缺陷在于:(1)運行日志需要將產生日志的調試指令通過硬編碼的方式預先寫入軟件程序的相應位置。通過硬編碼寫入的調試指令不易更改和刪除,且需要對寫入調試指令的軟件程序重新進行編譯、鏈接和運行,原先軟件錯誤的運行環境可能發生丟失/改變,使軟件錯誤不易復現。(2)內存DUMP分析需要將當前的整塊占用內存保存一份到磁盤上,每次分析都需要占用大量內存,并且分析結果是靜態的,若要查看動態數據,需要重復執行內存DUMP的步驟。(3)代碼調試需要擁有軟件全部代碼以及對應的開發環境,并且若軟件進行了加殼保護,代碼已被混淆或加密,無法進行單步調試。
此外,上述幾種軟件調試方法,都要求調試者具備軟件的相關代碼以及開發環境,比較常見的使用場景是在軟件開發階段,開發者自己排查已發現的問題時使用。這幾種方式并不適用于在軟件使用階段,需要在用戶運行環境上實時動態地調試軟件問題的場景,即現有技術中,更無法在軟件運行的同時進行調試工作。
發明內容
本發明針對上述現有技術中一個或多個技術缺陷,設計專門的方法以解決上述技術問題,并提出了如下技術方案。
一種基于擴展腳本的軟件斷點調試方法,該方法包括:
擴展腳本生成步驟,將編譯型語言編寫的軟件的一功能使用解釋語言編寫實現該功能的擴展腳本,并在該擴展腳本中添加調試錨點;
轉換步驟,將所述功能涉及的編譯型語言編寫的軟件的鏈接庫轉換為解釋語言可調用的鏈接庫;
調試步驟,通過調試器基于所述擴展腳本中添加調試錨點對軟件進行斷點調試。
更進一步地,所述編譯型語言為C++,所述解釋語言Python,所述調試器為Python調試器。
更進一步地,所述擴展腳本生成步驟的操作為:定義所述軟件的接口集合F={f1,f2,f3,…,fn-1,fn},其中f為細粒度的函數接口;擴展腳本的接口集合P={p1,p2,p3,…,pn-1,pn},p為擴展腳本的函數接口,其中pi和fi功能上對應,1≤i≤n;定義實現所述軟件的一功能所需的接口集合為S,且S∈P;基于所述S編寫實現所述功能的擴展腳本,并在擴展腳本的代碼入口處加上調試錨點X。
更進一步地,所述轉換步驟的操作為:將所述功能涉及的編譯型語言C++編寫的軟件的鏈接庫DLL轉換為解釋語言Python可調用的鏈接庫pyd。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廈門市美亞柏科信息股份有限公司,未經廈門市美亞柏科信息股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011599164.2/2.html,轉載請聲明來源鉆瓜專利網。





