• / 15
  • 下載費用:30 金幣  

一種轉儲文件分析方法、裝置和系統.pdf

關 鍵 詞:
一種 文件 分析 方法 裝置 系統
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201210359077.9

申請日:

2012.09.25

公開號:

CN103678109A

公開日:

2014.03.26

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F11/36申請日:20120925|||公開
IPC分類號: G06F11/36 主分類號: G06F11/36
申請人: 騰訊科技(深圳)有限公司
發明人: 高明
地址: 518044 廣東省深圳市福田區振興路賽格科技園2棟東403室
優先權:
專利代理機構: 北京德琦知識產權代理有限公司 11018 代理人: 張馳;宋志強
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201210359077.9

授權公告號:

||||||

法律狀態公告日:

2018.01.05|||2015.04.22|||2014.03.26

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明實施方式提出了一種轉儲(Dump)文件分析方法、裝置和系統。方法包括:接收轉儲文件;調度調試分析引擎對轉儲文件進行掃描,以獲取轉儲文件分析日志;對轉儲文件分析日志進行解析,以提取出崩潰(Crash)基礎特征;根據崩潰基礎特征生成崩潰輔助特征,并基于崩潰基礎特征和崩潰輔助特征對轉儲文件進行判定。應用本發明實施方式之后,實現了針對轉儲文件的自動分析,提高了轉儲文件分析效率,可以快速定位和解決軟件崩潰(Crash)問題,從而提高軟件的穩定性。

權利要求書

權利要求書
1.  一種轉儲(Dump)文件分析方法,其特征在于,該方法包括:
接收轉儲文件;
調度調試分析引擎對所述轉儲文件進行掃描,以獲取轉儲文件分析日志;
對所述轉儲文件分析日志進行解析,以提取出崩潰(Crash)基礎特征;
根據所述崩潰基礎特征生成崩潰輔助特征,并基于所述崩潰基礎特征和崩潰輔助特征對所述轉儲文件進行判定。

2.  根據權利要求1所述的轉儲文件分析方法,其特征在于,該方法進一步包括:生成調度腳本、特征提取腳本和特征分析腳本;
所述調度調試分析引擎對所述轉儲文件進行掃描為:所述調度腳本調度調試分析引擎對所述轉儲文件進行掃描;
所述對轉儲文件分析日志進行解析,以提取出崩潰基礎特征為:所述特征提取腳本對轉儲文件分析日志進行解析,以提取出崩潰基礎特征;
所述根據崩潰基礎特征生成崩潰輔助特征,并基于崩潰基礎特征和崩潰輔助特征對轉儲文件進行判定為:所述特征分析腳本根據崩潰基礎特征生成崩潰輔助特征,并基于崩潰基礎特征和崩潰輔助特征對轉儲文件進行判定。

3.  根據權利要求1所述的轉儲文件分析方法,其特征在于,該方法進一步包括:
將所述轉儲文件的判定結果發送到產生所述轉儲文件的軟件崩潰端,并在所述軟件崩潰端顯示所述轉儲文件的判定結果;或
將所述轉儲文件的判定結果發送到第三方崩潰分析端,并在所述第三方崩潰分析端顯示所述轉儲文件的判定結果。

4.  根據權利要求2所述的轉儲文件分析方法,其特征在于,所述調度腳本調度調試分析引擎對所述轉儲文件進行掃描,以獲取轉儲文件分析日志包括:
調度腳本以命令行的方式調度調試分析引擎,采用多線程對所述轉儲文件進行掃描,以獲取轉儲文件分析日志。

5.  根據權利要求2所述的轉儲文件分析方法,其特征在于,該方法包括進一步包括設置正則表達式的步驟;
所述特征提取腳本從所述轉儲文件分析日志中提取出崩潰(Crash)基礎特征包括:
特征提取腳本根據所述正則表達式,從所述轉儲文件分析日志中提取出崩潰基礎特征。

6.  根據權利要求2所述的轉儲文件分析方法,其特征在于,所述特征分析腳本根據崩潰基礎特征生成崩潰輔助特征包括:
所述特征分析腳本根據預先設置的特征規則庫對所述崩潰基礎特征進行特征分析,以生成崩潰輔助特征。

