[發明專利]一種腳本錯誤的處理方法、裝置、設備及存儲介質在審
| 申請號: | 202210178711.2 | 申請日: | 2022-02-25 |
| 公開(公告)號: | CN114661290A | 公開(公告)日: | 2022-06-24 |
| 發明(設計)人: | 謝雪彥;田娟 | 申請(專利權)人: | 深圳前海微眾銀行股份有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F8/53;G06F11/32;G06F11/36 |
| 代理公司: | 北京派特恩知識產權代理有限公司 11270 | 代理人: | 崔曉嵐;浦彩華 |
| 地址: | 518052 廣東省深圳市*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 腳本 錯誤 處理 方法 裝置 設備 存儲 介質 | ||
1.一種腳本錯誤的處理方法,其特征在于,包括:
獲取可執行代碼在運行過程中發生錯誤時的報錯行列號;其中,所述可執行代碼是由經過源映射處理的混淆源碼生成的;
獲取針對所述錯誤進行梯度診斷得到的錯誤類型;
基于所述混淆源碼轉換得到的抽象語法樹和散列表生成原始語法樹;其中,所述散列表存儲有未混淆的源碼的函數方法名與所述混淆源碼的函數方法名的對應關系,以及所述未混淆的源碼的參數名與所述混淆源碼的參數名的對應關系;
基于所述錯誤類型、所述報錯行列號和所述原始語法樹,在所述混淆源碼對應的所述未混淆的源碼中定位所述錯誤的發生位置,并輸出針對所述錯誤的修復建議。
2.根據權利要求1中所述的方法,其特征在于,所述基于所述混淆源碼轉換得到的抽象語法樹和散列表生成原始語法樹,包括:
循環遍歷語法樹及散列表,將抽象語法樹中的一個表達式節點中對象的對象名與所述散列表中的鍵進行比對;
若所述對象名與所述散列表中的一個鍵相同,則將所述一個表達式節點中的所述對象名重置為散列表中對應于所述一個鍵的值,在所述一個表達式節點中將計算屬性的標識參數由第一參數改為第二參數;
若所述對象名與所述一個鍵不同,將所述對象名與所述散列表中的另一個鍵進行比對,直至所有表達式節點中的計算屬性的標識參數由所述第一參數改為第二參數,得到所述原始語法樹。
3.根據權利要求1或2所述的方法,其特征在于,所述基于所述錯誤類型、所述報錯行列號和所述原始語法樹,在所述混淆源碼對應的所述未混淆的源碼中定位所述錯誤的發生位置,包括:
若所述錯誤類型屬于引用類型錯誤或者類型錯誤,則將所述原始語法樹轉為所述未混淆的源碼;
基于所述報錯行列號在所述未混淆的源碼中定位所述錯誤的發生位置。
4.根據權利要求1所述的方法,其特征在于,所述基于所述錯誤類型、所述報錯行列號和所述原始語法樹,在所述混淆源碼對應的所述未混淆的源碼中定位所述錯誤的發生位置,包括:
若所述錯誤類型屬于范圍錯誤,則獲取軟件開發工具包基于所述報錯行列號捕獲的所述錯誤的發生位置的調用棧信息;
基于所述調用棧信息和所述原始語法樹,得到原始調用棧;其中,所述原始調用棧為緩存有所述未混淆的源碼中定位的所述錯誤的發生位置的數組。
5.根據權利要求4所述的方法,其特征在于,所述基于所述調用棧信息和所述原始語法樹,得到原始調用棧,包括:
將所述調用棧信息轉換為第一數組,并刪除所述第一數組的第一項;
遍歷所述第一數組并正則匹配每一項內容,取出調用棧中的滿足匹配條件的調用函數名,得到第二數組;
遍歷所述原始語法樹將一個表達式節點的對象的對象名與所述第二數組中的每一項進行循環比對;
若所述對象名與所述第二數組中的一項相同,則將所述一個表達式節點緩存;
將循環比對找到的所有表達式節點緩存為第三數組;其中,所述所有表達式節點的對象名與所述第二數組中的一項相同;
循環遍歷所述散列表與所述第三數組,將所述第三數組中表達式節點中對象的對象名替換為所述散列表中匹配到鍵對應的值,得到原始調用棧;其中,所述原始調用棧為緩存有替換后的表達式節點的數組。
6.根據權利要求1所述的方法,其特征在于,所述獲取針對所述錯誤進行梯度診斷得到的錯誤類型,包括:
對所述錯誤對應的事件處理函數的函數類型進行分析,將符合預設類型的事件處理函數采集/上報的錯誤歸類為一級錯誤;
對所述一級錯誤進行關鍵字正則匹配,并將所述一級錯誤歸類至五種二級錯誤中對應的一種;
針對歸類后的每一二級錯誤調用三級錯誤配置表,并查找所述三級錯誤配置表中與所述歸類后的每一二級錯誤匹配的三級錯誤規則;
在所述三級錯誤配置表中確定與所述三級錯誤規則具有映射關系的所述錯誤類型。
7.根據權利要求6所述的方法,其特征在于,所述輸出針對所述錯誤的修復建議,包括:
在修復建議配置表中查找與所述三級錯誤規則匹配的修復建議,并輸出所述修復建議。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳前海微眾銀行股份有限公司,未經深圳前海微眾銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210178711.2/1.html,轉載請聲明來源鉆瓜專利網。





