[發明專利]一種函數定位的方法及裝置有效
| 申請號: | 201810770501.6 | 申請日: | 2018-07-13 |
| 公開(公告)號: | CN108984409B | 公開(公告)日: | 2021-10-22 |
| 發明(設計)人: | 張傳慶 | 申請(專利權)人: | 鄭州云海信息技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王寶筠 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 函數 定位 方法 裝置 | ||
本申請公開了一種函數定位的方法及裝置,包括:利用對目標函數進行宏封裝得到的目標宏確定調用所述目標函數的上級函數的函數信息;根據所述上級函數的函數信息,定位出導致所述目標函數執行出現問題的目標上級函數。由此可見,采用本申請實施例提供的方案,可以利用目標宏確定出調用目標函數的上級函數的函數信息,無需為每一個上級函數添加日志打印語句,減少了對程序代碼的修改量,由于所述上級函數的函數信息在一定程度上可以表征所述上級函數對目標函數的調用過程是否出現問題,從而可以根據該上級函數的函數信息,快速定位出導致所述目標函數執行出現問題的目標上級函數。
技術領域
本申請涉及計算機軟件領域,特別是涉及一種函數定位的方法及裝置。
背景技術
在軟件開發中,為了降低開發難度,各軟件開發商會為開發人員提供一些可以實現特定功能的函數。開發商向開發人員提供這些函數時,往往僅向開發人員提供這些函數的調用接口,而不公開這些函數的內部程序代碼。開發人員在軟件開發的過程中可以直接調用這些函數,而不必自己用編程語言編寫這些函數。
可以理解的是,開發人員對程序代碼開發之后,需要對程序代碼進行測試,在測試的過程中,上述函數在執行時可能會出現問題。但是,由于調用該函數的上級函數可能有很多,因此,很難確定出是哪一個上級函數導致上述函數在執行時出現問題。
因此,需要提出一種方案,在函數執行出現問題時,能夠確定出是哪一個上級函數導致的。
發明內容
本申請所要解決的技術問題是在函數執行出現問題時,能夠確定出是哪一個上級函數導致的,提供一種函數定位的方法及裝置。
第一方面,本申請實施例提供一種函數定位方法,包括:
利用對目標函數進行宏封裝得到的目標宏,確定調用所述目標函數的上級函數的函數信息;
根據所述上級函數的函數信息,定位出導致所述目標函數執行出現問題的目標上級函數。
可選的,所述目標宏通過如下方式獲得:
對所述目標函數進行重命名,并且,令所述目標宏的名稱與所述目標函數的名稱相同;
令所述目標宏調用重命名后的目標函數,并且,添加日志打印語句;
其中,所述日志打印語句用于打印所述上級函數的函數信息。
可選的,所述上級函數的函數信息,包括以下任意一項或多項:
所述上級函數的函數名、所述上級函數的行號、所述上級函數開始調用所述目標函數的標識以及所述上級函數結束調用所述目標函數的標識。
可選的,若所述上級函數的函數信息,包括所述上級函數開始調用所述目標函數的標識以及所述上級函數結束調用所述目標函數的標識,則所述根據所述上級函數的函數信息,定位出導致所述目標函數執行出現問題的目標上級函數,包括:
將函數信息中包括所述開始調用所述目標函數的標識,且不包括結束調用所述目標函數的標識的上級函數,定位為所述目標上級函數。
可選的,所述上級函數開始調用所述目標函數的標識,包括:begin;
所述上級函數結束調用所述目標函數的標識,包括:end。
可選的,所述目標函數包括:
Windows操作系統中的dll動態庫函數;和/或,
Linux操作系統中的so動態庫函數。
第二方面,本申請實施例提供一種函數定位裝置,包括:
確定單元,用于利用對目標函數進行宏封裝得到的目標宏,確定調用所述目標函數的上級函數的函數信息;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州云海信息技術有限公司,未經鄭州云海信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810770501.6/2.html,轉載請聲明來源鉆瓜專利網。





