[發明專利]泄露對象的檢測方法、裝置、計算設備和計算機存儲介質在審
| 申請號: | 202111162095.3 | 申請日: | 2021-09-30 |
| 公開(公告)號: | CN115904769A | 公開(公告)日: | 2023-04-04 |
| 發明(設計)人: | 孔川 | 申請(專利權)人: | 北京車和家信息技術有限公司 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07 |
| 代理公司: | 北京太合九思知識產權代理有限公司 11610 | 代理人: | 劉戈;曹威 |
| 地址: | 101300 北京市順義區高麗營*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 泄露 對象 檢測 方法 裝置 計算 設備 計算機 存儲 介質 | ||
本申請實施例提供了一種泄露對象的檢測方法、裝置、計算設備和計算機存儲介質。其中,接收引用對象添加請求,所述引用對象添加請求中攜帶待引用對象;若判斷出所述待引用對象的對象類名與溢出對象的對象類名相同,將所述待引用對象確定為泄露對象,輸出所述泄露對象的調用棧信息,以通過所述調用棧信息查詢出所述溢出對象對應的代碼段。本實施例中,能夠提前收集泄露對象的調用棧信息,直接鎖定泄露對象的代碼段,提高泄露對象的檢測效率。
技術領域
本申請實施例涉及計算機技術領域,尤其涉及一種泄露對象的檢測方法、裝置、計算設備和計算機存儲介質。
背景技術
當全局引用對象或者弱全局引用對象一直沒有釋放或者創建個數大于釋放個數,使得引用對象數量超過一定閥值時就會輸出一些引用對象的信息,并且之后該進程就可能由于再次申請全局引用或者弱全局引用失敗而導致進程崩潰,崩潰時會輸出對應的堆棧信息,而此時的堆棧信息可能不是發生引用對象泄露的代碼段,而是其他沒有泄露的引用對象的代碼段。
目前對于引用對象泄露的監控方法,通常是對輸出一些的引用對象的信息進行推測和后續的復現驗證(也就是說只能在引用對象大于引用最大值后,才能去定位泄露對象的代碼段,并不能引用對象小于引用最大值之前,提前確定泄露對象的代碼段),由于對象名有的比較有針對性,可以比較容易的鎖定泄露的代碼段,但是有的對象名比較特殊比較大眾化,調用之處比較多,需要花費人力復現逐步定位問題,甚至有的問題由于不好復現而長時間得不到解決。
發明內容
本申請實施例提供一種泄露對象的檢測方法、裝置、計算設備和計算機存儲介質,能夠提前收集泄露對象的調用棧信息,直接鎖定泄露對象的代碼段,提高泄露對象的檢測效率。
第一方面,本申請實施例提供了一種泄露對象的檢測方法,包括:
接收引用對象添加請求,所述引用對象添加請求中攜帶待引用對象;
若判斷出所述待引用對象的對象類名與溢出對象的對象類名相同,將所述待引用對象確定為泄露對象,輸出所述泄露對象的調用棧信息,以通過所述調用棧信息查詢出所述溢出對象對應的代碼段。
可選地,若判斷出所述待引用對象的對象類名與溢出對象的對象類名不相同,響應所述引用對象添加請求,添加所述待引用對象為引用對象。
可選地,在所述判斷所述待引用對象的對象類名與溢出對象的對象類名是否相同之前,還包括:
從引用對象列表中,確定引用對象個數;
若所述引用對象個數大于第一預設個數,則判斷所述引用對象個數是否為非首次大于第一預設個數;
若所述引用對象個數小于或等于第一預設個數,則響應所述引用對象添加請求,添加所述待引用對象為引用對象。
可選地,在所述判斷所述引用對象個數是否為非首次大于第一預設個數之后,還包括:
若所述引用對象個數為已首次大于第一預設個數,判斷所述引用對象個數是否大于第二預設個數;
若所述引用對象個數為非首次大于第一預設個數,將所述引用對象個數設置為已首次大于第一預設個數,并按照對象類名對所述引用對象列表中全部的引用對象進行排序,并將引用次數最多的對象確定為溢出對象。
可選地,在所述判斷所述引用對象個數是否大于第二預設個數之后,還包括:
若所述引用對象個數大于第二預設個數,判斷所述待引用對象的對象類名與溢出對象的對象類名是否相同;
若所述引用對象個數小于第二預設個數,響應所述引用對象添加請求,添加所述待引用對象為引用對象。
可選地,所述輸出所述泄露對象的調用棧信息,可包括:
輸出多次所述泄露對象的調用棧信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京車和家信息技術有限公司,未經北京車和家信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111162095.3/2.html,轉載請聲明來源鉆瓜專利網。