7.  根據權利要求6所述的轉儲文件分析方法,其特征在于,所述特征規則庫包括下列特征規則中的至少一個:
字符串類型崩潰的判定規則;
容器類型崩潰的判定規則;和/或
野指針類型崩潰的判定規則。

8.  根據權利要求2所述的轉儲文件分析方法,其特征在于,所述特征分析腳本根據崩潰基礎特征生成崩潰輔助特征包括下列處理中的至少一個:
特征分析腳本根據調用堆棧信息獲取崩潰所在文件;
特征分析腳本根據所述崩潰所在文件,查詢版本管理(SVN)服務器以得到崩潰代碼作者(Crash_Owner);
特征分析腳本根據崩潰處的符號名(SYMBOL_NAME)和主要問題類(PRIMARY_PROBLEM_CLASS),計算崩潰哈希(Crash_Hash);和/或
特征分析腳本根據崩潰哈希,查詢歷史崩潰數據庫以判定該轉儲文件的崩潰類型是否為已知。

9.  根據權利要求1所述的轉儲文件分析方法,其特征在于,所述接收轉儲文件為:通過WEB方式接收轉儲文件;
該方法進一步包括:將所述轉儲文件的崩潰基礎特征和崩潰輔助特征保存 進歷史崩潰數據庫,并針對所述歷史崩潰數據庫生成統計報表信息。

10.  一種轉儲文件分析裝置,其特征在于,該裝置包括轉儲文件接收單元、轉儲文件分析日志生成單元、崩潰基礎特征提取單元和轉儲文件判定單元,其中:
轉儲文件接收單元,用于接收轉儲文件;
轉儲文件分析日志生成單元,用于調度調試分析引擎對所述轉儲文件進行掃描,以獲取轉儲文件分析日志;
崩潰基礎特征提取單元,用于對所述轉儲文件分析日志進行解析,以提取出崩潰(Crash)基礎特征;
轉儲文件判定單元,用于根據所述崩潰基礎特征生成崩潰輔助特征,并基于所述崩潰基礎特征和崩潰輔助特征對所述轉儲文件進行判定。

11.  根據權利要求10所述的轉儲文件分析裝置,其特征在于,
轉儲文件分析日志生成單元,用于使能預先生成的調度腳本調度調試分析引擎對所述轉儲文件進行掃描;
崩潰基礎特征提取單元,用于使能預先生成的特征提取腳本對轉儲文件分析日志進行解析,以提取出崩潰基礎特征;
轉儲文件判定單元,用于使能預先生成的特征分析腳本,根據崩潰基礎特征生成崩潰輔助特征,并基于崩潰基礎特征和崩潰輔助特征對轉儲文件進行判定。

12.  根據權利要求10所述的轉儲文件分析裝置,其特征在于,
轉儲文件判定單元,進一步用于將所述轉儲文件的判定結果發送到產生所述轉儲文件的軟件崩潰端,并在所述軟件崩潰端顯示所述轉儲文件的判定結果;或將所述轉儲文件的判定結果發送到第三方崩潰分析端,并在所述第三方崩潰分析端顯示所述轉儲文件的判定結果。

13.  根據權利要求11所述的轉儲文件分析裝置,其特征在于,
轉儲文件分析日志生成單元,用于使能調度腳本以命令行的方式調度調試分析引擎,采用多線程對所述轉儲文件進行掃描,以獲取轉儲文件分析日志。

14.  根據權利要求11所述的轉儲文件分析裝置,其特征在于,
崩潰基礎特征提取單元,用于使能特征提取腳本根據預先設置的正則表達式,從所述轉儲文件分析日志中提取出崩潰基礎特征。

15.  根據權利要求11所述的轉儲文件分析裝置,其特征在于,
崩潰基礎特征提取單元,用于使能特征分析腳本根據預先設置的特征規則庫對崩潰基礎特征進行特征分析,以生成崩潰輔助特征。

16.  根據權利要求15所述的轉儲文件分析裝置,其特征在于,特征規則庫包括下列特征規則中的至少一個:
字符串類型崩潰的判定規則;
容器類型崩潰的判定規則;和/或
野指針類型崩潰的判定規則。

