[發(fā)明專利]一種對程序進行無狀態(tài)檢測的方法和裝置有效
| 申請?zhí)枺?/td> | 201710582689.7 | 申請日: | 2017-07-17 |
| 公開(公告)號: | CN109426601B | 公開(公告)日: | 2022-05-10 |
| 發(fā)明(設(shè)計)人: | 焦石;蔣啟剛 | 申請(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/30;G06F8/41 |
| 代理公司: | 北京三高永信知識產(chǎn)權(quán)代理有限責任公司 11138 | 代理人: | 羅振安 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 程序 進行 狀態(tài) 檢測 方法 裝置 | ||
1.一種對程序進行無狀態(tài)檢測的方法,其特征在于,所述方法包括:
當檢測到針對目標程序進行無狀態(tài)檢測的觸發(fā)操作后,執(zhí)行所述目標程序;
如果在執(zhí)行所述目標程序的過程中,監(jiān)測到所述目標程序的變量發(fā)生更改,在所述變量屬于成員變量的情況下,如果所述成員變量所屬的對象未在執(zhí)行所述目標程序所建立的初始線程中生成,則所述成員變量并非被所述初始線程所更改,確定所述成員變量不符合無狀態(tài)設(shè)計原則。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,監(jiān)測所述目標程序的變量是否發(fā)生更改,包括:
通過JVMTI接口監(jiān)測所述變量是否發(fā)生更改。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括:
如果所述變量屬于靜態(tài)變量,則確定與所述靜態(tài)變量對應(yīng)的判斷方式為:如果所述靜態(tài)變量所屬的類未裝載于所述初始線程中,則所述靜態(tài)變量并非被所述初始線程所更改,確定所述靜態(tài)變量不符合無狀態(tài)設(shè)計原則。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,
如果所述靜態(tài)變量所屬的類未裝載于所述初始線程中,則所述靜態(tài)變量并非被所述初始線程所更改,包括:
確定所述初始線程對應(yīng)的堆棧;如果在所述堆棧中未查找到所述靜態(tài)變量所屬的類,則所述靜態(tài)變量所屬的類未裝載于所述初始線程中,所述靜態(tài)變量并非被所述初始線程所更改;
如果所述成員變量所屬的對象未在所述初始線程中生成,則所述成員變量并非被所述初始線程所更改,包括:
確定所述成員變量所屬的對象所綁定的標簽,如果在初始線程附加的標簽列表中不存在所述標簽,則所述成員變量所屬的對象未在所述初始線程中生成,所述成員變量并非被所述初始線程所更改。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述標簽列表存儲于所述初始線程對應(yīng)的局部存儲器中。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
在開始執(zhí)行所述目標程序的入口函數(shù)時,建立所述標簽列表;
當在執(zhí)行所述目標程序的過程中,檢測到發(fā)生對象創(chuàng)建事件時,將創(chuàng)建的對象綁定上標簽;
將所述標簽存入所述標簽列表中。
7.一種對程序進行無狀態(tài)檢測的裝置,其特征在于,所述裝置包括執(zhí)行模塊和確定模塊,所述確定模塊包括第一判斷單元,其中:
所述執(zhí)行模塊,用于當檢測到針對目標程序進行無狀態(tài)檢測的觸發(fā)操作后,執(zhí)行所述目標程序;
所述第一判斷單元,用于在執(zhí)行所述目標程序的過程中,監(jiān)測到所述目標程序的變量發(fā)生更改,在所述變量屬于成員變量的情況下,如果所述成員變量所屬的對象未在執(zhí)行所述目標程序所建立的初始線程中生成,則所述成員變量并非被所述初始線程所更改,確定所述成員變量不符合無狀態(tài)設(shè)計原則。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述確定模塊用于通過JVMTI接口監(jiān)測所述變量是否發(fā)生更改。
9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述確定模塊還包括:
第二判斷單元,用于在所述變量屬于靜態(tài)變量的情況下,如果所述靜態(tài)變量所屬的類未裝載于所述初始線程中,則所述靜態(tài)變量并非被所述初始線程所更改,確定所述靜態(tài)變量不符合無狀態(tài)設(shè)計原則。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第一判斷單元用于確定所述初始線程對應(yīng)的堆棧;如果在所述堆棧中未查找到所述靜態(tài)變量所屬的類,則所述靜態(tài)變量所屬的類未裝載于所述初始線程中,所述靜態(tài)變量并非被所述初始線程所更改;
所述第二判斷單元用于確定所述成員變量所屬的對象所綁定的標簽,如果在初始線程附加的標簽列表中不存在所述標簽,則所述成員變量所屬的對象未在所述初始線程中生成,所述成員變量并非被所述初始線程所更改。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述標簽列表存儲于所述初始線程對應(yīng)的局部存儲器中。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710582689.7/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





