[發(fā)明專利]用于獲取調(diào)用棧中棧幀信息的方法、裝置、設(shè)備和介質(zhì)有效
| 申請(qǐng)?zhí)枺?/td> | 202110303887.1 | 申請(qǐng)日: | 2021-03-22 |
| 公開(公告)號(hào): | CN112905381B | 公開(公告)日: | 2022-12-06 |
| 發(fā)明(設(shè)計(jì))人: | 劉洪凱 | 申請(qǐng)(專利權(quán))人: | 北京字節(jié)跳動(dòng)網(wǎng)絡(luò)技術(shù)有限公司 |
| 主分類號(hào): | G06F11/07 | 分類號(hào): | G06F11/07 |
| 代理公司: | 北京開陽星知識(shí)產(chǎn)權(quán)代理有限公司 11710 | 代理人: | 祝樂芳 |
| 地址: | 100041 北京市石景山區(qū)*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 獲取 調(diào)用 棧中棧幀 信息 方法 裝置 設(shè)備 介質(zhì) | ||
1.一種用于獲取調(diào)用棧中棧幀信息的方法,其特征在于,包括:
獲取程序運(yùn)行過程中存在異常的待處理調(diào)用棧;其中,所述待處理調(diào)用棧的每個(gè)區(qū)域單元中包括方法指針以及與所述方法指針對(duì)應(yīng)的指令偏移值,所述待處理調(diào)用棧的區(qū)域單元總個(gè)數(shù)為N;
申請(qǐng)第一內(nèi)存區(qū)域;其中,所述第一內(nèi)存區(qū)域的前半部分區(qū)域單元用于存儲(chǔ)所述方法指針,所述第一內(nèi)存區(qū)域的后半部分區(qū)域單元用于存儲(chǔ)與所述方法指針對(duì)應(yīng)的指令偏移值,所述第一內(nèi)存區(qū)域的區(qū)域單元總個(gè)數(shù)為2N;
獲取所述第一內(nèi)存區(qū)域的地址;
申請(qǐng)第二內(nèi)存區(qū)域,并將所述第一內(nèi)存區(qū)域的地址存入所述第二內(nèi)存區(qū)域中的第一個(gè)區(qū)域單元;其中,所述第二內(nèi)存區(qū)域的區(qū)域單元總個(gè)數(shù)為N+1;
獲取所述第二內(nèi)存區(qū)域的地址;
申請(qǐng)第三內(nèi)存區(qū)域,并獲取所述第三內(nèi)存區(qū)域中的目標(biāo)存儲(chǔ)區(qū)域,將所述第二內(nèi)存區(qū)域的地址存入所述目標(biāo)存儲(chǔ)區(qū)域;
基于所述目標(biāo)存儲(chǔ)區(qū)域存儲(chǔ)的所述第二內(nèi)存區(qū)域的地址,執(zhí)行棧幀信息獲取功能模塊getStackTrace對(duì)應(yīng)的代碼段,獲取所述待處理調(diào)用棧中各棧幀的信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:
申請(qǐng)第一內(nèi)存區(qū)域,包括:
為屬于整型或者長(zhǎng)整型的第一數(shù)組申請(qǐng)所述第一內(nèi)存區(qū)域;其中,所述第一數(shù)組的元素分別存儲(chǔ)在所述第一內(nèi)存區(qū)域的區(qū)域單元中;
申請(qǐng)第二內(nèi)存區(qū)域,包括:
為對(duì)象基類Object下的第二數(shù)組申請(qǐng)所述第二內(nèi)存區(qū)域;其中,所述第二數(shù)組的元素分別存儲(chǔ)在所述第二內(nèi)存區(qū)域的區(qū)域單元中;
申請(qǐng)第三內(nèi)存區(qū)域,包括:
為異常父類Throwable下的目標(biāo)對(duì)象申請(qǐng)所述第三內(nèi)存區(qū)域。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法指針或者所述指令偏移值在所述待處理調(diào)用棧中的出現(xiàn)順序與在所述第一內(nèi)存區(qū)域中的出現(xiàn)順序相同。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,基于所述目標(biāo)存儲(chǔ)區(qū)域存儲(chǔ)的所述第二內(nèi)存區(qū)域的地址,執(zhí)行棧幀信息獲取功能模塊getStackTrace對(duì)應(yīng)的代碼段,獲取所述待處理調(diào)用棧中各棧幀的信息,包括:
基于所述目標(biāo)存儲(chǔ)區(qū)域存儲(chǔ)的所述第二內(nèi)存區(qū)域的地址,執(zhí)行所述棧幀信息獲取功能模塊getStackTrace對(duì)應(yīng)的代碼段,獲取所述待處理調(diào)用棧中各棧幀的信息的存儲(chǔ)地址;
基于所述存儲(chǔ)地址,獲取所述各棧幀的信息。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述各棧幀的信息包括以下至少之一:棧幀的方法名、棧幀方法所在類名、棧幀對(duì)應(yīng)的源碼文件名和棧幀對(duì)應(yīng)的源碼行號(hào)。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
將所述各棧幀的信息發(fā)送至服務(wù)端;其中,所述服務(wù)端用于基于所述各棧幀的信息分析程序運(yùn)行過程中的異常。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取程序運(yùn)行過程中存在異常的調(diào)用棧,包括:
獲取程序運(yùn)行過程中存在異常的多個(gè)調(diào)用棧;
通過對(duì)比各個(gè)調(diào)用棧中的所述方法指針和所述指令偏移值,確定所述多個(gè)調(diào)用棧中的重復(fù)調(diào)用棧;
基于所述重復(fù)調(diào)用棧對(duì)所述多個(gè)調(diào)用棧進(jìn)行去重處理,得到所述待處理調(diào)用棧。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京字節(jié)跳動(dòng)網(wǎng)絡(luò)技術(shù)有限公司,未經(jīng)北京字節(jié)跳動(dòng)網(wǎng)絡(luò)技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110303887.1/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- IDL調(diào)用裝置及調(diào)用方法
- 調(diào)用方法及調(diào)用系統(tǒng)
- 一種服務(wù)調(diào)用方法及裝置
- 服務(wù)調(diào)用方法、服務(wù)調(diào)用裝置及服務(wù)調(diào)用系統(tǒng)
- 組件調(diào)用方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 身份驗(yàn)證方法及裝置
- 系統(tǒng)調(diào)用處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)調(diào)用方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種微服務(wù)請(qǐng)求重試的方法及終端
- 業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及系統(tǒng)
- 基于ebp構(gòu)造的棧棧幀內(nèi)容保護(hù)方法
- 一種基于棧異常的shellcode檢測(cè)方法及裝置
- 一種棧解析方法和裝置
- 處理緊急關(guān)系中棧段強(qiáng)度的相關(guān)性的系統(tǒng)、方法和介質(zhì)
- 用于編碼棧蹤跡信息的方法、系統(tǒng)和介質(zhì)
- 獲取調(diào)用棧棧幀函數(shù)簽名的方法、裝置、介質(zhì)和設(shè)備
- 一種信息獲取方法、裝置、介質(zhì)和設(shè)備
- 崩潰信息收集的方法、裝置、介質(zhì)和設(shè)備
- 用于確定調(diào)用棧棧幀的對(duì)象的方法、裝置、設(shè)備和介質(zhì)
- 用于獲取調(diào)用棧中棧幀信息的方法、裝置、設(shè)備和介質(zhì)





