亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種程序崩潰信息上報的方法及系統(tǒng)的制作方法

文檔序號:6560195閱讀:151來源:國知局
專利名稱:一種程序崩潰信息上報的方法及系統(tǒng)的制作方法
技術領域
本發(fā)明涉及計算機領域,尤其涉及一種程序崩潰信息上報的方法及系統(tǒng)。
技術背景當一個應用程序執(zhí)行了非法的計算機指令操作后,程序若出現(xiàn)銀潰,將給 應用系統(tǒng)造成巨大的損失。如果知道程序中的哪一行導致了系統(tǒng)崩潰,這樣就 能有針對性的進行改正。在vc環(huán)境下可以利用出現(xiàn)程序崩潰時vc的自動跳轉,定位到出錯代碼 行。但在大量的4昔誤出現(xiàn)時,vc本身的出錯跳轉往往會失靈。另外有一種輔 助查找程序崩潰代碼行的方法,它利用編譯時生成MAP文件中的信息來定位 代碼行。但是,這樣的處理局限于特定的程序語言環(huán)境中,并且只能實現(xiàn)程序 錯誤行的查找。當程序崩潰后,如果崩潰時的錯誤信息不上報到服務器進行收集,就4, 對程序錯-誤進行統(tǒng)計和分析,不便于程序的優(yōu)化。發(fā)明內容有鑒于此,本發(fā)明提供一種程序崩潰信息上報的方法及系統(tǒng),用以解決現(xiàn) 有技術中存在的由于程序崩潰信息不上報而導致的難以對程序錯誤進行統(tǒng)計 和分析,以及不便于程序優(yōu)化的問題。本發(fā)明提供以下技術方案一種程序崩潰信息上報的方法,包括步驟 200610103916.5說明書第2/9頁服務器對所述應用程序崩潰時的出錯地址和錯誤信息內容進行分析,并根 據所述出錯地址對镅-〖吳信息內容進行統(tǒng)計歸類和存儲。根振上述方法所述偵測程序位于客戶端側,內嵌于應用程序中。所述上凈艮程序位于客戶端側,并與各應用程序相互獨立設置。所述偵測程序將應用程序崩潰時的出錯地址和錯誤信息內容保存為文件,并以該文件路徑為參數提供給上報程序處理。所述上^^f呈序從所述偵測程序提供的參數中提取保存出錯地址和錯誤信息內容的文件路徑,根據該文件路徑從文件中讀取出錯地址和錯誤信息內容,并上報至服務器。一種程序崩潰信息處理系統(tǒng),包括崩潰信息捕獲單元,位于客戶端側,用于捕獲應用程序崩潰時的出錯地址 和錯誤信息內容;崩潰信息上報單元,位于客戶端側,用于接收所述崩潰信息捕獲單元提供 的出錯地址和4t^信息內容,并將其上報至崩潰信息收集單元;崩潰信息收集單元,位于服務器側,用于接收并分析崩潰信息上報單元上 報的出錯地址和^"i吳信息內容,以及根據所述出錯地址對錯誤信息內容進行統(tǒng) 計歸類和存儲。所述崩潰信息捕獲單元包括設置模塊,用于調用操作系統(tǒng)提供的設置崩潰處理函數的應用程序接口 , 設置崩潰處理函數;捕獲模塊,用于執(zhí)行所述崩潰處理函數的功能以捕獲應用程序崩潰時的出 錯地址和錯誤信息內容,并將其保存為文件,以該文件路徑為參數提供給崩潰 信息上報單元處理。所述崩潰信息上凈艮單元包括接收模塊,用于接收從捕獲模塊傳入的參數; 控制模塊,用于從所述接收單元接收到的參數中提取保存出錯地址和4t^ 信息內容的文件路徑,根據該文件路徑從文件中讀取出錯地址和錯誤信息內容;上報模塊,用于將所述控制單元提供的出錯地址和4綠信息內容上才艮至崩 潰信息收集單元。所述崩潰信息收集單元包括接收模塊,用于接收崩潰信息上報單元上報的應用程序崩潰時的出錯地址 和錯誤信息內容;控制模塊,用于分析所述接收單元接收到的出錯地址和錯誤信息內容,并根據所述出錯地址對錯誤信息內容進行統(tǒng)計歸類;存儲模塊,用于存儲經所述控制單元統(tǒng)計歸類的應用程序崩潰時的出錯地 址和錯誤信息內容。本發(fā)明有益效果如下本發(fā)明實現(xiàn)了當應用程序崩潰時,捕獲出錯地址和m信息內容并將其上 報至服務器,由服務器對其進行分析、歸類以及存儲,有利于后續(xù)根據崩潰出 錯數量來選出崩潰出現(xiàn)次數較多的錯誤對程序進行優(yōu)化處理。


