本發(fā)明涉及計算機(jī)軟件領(lǐng)域,特別涉及一種車間軟件異常分析處理維護(hù)及統(tǒng)計的方法。
背景技術(shù):
軟件下發(fā)后,在產(chǎn)線運行過程中會出現(xiàn)偶發(fā)性的致命錯誤導(dǎo)致,程序崩潰,自動退出,影響產(chǎn)能效率,此類異常出現(xiàn)的次數(shù)需要統(tǒng)計分析。
由于一些錯誤是偶發(fā)性,不容易復(fù)現(xiàn),很難定位到該類異常的代碼錯誤位置,給此類異常的修復(fù)帶來一定的困難。
軟件異常退出之后,產(chǎn)線作業(yè)人員需要重新找到該軟件并打開,花費一定的時間的同時,存在用錯軟件的隱患。
技術(shù)實現(xiàn)要素:
為了解決上述的技術(shù)問題,本發(fā)明的第一個目的是提供一種軟件崩潰信息收集方法,該方法為一種分可靠分析影響產(chǎn)能因素的手段,其產(chǎn)生的dump調(diào)試文件,提高了軟件維護(hù)的效率,軟件自動重啟的功能,更是防范了其他生產(chǎn)異常的產(chǎn)生。本發(fā)明的第二個目的是提供采用上述的方法的系統(tǒng)。
為了實現(xiàn)上述的第一個目的,本發(fā)明采用了以下的技術(shù)方案:
一種軟件崩潰信息收集方法,該方法包括處理模塊,該方法包括以下的步驟:
1)軟件程序初始化過程中,加載動態(tài)鏈接庫;
2)調(diào)取動態(tài)鏈接庫中初始化函數(shù),傳入初始化參數(shù),初始化參數(shù)為出現(xiàn)異常時要保存到數(shù)據(jù)庫上的內(nèi)容;
3)編譯程序源代碼,生成exe、pdb、map三個文件;
4)下發(fā)exe文件,隨同exe文件,需要一個配置參數(shù)文件,參數(shù)文件的參數(shù)為一旦觸發(fā)處理模塊運行時要進(jìn)行執(zhí)行內(nèi)容的配置參數(shù);
5)軟件運行時處理模塊一直在等待軟件無法處理的異常來觸發(fā)處理模塊運行;
6)當(dāng)異常觸發(fā)處理模塊后,處理模塊捕獲異常對象,解析異常對象,將異常對象以一份簡單的文本記錄下來,并調(diào)用MiniDump模塊,保存內(nèi)存dump文件以供調(diào)試;
7)上傳數(shù)據(jù)庫,記錄軟件異常信息;
8)重啟軟件,處理模塊獲取當(dāng)前軟件進(jìn)程的映像路徑,生成批處理文件,延遲執(zhí)行,等待當(dāng)前進(jìn)程完全退出后立刻重新打開軟件。
作為優(yōu)選,所述的步驟2)初始化參數(shù)包括用戶信息和產(chǎn)品信息。
作為優(yōu)選,所述的步驟2)初始化函數(shù)實施方式包括保存初始化參數(shù)至內(nèi)存中、注冊異常捕獲函數(shù)以及初始化MiniDump模塊。
作為優(yōu)選,所述的步驟4)配置參數(shù)包括是否上傳數(shù)據(jù)庫、數(shù)據(jù)的地址口令以及dump文件的保存位置。
作為優(yōu)選,所述的步驟6)文本記錄下來的內(nèi)容包括發(fā)生異常的模塊、內(nèi)存地址和時間。
作為優(yōu)選,所述的步驟6)調(diào)試使用vs2005及以上版本進(jìn)行調(diào)試。
作為優(yōu)選,所述的步驟6)產(chǎn)生dump文件的exe,與當(dāng)時編譯該exe文件時產(chǎn)生的exe文件pdb、map以及源碼文件一一對應(yīng)。
為了實現(xiàn)上述的第二個目的,本發(fā)明采用了以下的技術(shù)方案:
一種軟件崩潰信息收集系統(tǒng),該系統(tǒng)包括處理模塊,所述的處理模塊采用上述任意一項技術(shù)方案所述的方法進(jìn)行軟件崩潰信息收集。
本發(fā)明由于采用了上述的技術(shù)方案,具有以下的特點:
1、本發(fā)明在每一次軟件發(fā)生異常的時候,會向指定數(shù)據(jù)庫進(jìn)行記錄本次異常,記錄的信息可以在加載該模塊并初始化時傳入,這里的傳入的參數(shù)稱為初始化參數(shù)。初始化參數(shù)是在軟件崩潰時,該模塊要上傳的一些數(shù)據(jù),如當(dāng)前生產(chǎn)的產(chǎn)品型號,通過分析上傳后的數(shù)據(jù),可以了解到軟件異常對該型號產(chǎn)品的產(chǎn)能的影響等。
2、本發(fā)明還提供了軟件bug追蹤功能,發(fā)生異常時保存內(nèi)存轉(zhuǎn)儲文件——dump文件,通過dump文件,可快速定位軟件發(fā)生異常的位置,降低了定位錯誤代碼位置的難度,提高軟件維護(hù)效率。
3、本發(fā)明再異常發(fā)生后還會自動重新打開軟件,該功能可以有效的節(jié)省重新尋找并打開軟件的時間,同時避免了重新打開軟件時用錯軟件的風(fēng)險,為產(chǎn)線的產(chǎn)能有了更高的保障。
附圖說明
圖1為本發(fā)明的方法流程框圖。
圖2為本發(fā)明處理模塊的流程框圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明的具體實施方式做一個詳細(xì)的說明。
1、本發(fā)明利用Windows異常處理機(jī)制,捕獲軟件無法處理的異常,使用基于Windows的“minidump”的崩潰轉(zhuǎn)存技術(shù),保存dump文件,使用Windows相應(yīng)的調(diào)試API,IDE定位異常位置。
2、加載動態(tài)鏈接庫,獲取初始化函數(shù),并通過傳入初始化參數(shù)初始化即可,其中編譯出來的pdb和map文件需要跟釋放出來的exe文件對應(yīng)保存起來。
3、如圖1所示一種軟件崩潰信息收集方法,具體操作流程如下:
1)軟件程序初始化過程中,加載本發(fā)明動態(tài)鏈接庫;
2)調(diào)取庫中初始化函數(shù),傳入初始化參數(shù),初始化參數(shù)包括用戶信息,產(chǎn)品信息等,是出現(xiàn)異常時要保存到數(shù)據(jù)庫上的內(nèi)容;
3)初始化函數(shù)實施方式包括,保存初始化參數(shù)至內(nèi)存中、注冊異常捕獲函數(shù)、以及初始化MiniDump模塊;即圖2模塊運行流程中的初始化;
4)編譯程序源代碼,生成exe、pdb、map三個文件;
5)下發(fā)exe文件,隨同exe文件,需要一個配置參數(shù)文件,該文件內(nèi)的參數(shù)為一旦觸發(fā)本發(fā)明模塊運行時(即出現(xiàn)錯誤時)要進(jìn)行執(zhí)行內(nèi)容的配置參數(shù);包括是否上傳數(shù)據(jù)庫、數(shù)據(jù)的地址口令以及dump文件的保存位置等等;
6)軟件運行時模塊一直在等待軟件無法處理的異常來觸發(fā)該模塊運行,即圖2模塊運行流程②;
7)當(dāng)異常觸發(fā)該模塊后,模塊捕獲異常對象,解析異常對象,將異常對象以一份簡單的文本記錄下來,包括發(fā)生異常的模塊、內(nèi)存地址、時間等信息,并調(diào)用MiniDump模塊,保存內(nèi)存dump文件以供調(diào)試,即圖2模塊運行流程③,其中保存位置有配置參數(shù)指定;
8)上傳數(shù)據(jù)庫,記錄軟件異常信息,及異常發(fā)生時間、地點、作業(yè)員等信息,即圖2模塊運行流程 ④,此類信息由初始化參數(shù)獲取,是否上傳及上傳的數(shù)據(jù)庫地址等信息由配置參數(shù)指定;
9)重啟軟件,模塊獲取當(dāng)前軟件進(jìn)程的映像路徑,生成批處理文件,延遲執(zhí)行,等待當(dāng)前進(jìn)程完全退出后立刻重新打開軟件,即圖2模塊運行流程 ⑤。