[發明專利]一種基于Vxworks系統的動態鉤子函數實現方法在審
| 申請號: | 201910098588.1 | 申請日: | 2019-01-31 |
| 公開(公告)號: | CN109947414A | 公開(公告)日: | 2019-06-28 |
| 發明(設計)人: | 肖尚德;王軍 | 申請(專利權)人: | 蘇州德鉑思電子科技有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F9/445 |
| 代理公司: | 蘇州慧通知識產權代理事務所(普通合伙) 32239 | 代理人: | 丁秀華 |
| 地址: | 215000 江蘇省蘇州*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 鉤子函數 函數返回地址 指令 保存 跟蹤 退出 跳轉 返回地址 函數代碼 函數執行 返回 減去 寫回 靈活 | ||
本發明揭示了一種基于Vxworks系統的動態鉤子函數實現方法,包括以下步驟:S1:在被跟蹤函數代碼段找到保存和退出函數返回地址的指令,并保存保存和退出函數返回地址的指令;S2:將保存和退出函數返回地址的指令均修改為跳轉到鉤子函數地址的指令和NOP指令;S3:被跟蹤函數執行到保存或退出函數返回地址時,執行跳轉到鉤子函數地址的指令;S4:在鉤子函數返回到被跟蹤函數之前,將保存或退出函數返回地址的指令寫回被修改時的位置;S5:將鉤子函數的返回地址的值減去兩條指令的長度;S6:鉤子函數返回被跟蹤函數,繼續從保存或退出函數返回地址的指令開始執行被跟蹤函數。本發明的基于Vxworks系統的動態鉤子函數實現方法,使得跟蹤函數運行靈活、高效、方便。
技術領域
本發明涉及計算機技術領域,特別涉及一種基于Vxworks系統的動態鉤子函數實現方法。
背景技術
鉤子函數是Windows消息處理機制的一部分,通過設置“鉤子”,應用程序可以在系統級對所有消息、事件進行過濾,訪問在正常情況下無法訪問的消息。鉤子的本質是一段用以處理系統消息的程序,通過系統調用,把它掛入系統。有時,出于調試、性能優化和bug定位等原因,需要跟蹤某些函數的運行參數,如運行時間、調用次數、被中斷次數等等,需要分別在這些函數的入口和出口處加入統計函數,這個被其它函數調用來統計運行參數的函數稱為鉤子函數。
現有技術方案中,鉤子函數的添加方式都為靜態方式,這種方式需要事先確定需要跟蹤的函數,然后通過修改Makefile并實現相關的函數接口后重新編譯到版本里來實現這一功能。顯然,靜態鉤子函數的這種方案不靈活,被跟蹤的函數只能在編譯的時候確定,不能在程序運行時動態選擇跟蹤哪個函數,而需要被跟蹤的函數沒有被添加鉤子函數時需要重新修改代碼、編譯程序并燒寫到設備上,造成時間的耗費。
發明內容
本發明的目的在于針對現有技術中的上述缺陷,提供一種基于Vxworks系統的動態鉤子函數實現方法,使得跟蹤函數運行靈活、高效、方便。
為了實現上述發明目的,本發明采用了如下技術方案:
一種基于Vxworks系統的動態鉤子函數實現方法,其包括以下步驟:
S1:在被跟蹤函數代碼段的入口找到保存函數返回地址的指令,以及在出口找到退出函數返回指令,并保存所述保存函數返回地址的指令和退出函數返回地址的指令;
S2:將所述保存函數返回地址的指令和退出函數返回地址的指令均修改為跳轉到鉤子函數地址的指令和NOP指令;
S3:所述被跟蹤函數執行到保存函數返回地址或退出函數返回地址時,執行跳轉到鉤子函數地址的指令,調用鉤子函數;
S4:在所述鉤子函數返回到被跟蹤函數之前,將保存的保存函數返回地址的指令或退出函數返回地址的指令寫回被修改時的位置;
S5:將所述鉤子函數的返回地址的值減去兩條指令的長度;
S6:所述鉤子函數返回所述被跟蹤函數,繼續從所述保存函數返回地址的指令或退出函數返回地址的指令開始執行被跟蹤函數。
此外,本發明還包括如下附屬技術方案:
所述鉤子函數包括入口鉤子函數和出口鉤子函數,步驟S2的具體步驟為:將保存函數返回地址的指令修改為跳轉到入口鉤子函數地址的指令和一條NOP指令;將退出函數返回地址的指令修改為跳轉到出口鉤子函數地址的指令和一條NOP指令。
所述入口鉤子函數被調用時記錄當前被跟蹤函數運行信息,所述出口鉤子函數被調用時記錄當前被跟蹤函數運行信息,根據所述出口鉤子函數和所述入口鉤子函數記錄的運行信息統計所述被跟蹤函數運行信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇州德鉑思電子科技有限公司,未經蘇州德鉑思電子科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910098588.1/2.html,轉載請聲明來源鉆瓜專利網。