17.  根據權利要求11所述的轉儲文件分析裝置,其特征在于,
崩潰基礎特征提取單元,用于使能特征分析腳本根據所述崩潰基礎特征生成崩潰輔助特征包括下列處理中的至少一個特征:
分析腳本根據調用堆棧信息獲取崩潰所在文件;
特征分析腳本根據所述崩潰所在文件,查詢版本管理(SVN)服務器以得到崩潰代碼作者(Crash_Owner);
特征分析腳本根據崩潰處的符號名(SYMBOL_NAME)和主要問題類(PRIMARY_PROBLEM_CLASS),計算崩潰哈希(Crash_Hash);和/或
特征分析腳本根據崩潰哈希,查詢歷史崩潰數據庫,以判定該轉儲文件的崩潰類型是否為已知。

18.  根據權利要求11所述的轉儲文件分析裝置,其特征在于,進一步包括統計報表信息生成單元,其中:
轉儲文件接收單元,用于通過WEB方式接收轉儲文件;
統計報表信息生成單元,用于將所述轉儲文件的崩潰基礎特征和崩潰輔助特征保存進歷史崩潰數據庫,并針對所述歷史崩潰數據庫生成統計報表信息。

19.  一種轉儲文件分析系統,其特征在于,該系統包括:位于本地端的轉 儲文件發送裝置和位于網絡側的轉儲文件分析裝置;其中:
所述轉儲文件發送裝置,用于采集在本地的程序崩潰(Crash)時所產生的轉儲文件,并通過與轉儲文件分析裝置的WEB連接向所述轉儲文件分析裝置發送該轉儲文件;
轉儲文件分析裝置,用于接收該轉儲文件,并使能預先生成的調度腳本調度調試分析引擎對所述轉儲文件進行掃描以獲取轉儲文件分析日志;使能預先生成的特征提取腳本對所述轉儲文件分析日志進行分析,以提取出崩潰基礎特征;使能預先生成的特征分析腳本根據所述崩潰基礎特征生成崩潰輔助特征,并基于所述崩潰基礎特征和崩潰輔助特征對所述轉儲文件進行判定,并將所述判定結果發送到所述轉儲文件發送裝置。

說明書

