[發明專利]一種內核態程序的斷點處理方法及裝置在審
| 申請號: | 201911141042.6 | 申請日: | 2019-11-20 |
| 公開(公告)號: | CN110955598A | 公開(公告)日: | 2020-04-03 |
| 發明(設計)人: | 曲博 | 申請(專利權)人: | 杭州迪普科技股份有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京博思佳知識產權代理有限公司 11415 | 代理人: | 王茹 |
| 地址: | 310051 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內核 程序 斷點 處理 方法 裝置 | ||
本申請提供一種內核態程序的斷點處理方法及裝置,該方法可以包括:運行內核態程序,所述內核態程序中位于第一地址的第一指令被替換為第一斷點觸發指令,所述第一地址和所述第一指令被關聯記錄于斷點表的斷點表項中;在所述內核態程序執行到所述第一斷點觸發指令的情況下,從所述斷點表項中提取所述第一指令;將所述內核態程序中的所述第一斷點觸發指令恢復為所述第一指令;根據用戶發出的后續操作信號,刪除所述斷點表項或從所述第一指令處繼續執行所述內核態程序。通過本申請的技術方案,無需額外硬件即可根據調試需要對內核態程序進行斷點設置與處理,既降低了調試成本又便于操作,同時提高了用戶的調試效率。
技術領域
本申請涉及嵌入式系統技術領域,尤其涉及一種內核態程序的斷點處理方法及裝置。
背景技術
在運行基于ARMv8指令集架構的Linux操作系統的電子設備中,各類應用程序一般要調用內核態程序及資源才能實現預期功能。在這類電子設備內核態程序的開發調試過程中,通常需要對內核態程序設置斷點以便檢查程序運行的中間狀態。
在相關技術中,通常采用基于JTAG(Joint Test Action Group,聯合測試工作組)接口的硬件仿真器進行斷點設置:使用專用的硬件仿真器,將運行IDE(IntegratedDevelopment Environment,集成開發環境)的調試主機與待調試的電子設備相連接,用上述調試主機控制設置斷點并進行程序調試;或利用CPU(central processing unit,中央處理器)內置的硬件斷點功能:待調試電子設備的CPU通常具有內置的硬件斷點資源供用戶使用。
然而,一方面,采用基于JTAG接口的硬件仿真器,不僅仿真器硬件及調試主機等額外設備會增加調試成本,而且還要在待調試電子設備上預留專用接口,導致使用不便;另一方面,CPU內置的硬件斷點資源數量有限且形式固定,常常無法滿足調試需求;因此,相關技術中的斷點處理方法普遍效率較低。
發明內容
有鑒于此,本申請提供一種內核態程序的斷點處理方法及裝置,以在降低調試成本的同時提高斷點設置的靈活性,最終提高斷點處理效率。
為實現上述目的,本申請提供技術方案如下:
根據本申請的第一方面,提出了一種內核態程序的斷點處理方法,應用于運行Linux操作系統的電子設備,所述方法包括:
運行內核態程序,所述內核態程序中位于第一地址的第一指令被替換為第一斷點觸發指令,所述第一地址和所述第一指令被關聯記錄于斷點表的斷點表項中;
在所述內核態程序執行到所述第一斷點觸發指令的情況下,從所述斷點表項中提取所述第一指令;
將所述內核態程序中的所述第一斷點觸發指令恢復為所述第一指令;
根據用戶發出的后續操作信號,刪除所述斷點表項或從所述第一指令處繼續執行所述內核態程序。
根據本申請的第二方面,提出了一種內核態程序的斷點處理方法,應用于運行Linux操作系統的電子設備,所述方法包括:
在內核態程序運行狀態下,讀取接收的斷點設置信號所對應第一地址處的第一指令;
將所述第一地址和所述第一指令關聯記錄于斷點表的斷點表項中;
將所述第一指令替換為第一斷點觸發指令,以在內核態程序執行到所述第一斷點觸發指令的情況下,由所述第一斷點觸發指令觸發CPU異常,并基于所述斷點表項將所述第一斷點觸發指令恢復為所述第一指令。
根據本申請的第三方面,提出了一種內核態程序的斷點處理裝置,應用于運行Linux操作系統的電子設備,所述裝置包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州迪普科技股份有限公司,未經杭州迪普科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911141042.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種柴油機排氣顆粒物取樣封存系統及方法
- 下一篇:一種園林花圃修剪裝置