圖1為本發(fā)明實施例中程序崩t信息處理系統(tǒng)的結構示意圖; 圖2為本發(fā)明實施例中偵測程序的模塊示意圖; 圖3為本發(fā)明實施例中上報程序的模塊示意圖; 圖4為本發(fā)明實施例中服務器程序的模塊示 意圖; 圖5為本發(fā)明實施例中程序崩潰時的處理流程圖。
具體實施例方式
序錯誤進行統(tǒng)計和分析,以及不便于程序優(yōu)化的問題,本發(fā)明對程序崩潰信息 進行上報和歸類存儲。參閱圖l所示為本實施例中程序崩潰信息上報系統(tǒng)的結構示意圖,包括崩潰信息捕獲單元100、崩潰信息上報單元101、崩潰信息收集單元102;所述崩 潰信息捕獲單元IOO,位于客戶端側,用于捕獲應用程序崩潰時的出錯地址和 錯誤信息內容;所述崩潰信息上報單元101,位于客戶端側,用于接收所述崩 潰信息捕獲單元100提供的出錯地址和錯誤信息內容,并將其上報至崩潰信息 收集單元102;所述崩潰信息收集單元102,位于服務器側,用于接收并分析 崩潰信息上報單元101上報的出錯地址和錯誤信息內容,以及根據所述出錯地 址對錯誤信息內容進行統(tǒng)計歸類和存儲。所述崩潰信息捕獲單元100的處理由一個偵測程序完成,參閱圖2所示為 該程序的模塊示意圖,包括設置模塊200、捕獲模塊201;所述設置模塊200, 用于調用操作系統(tǒng)提供的設置崩潰處理函數的應用程序接口 (API),設置崩潰 處理函數;所述捕獲模塊201,其處理由所述崩潰處理函數完成,用于捕獲應 用程序崩潰時的出錯地址和錯誤信息內容,并將其保存為文件,以該文件路徑 為參數提供給崩潰信息上報單元101處理。所述設置模塊200調用操作系統(tǒng)提供的API設置崩潰處理函數;當應用程 序開始執(zhí)行,所述設置模塊200利用所述API判斷該應用程序是否崩潰,確定 應用程序崩潰時,自動進行所述捕獲模塊201的處理,在處理完畢后應用程序 退出。所述設置模塊200位于應用程序執(zhí)行后的第一個函數內,以便于捕獲所有 應用程序啟動后出現(xiàn)的崩潰。所述捕獲模塊201通過操作系統(tǒng)提供的API捕獲錯誤信息,錯誤信息包括 程序出錯地址,程序出錯時的函數調用堆棧。下面給出程序出錯信息的例子來 具體說明
Address: 0x60B23922 Call stack:6224)0x00400000[7CBF]Music.exe:(l,204,4848064,10090108,1244120) 0x00400,lA62]Musicexe:(腳畫,4335430,10090096,10090096) 0x00400000[22783]Music.exe:(10090108,10031328,0,4212766) 0x00400000[189D9〗Music.exe:(13024,0,4696248,1244448) 0x60B20000[lCEA] MFC42.DLL: Qrdinal6374[+22](13024,0,0,1244724)0x77D10000[8816]USER32.dll:GetDC[+14F](0,1622285185,263742,13024)0x60B20000[llCE]MFC42.DLL:Ordinal5307[+3A](4847712,4847712,1245120,-l)0x60B20000[B4FE]MFC42.DLL:Ordinall576[+52](4194304,0,1319867,10)0x00400000[6D7FD]Music.exe: (4194304,0,1319867,10)0x00400000[65DDA]Music.exe:(632176,12513504,2147299328,陽214193函)0x7C800000[16D4F]kemeB2.dll:RegisterWaitForInputIdle[+49](2088856920,0,0,0)0x7C800000[399F3] k置132.dll: FindAtomW[+94](0,0,0,0)以上例子中,Address: 0x60B23922代表該程序崩潰時執(zhí)行的指令的地址為0x60B23922,從該地址可以追查到程序出錯的函數,以便于從代碼中查找錯誤。 函數調用堆棧Call Stack中的每一行是程序出錯時的函數調用,最上一條的是程序崩潰時調用的函數,第二條函數調用第一條函數,第三條函數調用第二條函數,以此類推。 例如0x00400000[7CBF] Music.exe: (10090204,4848064,10090108,1244120)
0x00400000代表4莫塊Music.exe的虛擬內存地址,7CBF是相對于才莫塊地 址的相對地址。從0x00400000[7CBF]就可以查詢到對應的函數。Music.exe是 模塊名。從這條信息中,就可以查到對應的函數是在Music.exe中的7CBF中。所述捕獲模塊201在捕獲了出錯地址和錯誤信息內容后,將其保存為文件。所述崩潰信息上才艮單元101的處理由一個上報程序完成。所述捕獲模塊 201以保存出錯地址和錯誤信息內容的文件路徑作為參數調用上報程序,所述 上報程序讀取該文件進行上4艮。參閱圖3所示為所述上報程序的模塊示意圖,包括接收模塊300、控制 模塊301、上報模塊302;所述接收模塊300,用于接收從捕獲模塊201傳入的 參數;所述控制模塊301,用于從所述接收模塊300接收到的參數中提取保存 出錯地址和錯誤信息內容的文件路徑,根據該文件路徑從文件中讀取出錯地址 和錯誤信息內容;所述上報模塊302,用于將所述控制模塊301提供的出錯地 址和镅-溪信息內容上才艮至崩潰信息收集單元102。所述上報程序可以與偵測程序一起嵌入到應用程序中,但為了不影響程序 崩潰時結束運行,較佳的方式是所述上報程序設置為獨立的程序(即不內嵌在 應用程序中)。所述上報程序從傳入的參數中提取保存出錯地址和錯誤信息內容的文件 路徑,根據文件路徑從該文件中讀取崩潰信息,并上報至所述崩潰信息收集單 元102。例如,在超文本傳輸協(xié)議(http)的統(tǒng)一資源定位符(URL)中帶上程序 崩潰地址,在上報的內容中帶上崩潰信息,如http://bugreport..com/bugreport.cgi addr=60B23922所述崩潰信息收集單元102的處理由一個服務器程序完成,參閱圖4所示 為所述服務器程序的模塊示意圖,包括接收模塊400、控制模塊401、存儲模 塊402;所述接收模塊400,用于接收崩潰信息上報單元101上報的應用程序 崩潰時的出錯地址和錯誤信息內容;所述控制模塊401,用于分析所述接收模塊400接收到的出錯地址和錯誤信息內容,并根據所述出錯地址對錯誤信息內 容進行統(tǒng)計歸類;所述存儲^f莫塊402,用于存儲經所述控制單元統(tǒng)計歸類的應 用程序崩潰時的出錯地址和錯誤信息內容。所述控制模塊401對應用程序崩潰時的出錯地址和錯誤信息內容進行統(tǒng)計 歸類時,根據所述出錯地址對錯誤信息內容進行歸類,使用下表崩潰地址上報數量出錯信息0x60B23922341Call stack: 0x60B20000[3922]MFC42.DLL: Ordinal 1584[+A]( 16777184, 16649928,36614 00,16776224)0x30B237331Call stack: 0x00400000[ 11 A62]Music.exe:(10090096,43 3 5430, 10090096, 10090096)0x20C213451345Call stack: 0x7C800000[399F3]kemel32.dll:FindAtomW [+94](0,0,0,0)Ox50F65321765Call Stack: 0x7C812000[399F3]kemeB2.dll:GetThread[+ 94](0,0,0,0)所述控制模塊401在收到一個崩潰上報時,首先確定是否已經存在該崩潰 地址對應的信息,如果有,則在該崩潰信息的上報數量中加1,如果沒有,則 將該崩潰信息添加到上述表格,上報數量為1。最后由所述存儲模塊402將以 上表統(tǒng)計歸類的應用程序崩潰時的出錯地址和錯誤信息內容存儲。參閱圖5,以圖1所示的系統(tǒng)結構為例,程序崩潰時的處理流程如下步驟501、開始執(zhí)行應用程序。步驟502 、所述設置模塊200調用操作系統(tǒng)提供的應用程序接口設置崩潰 處理函數。
步驟503、所述設置模塊200利用操作系統(tǒng)提供的應用程序接口判斷該應 用程序是否崩潰,若是,繼續(xù)步驟504;若不是,則返回步驟501,繼續(xù)執(zhí)行 應用程序。步驟504、所述設置模塊200在確定應用程序崩潰時,通過操作系統(tǒng)提供 的應用程序接口捕獲出錯地址和錯誤信息內容,并將其保存為文件。步驟505、所述捕獲才莫塊201在將捕獲到的出錯地址和4 信息內容保存 為文件后,設置調用所述上報程序的參數為該文件路徑。步驟506、所述捕獲模塊201以保存出錯地址和錯誤信息內容的文件路徑 為參數調用所述上報程序。步驟507、所述捕獲模塊201的處理完畢后應用程序退出。步驟508、所述上報程序從傳入的參數中提取保存出錯地址和錯誤信息內 容的文件路徑。步驟509、所述上報程序根據保存出錯地址和錯誤信息內容的文件路徑從 該文件中讀取出錯地址和錯誤信息內容,并進行上報。步驟510、所述崩潰信息收集單元102中的接收模塊400接收崩潰信息上 報單元101上報的出錯地址和錯誤信息內容。步驟511、所述崩潰信息收集單元102中的控制模塊401對所述接收模塊 400接收到的應用程序崩潰時的出錯地址和錯誤信息內容進行分析,并根據所 述出錯地址對錯誤信息內容進行統(tǒng)計歸類,控制模塊401在收到一個崩潰上報 時,首先確定是否已經存在該崩潰地址對應的信息,如果有,則在該崩潰信息 的上報數量中加1,如果沒有,則添加將該崩潰信息,上報數量為1。所述崩 潰信息收集單元102中的存儲;^莫塊402將統(tǒng)計歸類后的應用程序崩潰時的出錯 地址和錯誤信息內容存儲。從上述實施例可知,本發(fā)明實現(xiàn)了當應用程序崩潰時,捕獲出錯地址和錯 誤信息內容并將其上報至服務器,由服務器對其進行分析、歸類以及存儲,有
利于后續(xù)根據崩潰出錯數量來選出崩潰出現(xiàn)次數較多的錯誤對程序進行優(yōu)化 處理。顯然,本領域的技術人員可以對本發(fā)明進行備種改動和變型而不脫離本發(fā) 明的精神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權利要求 及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
1、一種程序崩潰信息上報的方法,其特征在于,包括步驟偵測程序捕獲應用程序崩潰時的出錯地址和錯誤信息內容并通過上報程序將其上報至服務器;以及服務器對所述應用程序崩潰時的出錯地址和錯誤信息內容進行分析,并根據所述出錯地址對錯誤信息內容進行統(tǒng)計歸類和存儲。
2、 如權利要求l所述的方法,其特征在于,所述偵測程序位于客戶端側, 內嵌于應用程序中。
3、 如權利要求l所述的方法,其特征在于,所述上報程序位于客戶端側, 并與各應用程序相互獨立設置。
4、 如權利要求l、 2或3所述的方法,其特征在于,所述偵測程序將應用 程序崩潰時的出錯地址和錯誤信息內容保存為文件,并以該文件路徑為參數提 供給上報程序處理。
5、 如權利要求3所述的方法,其特征在于,所述上報程序從所述偵測程 序提供的參數中提取保存出錯地址和錯誤信息內容的文件路徑,根據該文件路 徑從文件中讀取出錯地址和錯誤信息內容,并上報至服務器。
6、 一種程序崩潰信息處理系統(tǒng),其特征在于,包括 崩潰信息捕獲單元,位于客戶端側,用于捕獲應用程序崩潰時的出錯地址和錯誤信息內容;崩潰信息上報單元,位于客戶端側,用于接收所述崩潰信息捕獲單元提供 的出錯地址和錯誤信息內容,并將其上報至崩潰信息收集單元;崩潰信息收集單元,位于服務器側,用于接收并分析崩潰信息上報單元上 報的出錯地址和錯誤信息內容,以及根據所述出錯地址對錯誤信息內容進行統(tǒng) 計歸類和存儲。
7、 如權利要求6所述的系統(tǒng),其特征在于,所述崩潰信息捕獲單元包括 設置模塊,用于調用操作系統(tǒng)提供的設置崩潰處理函數的應用程序接口 , 設置崩潰處理函數;捕獲模塊,用于執(zhí)行所述崩潰處理函數的功能以捕獲應用程序崩潰時的出 錯地址和錯誤信息內容,并將其保存為文件,以該文件路徑為參數提供給崩潰 信息上報單元處理。
8、 如權利要求6或7所述的系統(tǒng),其特征在于,所述崩潰信息上報單元 包括接收模塊,用于接收從捕獲模塊傳入的參數;控制模塊,用于從所述接收單元接收到的參數中提取保存出錯地址和錯誤 信息內容的文件路徑,根據該文件路徑從文件中讀取出錯地址和錯誤信息內 容;上報模塊,用于將所述控制單元提供的出錯地址和錯誤信息內容上報至崩 潰信息收集單元。
9、 如權利要求8所述的系統(tǒng),其特征在于,所述崩潰信息收集單元包括 接收模塊,用于接收崩潰信息上報單元上報的應用程序崩潰時的出錯地址和錯誤信息內容;控制模塊,用于分析所述接收單元接收到的出錯地址和錯誤信息內容,并 根據所述出錯地址對錯誤信息內容進行統(tǒng)計歸類;存儲模塊,用于存儲經所述控制單元統(tǒng)計歸類的應用程序崩潰時的出錯地 址和錯誤信息內容。
全文摘要
本發(fā)明公開了一種程序崩潰信息上報的方法,用以解決現(xiàn)有技術中存在的由于程序崩潰信息不上報而導致的難以對程序錯誤進行統(tǒng)計和分析,以及不便于程序優(yōu)化的問題;該方法利用偵測程序捕獲應用程序崩潰時的出錯地址和錯誤信息內容并通過上報程序將其上報至服務器;以及服務器對所述應用程序崩潰時的出錯地址和錯誤信息內容進行分析,并根據所述出錯地址對錯誤信息內容進行統(tǒng)計歸類和存儲。本發(fā)明還同時公開一種程序崩潰信息處理系統(tǒng)。
文檔編號G06F11/36GK101114253SQ20061010391
公開日2008年1月30日 申請日期2006年7月26日 優(yōu)先權日2006年7月26日
發(fā)明者冼業(yè)成, 劉化靜, 李訓耕, 謙 楊, 林友堯, 王清明, 陳啟祥 申請人:騰訊科技(深圳)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1