說明書一種轉儲文件分析方法、裝置和系統
技術領域
本發明實施方式涉及計算機信息處理技術領域,更具體地,涉及一種轉儲(Dump)文件分析方法、裝置和系統。
背景技術
軟件是一系列按照特定順序組織的計算機數據和指令的集合。一般來講軟件被劃分為編程語言、系統軟件、應用軟件和介于這兩者之間的中間件。軟件產品是指向用戶提供的計算機軟件、信息系統或設備中嵌入的軟件或在提供計算機信息系統集成、應用服務等技術服務時提供的計算機軟件。
現在很多的軟件產品為了追求高穩定性,通常在軟件崩潰(Crash)時生成并上報Dump文件。Dump文件是進程的內存鏡像。在程序Crash時,可以把程序的執行狀態通過調試器保存到Dump文件中。軟件開發人員通過分析收集到的Dump,可以定位并解決軟件崩潰問題。
目前針對Dump文件的分析的手段一般是通過Visual Studio、WinDbg等調試工具來打開Dump文件,人工通過觀察調用棧、寄存器、異常信息來推測可能造成軟件Crash的原因。
然而,這種人工分析Dump文件的方式耗時較久,不利于快速修復軟件Crash問題。而且,采用人工分析Dump文件的處理方式還具有分析效率低的缺陷,以及人工分析處理通常會需要大量的培訓工作,從而造成分析成本上升。
發明內容
本發明實施方式提出一種Dump文件分析方法,實現對Dump文件的自動分析,從而提高Dump文件分析效率。
本發明實施方式還提出了一種Dump文件分析裝置,實現對Dump文件的自動分析,從而提高Dump文件分析效率。
本發明實施方式還提出了一種Dump文件分析系統,實現對Dump文件的自動分析,從而提高Dump文件分析效率。
本發明實施方式的具體方案如下:
一種轉儲(Dump)文件分析方法,該方法包括:
接收轉儲文件;
調度調試分析引擎對所述轉儲文件進行掃描,以獲取轉儲文件分析日志;
對所述轉儲文件分析日志進行解析,以提取出崩潰(Crash)基礎特征;
根據所述崩潰基礎特征生成崩潰輔助特征,并基于所述崩潰基礎特征和崩潰輔助特征對所述轉儲文件進行判定。
一種轉儲文件分析裝置,該裝置包括轉儲文件接收單元、轉儲文件分析日志生成單元、崩潰基礎特征提取單元和轉儲文件判定單元,其中:
轉儲文件接收單元,用于接收轉儲文件;
轉儲文件分析日志生成單元,用于調試分析引擎對所述轉儲文件進行掃描,以獲取轉儲文件分析日志;
崩潰基礎特征提取單元,用于對所述轉儲文件分析日志進行解析,以提取出崩潰(Crash)基礎特征;
轉儲文件判定單元,用于根據所述崩潰基礎特征生成崩潰輔助特征,并基于所述崩潰基礎特征和崩潰輔助特征對所述轉儲文件進行判定。
一種轉儲文件分析系統,該系統包括:位于本地端的轉儲文件發送裝置和位于網絡側的轉儲文件分析裝置;其中:
所述轉儲文件發送裝置,用于采集在本地的程序崩潰(Crash)時所產生的轉儲文件,并通過與轉儲文件分析裝置的WEB連接向所述轉儲文件分析裝置發送該轉儲文件;
轉儲文件分析裝置,用于接收該轉儲文件,并使能預先生成的調度腳本調度調試分析引擎對所述轉儲文件進行掃描以獲取轉儲文件分析日志;使能 預先生成的特征提取腳本對所述轉儲文件分析日志進行解析,以提取出崩潰基礎特征;使能預先生成的特征分析腳本根據所述崩潰基礎特征生成崩潰輔助特征,并基于崩潰基礎特征和崩潰輔助特征對所述轉儲文件進行判定,并將判定結果發送到所述轉儲文件發送裝置。
從上述技術方案可以看出,在本發明實施方式中:接收轉儲文件;調度調試分析引擎對轉儲文件進行掃描,以獲取轉儲文件分析日志;對所述轉儲文件分析日志進行解析,以從中提取出崩潰(Crash)基礎特征;根據崩潰基礎特征生成崩潰輔助特征,并基于崩潰基礎特征和崩潰輔助特征對轉儲文件進行判定。由此可見,應用本發明實施方式之后,實現了針對轉儲文件的自動分析,從而提高了轉儲文件分析效率。
而且,應用本發明實施方式之后,可以快速定位和解決軟件Crash問題,從而提高了軟件的穩定性。
不僅與此,通過實現Dump文件的自動分析,還顯著降低了專業人員培訓費用,從而降低了軟件開發成本。
附圖說明
圖1為根據本發明的Dump文件分析方法流程圖;
圖2為根據本發明實施方式根據Web方式上傳Dump文件及分析Dump文件的示意圖;
圖3為根據本發明的Dump文件分析裝置結構圖;
圖4為根據本發明的Dump文件分析裝置結構圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明作進一步的詳細描述。
在本發明實施方式中,提出了一種自動化的Dump文件分析技術方案。對軟件崩潰所產生的Dump文件,調度腳本可以通過命令行等方式調度調試 分析引擎進行掃描,得到轉儲文件分析日志。然后通過特征提取腳本和特征判定腳本,依據特征規則庫對轉儲文件分析日志進行處理,針對Dump文件得到最終的軟件Crash判定結果及相關有用信息,從而輔助軟件開發者進行修改。
而且,可以將Crash判定結果及相關有用信息等存入歷史Crash數據庫,對以后的軟件Crash分析識別及規則庫的完善起到積累作用。
示范性地:軟件開發者可以通過WEB站點上傳需要分析的Dump文件,依據本發明實施方式的Dump文件自動化分析處理后,返回相應結果頁面給軟件開發者。比如:在結果頁面中包含Crash的類型、Crash是否已知、Crash代碼作者等相關信息,從而可以輔助軟件開發者快遞解決軟件Crash問題。
圖1為根據本發明的Dump文件分析方法流程圖。
如圖1所示,該方法包括:
步驟101:接收轉儲(Dump)文件。
在這里,可以通過多種方式接收由軟件崩潰所產生的Dump文件。比如,可以通過WEB方式接收由軟件自動發送或者軟件開發者人工發送的Dump文件。
Dump文件是用于調試程序所用,這種文件通常需要由專用工具軟件打開(比如:使用WinDbg打開)。
示范性地,以WINDOWS 7操作系統為實例,當軟件系統發生崩潰時,通常有3類Dump文件可以被捕獲:
(1)、完全內存Dump文件:當崩潰發生時,將捕獲整個物理內存的狀態。此類轉儲文件大小為內存中頁面文件大小+1MB的文件頭。在WindowsNT4操作類型中只支持完全內存轉儲,這也是WindowsServerSystems的默認設置。
(2)、核心內存Dump文件:當崩潰發生時,核心內存轉儲只捕獲物理內存中內核態的頁面文件讀/寫數據。這只是內核態的轉儲,并不包括用戶態進程的頁面。不過,由用戶態進程頁引起系統崩潰是不大可能的,通常 都是由內核態引起。核心內存轉儲中包括:當前運行進程、線程和被加載的驅動等相關信息。
核心內存轉儲文件大小=操作系統內核態內存占用大小+操作系統為驅動程序分配內存的大小。
(3)、小內存Dump文件(Mini-dump):是一個64K的轉儲文件(64位系統和Windows 7里的大小為128K,在Vista中為512K)。它包括:終止代碼、參數和被加載的驅動列表。主要信息為崩潰時的當前進程、線程和內核堆。
以上雖然以WINDOWS 7操作系統為實例對Dump文件的類型進行了示范性說明。本領域技術人員可以意識到,這種羅列僅僅是闡述性的,并不用于對本發明實施方式的保護范圍進行限定。
步驟102:調試分析引擎對Dump文件進行掃描,以得到Dump文件分析日志。
在這里,可以通過生成調試腳本的具體方式來執行該步驟。比如:可以通過多種程序語言或腳本生成工具來生成調度腳本。
具體地,調度腳本可以是使用特定的描述性語言,依據一定的格式編寫的可執行文件,又稱作宏或批處理文件。簡單地說,調度腳本可以包括一條條的文字命令,這些文字命令是可以看到的(如可以用記事本打開查看、編輯)。調度腳本程序在執行時,由預先設置的解釋器,將其一條條文字命令的翻譯成機器可識別的指令,并按程序順序執行。
示范性地,調度腳本以命令行的方式調度調試分析引擎,采用多線程對Dump文件進行掃描,以得到Dump文件分析日志。而且,調試分析引擎具體可以為WinDbg或Visual Studio等等。
步驟103:對Dump文件分析日志進行解析,以從中提取出崩潰(Crash)基礎特征。
優選地,可以生成特征提取腳本,然有由該特征提取腳本具體執行該步驟。
比如:可以通過多種程序語言或腳本生成工具來生成特征提取腳本,而且當調試分析引擎對Dump文件進行掃描得到Dump文件分析日志之后,可以由該特征提取腳本從Dump文件分析日志中提取出Crash基礎特征。
示范性地,特征提取腳本可以根據預先設置的正則表達式,從Dump文件分析日志中提取出Crash基礎特征。正則表達式通常被用來檢索和/或替換那些符合某個模式的文本內容。許多程序設計語言都支持利用正則表達式進行字符串操作。
Crash基礎特征描述了Crash的基本屬性,通常包括:崩潰所在的模塊名;崩潰所在的進程名;異常類型;崩潰所在的函數及文件;由調試分析引擎分析出的可能引發崩潰的原因;崩潰處的符號(Symbol)名;和/或調用堆棧信息,等等。
示范性地,Crash基礎特征包括但是不局限于:
(1)FOLLOWUP_IP:標識Crash所在的函數及文件;
(2)ExceptionCode:標識異常類型。如:c0000005(Access violation);
(3)PRIMARY_PROBLEM_CLASS:標識WinDbg分析出的可能引發Crash的原因。如:BAD_INSTRUCTION_PTR,等等;
(4)PROCESS_NAME:標識Crash所在進程。如:QPlus.exe;
(5)MODULE_NAME:標識Crash所在模塊。如:dockbar;
(6)SYMBOL_NAME:Crash處的symbol。如:dockbar!JointSelector::ClearItems+c;
(7)STACK_TEXT:詳細棧信息(module!class::fuc[....cpp]....)。
步驟104:特征分析腳本根據Crash基礎特征生成Crash輔助特征,并基于Crash基礎特征和Crash輔助特征對Dump文件進行判定。
優選地,可以生成特征分析腳本,然有由該特征分析腳本具體執行該步驟。
比如:可以通過多種程序語言或腳本生成工具來生成特征分析腳本,而且,該特征分析腳本可以根據Crash基礎特征生成Crash輔助特征,并基于 Crash基礎特征和Crash輔助特征對Dump文件進行判定。
示范性地,特征規則庫可以包括下列特征規則中的至少一個:字符串類型Crash的判定規則;容器類型Crash的判定規則;和/或野指針類型Crash的判定規則。可以根據歷史分析經驗生成特征規則庫,而且特征規則庫可以被不斷地更新完善。
比如:對于特征規則庫,其中包括的規則可以包括:
(1)字符串類型Crash的判定規則:
PRIMARY_PROBLEM_CLASS=STATUS_INVALID_PARAM
SYMBOL_NAME=msvcr80!wcslen、msvcr80!wcscpy_s、msvcr80!strncpy_s.....
(2)容器類型Crash的判定規則:
PRIMARY_PROBLEM_CLASS=STATUS_INVALID_PARAM
SYMBOL_NAME=msvcr80!_invalid_parameter_noinfo
(3)野指針類型Crash的判定規則:
PRIMARY_PROBLEM_CLASS=
BAD_INSTRUCTION_PTR、INVALID_POINTER_WRITE、
INVALID_POINTER_READ;
Crash輔助特征描述了Crash的輔助屬性,比如Crash作者、Crash哈希、Crash類型是否已知等等。可以基于Crash基礎特征確定出Crash輔助特征。
比如:特征分析腳本可以根據調用堆棧信息獲取Crash所在文件;特征分析腳本根據Crash所在文件,查詢版本管理(SVN)服務器以得到崩潰代碼作者(Crash_Owner);特征分析腳本根據Crash處的符號名(SYMBOL_NAME)和主要問題類(PRIMARY_PROBLEM_CLASS),計算Crash哈希(Crash_Hash);和/或特征分析腳本根據Crash哈希,查詢歷史Crash數據庫以判定該Dump文件的Crash類型是否為已知,等等。
優選地,可以將Dump文件的Crash基礎特征和Crash輔助特征保存進歷史Crash數據庫,并針對歷史Crash數據庫生成統計報表信息。
比如:可以將歷史Crash數據庫的表結構設計為如下所示;其中表1為Crash數據庫主表結構;表2為Crash數據庫明細表結構。
表1

