[發明專利]函數調用信息的獲取方法及裝置、測試設備有效
| 申請號: | 201610825962.X | 申請日: | 2016-09-14 |
| 公開(公告)號: | CN106649084B | 公開(公告)日: | 2019-05-24 |
| 發明(設計)人: | 黃柳優;李源純;姜潤知;王鵬;魏學峰 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 董文倩;褚敏 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 函數 調用 信息 獲取 方法 裝置 測試 設備 | ||
1.一種函數調用信息的獲取方法,其特征在于,包括:
在運行待測試的程序的過程中,對所述程序中待調用的托管函數進行編譯,得到非托管函數,其中,所述非托管函數被允許直接運行在中央處理器CPU上;
對所述非托管函數進行鉤子hook操作,得到第一函數調用信息,其中,所述hook操作用于監控所述非托管函數在運行時的參數和返回值,所述第一函數調用信息至少包括:函數進入時間、函數退出時間,函數返回值;
根據所述第一函數調用信息和所述托管函數的函數名生成第二函數調用信息,其中,所述第二函數調用信息中包括具有對應關系的所述托管函數的函數名、函數進入時間、函數退出時間,函數返回值;
輸出所述第二函數調用信息;
其中,對所述程序中待調用的托管函數進行編譯,得到非托管函數包括:對所述程序中所有待調用的托管函數進行編譯,得到對應的非托管函數。
2.根據權利要求1所述的方法,其特征在于,在對所述非托管函數進行鉤子hook操作之后,且在根據所述第一函數調用信息和所述托管函數的函數名生成第二函數調用信息之前,還包括:
根據預先建立的對應關系獲取與所述非托管函數的第一函數指針對應的所述托管函數的第二函數指針;
通過所述第二函數指針查找到所述托管函數的所述函數名。
3.根據權利要求2所述的方法,其特征在于,在對所述非托管函數進行鉤子hook操作之后,且在根據預先建立的對應關系獲取與所述非托管函數的第一函數指針對應的所述托管函數的第二函數指針之前,還包括:
通過執行所述hook操作得到的返回地址獲取所述非托管函數的匯編代碼;
根據所述匯編代碼獲取所述非托管函數的第一函數指針。
4.根據權利要求2所述的方法,其特征在于,在對所述程序中待調用的托管函數進行編譯之后,且在根據預先建立的對應關系獲取與所述非托管函數的第一函數指針對應的所述托管函數的第二函數指針之前,還包括:
建立所述非托管函數的第一函數指針與所述托管函數的第二函數指針之間的所述對應關系,其中,進行所述編譯所需的參數包括所述托管函數的第二函數指針,進行所述編譯之后所得到的返回值包括所述非托管函數的第一函數指針。
5.根據權利要求1至4中任一項所述的方法,其特征在于,對所述非托管函數進行鉤子hook操作,得到第一函數調用信息包括:
使用預先定義的hook函數對非托管函數進行所述hook操作,其中,所述預先定義的hook函數輸入參數包括:需要被hook操作的參數,所述預先定義的hook函數輸出參數包括:所述托管函數在運行時的參數和返回值,所述預先定義的hook函數,用于監控所述非托管函數在運行時的參數和返回值。
6.一種函數調用信息的獲取裝置,其特征在于,包括:
編譯單元,用于在運行待測試的程序的過程中,對所述程序中待調用的托管函數進行編譯;
第一確定單元,用于對所述托管函數編譯后得到非托管函數,其中,所述非托管函數被允許直接運行在中央處理器CPU上;
第二確定單元,用于對所述非托管函數進行鉤子hook操作,得到第一函數調用信息,其中,所述hook操作用于監控所述非托管函數在運行時的參數和返回值,所述第一函數調用信息至少包括:函數進入時間、函數退出時間,函數返回值;
生成單元,用于根據所述第一函數調用信息和所述托管函數的函數名生成第二函數調用信息,其中,所述第二函數調用信息中包括具有對應關系的所述托管函數的函數名、函數進入時間、函數退出時間,函數返回值;
輸出單元,用于輸出所述第二函數調用信息;
其中,所述編譯單元,用于通過以下方式對所述程序中待調用的托管函數進行編譯:對所述程序中所有待調用的托管函數進行編譯,得到對應的非托管函數。
7.根據權利要求6所述的裝置,其特征在于,所述裝置還包括:
第一獲取單元,用于根據預先建立的對應關系獲取與所述非托管函數的第一函數指針對應的所述托管函數的第二函數指針;
查找單元,用于通過所述第二函數指針查找到所述托管函數的所述函數名。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610825962.X/1.html,轉載請聲明來源鉆瓜專利網。
- 信息記錄介質、信息記錄方法、信息記錄設備、信息再現方法和信息再現設備
- 信息記錄裝置、信息記錄方法、信息記錄介質、信息復制裝置和信息復制方法
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄裝置、信息再現裝置、信息記錄方法、信息再現方法、信息記錄程序、信息再現程序、以及信息記錄介質
- 信息記錄設備、信息重放設備、信息記錄方法、信息重放方法、以及信息記錄介質
- 信息存儲介質、信息記錄方法、信息重放方法、信息記錄設備、以及信息重放設備
- 信息存儲介質、信息記錄方法、信息回放方法、信息記錄設備和信息回放設備
- 信息記錄介質、信息記錄方法、信息記錄裝置、信息再現方法和信息再現裝置
- 信息終端,信息終端的信息呈現方法和信息呈現程序
- 信息創建、信息發送方法及信息創建、信息發送裝置