表2

示范性地,在歷史Crash數據庫中,主表和明細表通過Crash_Hash連接。Crash_Hash唯一標識同一種Crash,不同的Dump文件可能對應同一個Crash_Hash。通過計算Crash_Hash,可以區分出某個Dump文件對應的Crash是否已知,從而避免重復工作。
Crash_Hash的計算公式如下所示:
Crash_Hash=MD5(MAIN_SYMBOL_NAME+SUB_SYMBOL_NAME+PRIMARY_PROBLEM_CLASS)
可以由特征分析腳本取得的Crash_Src(Crash所在文件),通過查詢SVN代碼服務器,可以獲取造成Crash的代碼作者(Crash_Owner)。在歷史Crash 數據庫完整記錄了某一次Crash相關的所有信息,通過這些信息,既可以歸納完善特征規則庫,又可以生成統計報表信息,使軟件穩定性的相關運營變得輕松。
基于上述詳細分析,可以通過多種方式實施本發明實施方式的技術方案。比如可以在網絡側實施本發明實施方式的Dump文件自動分析方案,而將軟件開發現場產生的Dump文件通過Web的方式上傳到網絡側,再在網絡側針對該Dump文件執行自動分析,從而可以統一為分散在現場的軟件開發者提供Dump文件自動分析服務。
在一個實施方式中,可以將轉儲文件的判定結果發送到產生轉儲文件的軟件崩潰端,并在該軟件崩潰端顯示所述轉儲文件的判定結果;或將轉儲文件的判定結果發送到第三方崩潰分析端,并在所述第三方崩潰分析端顯示所述轉儲文件的判定結果。
當將轉儲文件的判定結果發送到產生轉儲文件的軟件崩潰端時,可以輔助軟件崩潰端快速尋找到軟件崩潰的現場、原因或提供相應輔助信息;當將轉儲文件的判定結果發送到第三方崩潰分析端時,也有助于該第三方崩潰分析端對軟件崩潰的相關信息進行綜合分析。
以上雖然示范性地列舉出特征規則庫中的具體規則以及輔助Crash特征的示范性實例,本領域技術人員可以意識到,這種羅列僅僅是闡述性的,并不用于限定本發明實施方式的保護范圍。
以上雖然具體羅列了通過調度腳本、特征提取腳本和特征分析腳本的具體形式來執行本發明實施方式。本領域技術人員可以意識到,這種羅列僅是示范性的,并不用于限定本發明實施方式。比如,還可以預先生成各種格式的可執行文件或批處理命令等方式來執行本發明實施方式,本發明實施方式對于執行方式并無任何約束性限定。
比如:圖2為根據本發明實施方式根據Web方式上傳Dump文件及分析Dump文件的示意圖。
由圖2可見,軟件開發者可以通過WEB站點上傳需要分析的Dump文件 到位于網絡側的Crash自動化分析系統。在Dump文件進入Crash自動化分析系統的數據庫之前,Crash自動化分析系統可以觸發WinDbg等調試分析引擎進行掃描,生成詳細分析日志。
Crash自動化分析系統觸發特征提取腳本提取Crash的基礎特征;然后Crash自動化分析系統觸發特征分析腳本依據特征規則庫,對提取的Crash特征進行分析和識別,并結合查詢歷史Crash數據庫以得出判定結果并更新歷史Crash數據庫。最后,Crash自動化分析系統返回分析結果頁面給軟件開發者,然后管理員可以通過歷史Crash數據庫生成統計報表信息。
基于上述詳細分析,本發明實施方式還提出了一種Dump文件分析裝置。
圖3為根據本發明實施方式的Dump文件分析裝置的結構示意圖。
如圖3所示,該裝置包括:轉儲文件接收單元301、轉儲文件分析日志生成單元302、崩潰基礎特征提取單元303和轉儲文件判定單元304。其中:
轉儲文件接收單元301,用于接收轉儲文件;
轉儲文件分析日志生成單元302,用于調度調試分析引擎對所述轉儲文件進行掃描,以獲取轉儲文件分析日志;
崩潰基礎特征提取單元303,用于對所述轉儲文件分析日志進行解析,以提取出崩潰(Crash)基礎特征;
轉儲文件判定單元304,用于根據所述崩潰基礎特征生成崩潰輔助特征,并基于所述崩潰基礎特征和崩潰輔助特征對所述轉儲文件進行判定。
在一個實施方式中,轉儲文件分析日志生成單元301,用于使能預先生成的調度腳本調度調試分析引擎對所述轉儲文件進行掃描;
崩潰基礎特征提取單元302,用于使能預先生成的特征提取腳本對轉儲文件分析日志進行解析,以提取出崩潰基礎特征;
轉儲文件判定單元303,用于使能預先生成的特征分析腳本,根據崩潰基礎特征生成崩潰輔助特征,并基于崩潰基礎特征和崩潰輔助特征對轉儲文件進行判定。
在一個實施方式中,轉儲文件分析日志生成單元302,用于使能調度腳本 以命令行的方式調度調試分析引擎,采用多線程對所述轉儲文件進行掃描,以獲取轉儲文件分析日志。
在一個實施方式中,崩潰基礎特征提取單元303,用于使能特征提取腳本根據預先設置的正則表達式,從轉儲文件分析日志中提取出崩潰基礎特征。
優選地,崩潰基礎特征提取單元303,用于使能特征提取腳本根據正則表達式,從轉儲文件分析日志中提取出以下崩潰基礎特征中的至少一個:崩潰所在的模塊名;崩潰所在的進程名;異常類型;崩潰所在的函數及文件;由調試分析引擎分析出的可能引發崩潰的原因;崩潰處的符號(Symbol)名;和/或調用堆棧信息,等等。
優選地,崩潰基礎特征提取單元303,用于使能特征分析腳本根據預先設置的特征規則庫對崩潰基礎特征進行特征分析,以生成崩潰輔助特征。特征規則庫包括下列特征規則中的至少一個:字符串類型崩潰的判定規則;容器類型崩潰的判定規則;和/或野指針類型崩潰的判定規則。
具體地,崩潰基礎特征提取單元301,用于使能特征分析腳本根據所述崩潰基礎特征生成崩潰輔助特征包括下列處理中的至少一個特征:
分析腳本根據調用堆棧信息獲取崩潰所在文件;
特征分析腳本根據所述崩潰所在文件,查詢版本管理(SVN)服務器以得到崩潰代碼作者(Crash_Owner);
特征分析腳本根據崩潰處的符號名(SYMBOL_NAME)和主要問題類(PRIMARY_PROBLEM_CLASS),計算崩潰哈希(Crash_Hash);和/或
特征分析腳本根據崩潰哈希,查詢歷史崩潰數據庫,以判定該轉儲文件的崩潰類型是否為已知。
在一個實施方式中,進一步包括統計報表信息生成單元305。其中:
轉儲文件接收單元301,用于通過WEB方式接收轉儲文件;
統計報表信息生成單元305,用于將所述轉儲文件的崩潰基礎特征和崩潰輔助特征保存進歷史崩潰數據庫,并針對所述歷史崩潰數據庫生成統計報表信息。
優選地,轉儲文件判定單元303,進一步用于將所述轉儲文件的判定結果發送到產生所述轉儲文件的軟件崩潰端,并在所述軟件崩潰端顯示所述轉儲文件的判定結果;或將所述轉儲文件的判定結果發送到第三方崩潰分析端,并在所述第三方崩潰分析端顯示所述轉儲文件的判定結果。
基于上述詳細分析,本發明實施方式還提出了一種轉儲文件分析系統。
圖4為根據本發明實施方式的Dump文件分析系統的結構圖。由圖4可見,該Dump文件分析系統包括:位于本地端的轉儲文件發送裝置401和位于網絡側的轉儲文件分析裝置402;其中:
轉儲文件發送裝置401,用于采集在本地的程序崩潰(Crash)所產生的Dump文件,并通過與轉儲文件分析裝置的WEB連接向轉儲文件分析裝置發送該Dump文件;
轉儲文件分析裝置402,用于接收該Dump文件,并使能預先生成的調度腳本調度調試分析引擎對Dump文件進行掃描以獲取轉儲文件分析日志;使能預先生成的特征提取腳本從所述轉儲文件分析日志中提取出Crash基礎特征;使能預先生成的特征分析腳本根據所述Crash基礎特征生成Crash輔助特征,并基于所述Crash基礎特征和Crash輔助特征對所述Dump文件進行判定,并將所述判定結果發送到所述轉儲文件發送裝置401。
綜上所述,在本發明實施方式中,接收轉儲文件;調度調試分析引擎對所述轉儲文件進行掃描,以獲取轉儲文件分析日志;對所述轉儲文件分析日志進行分析,以提取出崩潰(Crash)基礎特征;根據所述崩潰基礎特征生成崩潰輔助特征,并基于所述崩潰基礎特征和崩潰輔助特征對所述轉儲文件進行判定。由此可見,應用本發明實施方式之后,實現了針對Dump文件的自動分析,從而提高了Dump文件分析效率。
而且,應用本發明實施方式之后,可以快速定位和解決軟件Crash問題,從而提高了軟件的穩定性。
不僅與此,通過實現Dump文件的自動分析,還顯著降低了專業人員培訓費用,從而降低了軟件開發成本。
以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

關于本文
本文標題:一種轉儲文件分析方法、裝置和系統.pdf
鏈接地址:http://www.pqsozv.live/p-6180586.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影