亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

操作系統(tǒng)內(nèi)核級錯誤定位方法及裝置的制作方法

文檔序號:6371266閱讀:171來源:國知局
專利名稱:操作系統(tǒng)內(nèi)核級錯誤定位方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及操作系統(tǒng)內(nèi)核級錯誤定位方法及裝置。
背景技術(shù)
在使用計算機的過程中,時常會遭遇操作系統(tǒng)發(fā)生內(nèi)核級錯誤進而死機的現(xiàn)象。例如,在Windows操作系統(tǒng)中,將這種現(xiàn)象稱為藍屏死機((Blue Screen of Death, BSOD)。所謂藍屏死機,是指當(dāng)Windows操作系統(tǒng)崩潰或停止執(zhí)行(由于災(zāi)難性的錯誤或者內(nèi)部條件阻止系統(tǒng)繼續(xù)運行下去)時所顯示的藍色屏幕。本質(zhì)上說,藍屏死機是Windows操作系統(tǒng)處理錯誤的一種機制,當(dāng)Windows內(nèi)核遇到無法修復(fù)的錯誤時,以藍屏死機的形式展現(xiàn),并在藍屏界面簡要地給出錯誤可能的原因及建議,它可能會長時間停留在顯示屏上,也可能會在短時間顯示之后自動重新啟動計算機。出現(xiàn)藍屏,一般是windows操作系統(tǒng)遇到了非常嚴(yán)重的錯誤,影響也是非常大的。這種錯誤多數(shù)情況下是由于第三方軟件或者硬件上的錯誤導(dǎo)致的,例如,在第三方軟件方面,如果同時安裝兩個或多個殺毒軟件,它們就可能發(fā) 生沖突,搶奪底層控制權(quán),使系統(tǒng)出現(xiàn)藍屏死機;在硬件方面,如果將兩個不同的內(nèi)存混插則系統(tǒng)讀取數(shù)據(jù)時由于時鐘周期不同,讀取數(shù)據(jù)就會出錯,從而出現(xiàn)藍屏死機,等等。當(dāng)發(fā)生藍屏死機后,需要定位到具體導(dǎo)致藍屏死機的原因并解決之,以避免以后再次由于同樣的原因?qū)е滤{屏死機的現(xiàn)象。藍屏界面信息通常是以概述的形式給出問題的原因,例如,“錯誤原因進程以過高的中斷請求級別訪問沒有權(quán)限訪問的內(nèi)存”,也即,有程序使用了不正確的內(nèi)存地址,但是并不會給出是哪個程序使用了不正確的內(nèi)存地址。因此,雖然藍屏界面信息可以幫助定位導(dǎo)致藍屏死機的原因,但是由于藍屏界面信息太少,使得在絕大部分情況下,通過藍屏界面信息,并不能準(zhǔn)確找到問題原因。因此,對于大多數(shù)人來說,甚至是一些專業(yè)人員,最后都只得用排除法查找問題依次卸載各個軟件或重新安裝Windows系統(tǒng)來確定是不是軟件導(dǎo)致,或者,依次替換硬件來確定是否硬件導(dǎo)致等等。為了便于確定導(dǎo)致藍屏死機的原因,Windows操作系統(tǒng)提供了 DUMP機制的選項,通過在Windows系統(tǒng)中一些設(shè)置,使系統(tǒng)出現(xiàn)藍屏死機時,自動保存發(fā)生錯誤時的信息到磁盤文件(即藍屏文件,或稱DUMP文件)。這樣方便日后通過分析DUMP文件來定位錯誤原因。并且,Microsoft還提供了可以用來分析DUMP文件的調(diào)試工具Windbg。Windbg提供了大量的命令,通過這些命令組合可以發(fā)掘DUMP文件中包含的信息,如藍屏代碼、進程、線程、加載模塊、堆棧等信息,通過對這些信息的分析,可能找到導(dǎo)致藍屏的模塊。另外windbg也提供了一個簡單的命令! analyze-V,通過該命令可以直接得到藍屏的一些重要信肩、O但是,通過Windbg調(diào)試工具對DUMP文件進行分析時,需要用戶熟悉并且知道如何使用Windbg提供的命令,并且在輸入命令后,還需要用戶能夠看懂Windbg返回的信息。然而Windbg調(diào)試工具返回的信息又通常都是以代碼的形式存在的,因此,對于一般的用戶而言,仍然無法定位導(dǎo)致藍屏死機的原因,更加無法得到解決問題的方案。

發(fā)明內(nèi)容
本發(fā)明提供了操作系統(tǒng)內(nèi)核級錯誤定位方法及裝置,能夠自動定位到引起所述內(nèi)核級錯誤的錯誤源。本發(fā)明提供了如下方案一種操作系統(tǒng)內(nèi)核級錯誤定位方法,當(dāng)操作系統(tǒng)發(fā)生內(nèi)核級錯誤提示時,自動生成記載有提示時刻的系統(tǒng)狀態(tài)信息的日志文件;所述方法包括通過操作系統(tǒng)提供的接口訪問所述日志文件,獲取當(dāng)前的內(nèi)核級錯誤的類型代碼;根據(jù)預(yù)置的第一對應(yīng)關(guān)系,確定當(dāng)前的內(nèi)核級錯誤的類型代碼對應(yīng)的待獲取的錯誤定位相關(guān)信息;所述第一對應(yīng)關(guān)系為類型代碼與待獲取的錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系; 從所述日志文件中提取所述待獲取的錯誤定位相關(guān)信息;根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的第二對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源;所述第二對應(yīng)關(guān)系為錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系??蛇x的,還包括根據(jù)預(yù)置的第三對應(yīng)關(guān)系,獲取引起所述內(nèi)核級錯誤的錯誤源對應(yīng)的解決方案;所述第三對應(yīng)關(guān)系為錯誤源與解決方案之間的對應(yīng)關(guān)系;根據(jù)所述解決方案執(zhí)行相應(yīng)的處理,以便對所述操作系統(tǒng)內(nèi)核級錯誤進行修復(fù)??蛇x的,所述根據(jù)所述解決方案執(zhí)行相應(yīng)的處理包括展現(xiàn)所述錯誤源的信息,以便對所述錯誤源執(zhí)行處理操作,進而完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù);或者,對所述錯誤源執(zhí)行處理操作,以便完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù)??蛇x的,所述待獲取的錯誤定位相關(guān)信息包括狀態(tài)信息符合預(yù)置條件的模塊信息和/或指定的特征信息??蛇x的,所述從所述日志文件中提取所述待獲取的錯誤定位相關(guān)信息包括從所述日志文件中提取符合預(yù)置條件的模塊信息;如果所述日志文件中不存在符合預(yù)置條件的模塊信息,則從所述日志文件中提取指定的特征信息??蛇x的,所述符合預(yù)置條件的模塊信息包括堆棧占用量最大的模塊。可選的,所述指定的特征信息包括堆棧占用情況、模塊列表和/或崩潰地址??蛇x的,所述預(yù)置的錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系保存在服務(wù)器端,所述根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源包括將所述提取出的錯誤定位相關(guān)信息發(fā)送到服務(wù)器端進行查詢;根據(jù)服務(wù)器端返回的信息,確定引起所述內(nèi)核級錯誤的錯誤源。一種操作系統(tǒng)內(nèi)核級錯誤定位裝置,當(dāng)操作系統(tǒng)發(fā)生內(nèi)核級錯誤提示時,自動生成記載有提示時刻的系統(tǒng)狀態(tài)信息的日志文件;所述裝置包括
類型代碼獲取單元,用于通過操作系統(tǒng)提供的接口訪問所述日志文件,獲取當(dāng)前的內(nèi)核級錯誤的類型代碼;第一查詢單元,用于根據(jù)預(yù)置的第一對應(yīng)關(guān)系,確定當(dāng)前的內(nèi)核級錯誤的類型代碼對應(yīng)的待獲取的錯誤定位相關(guān)信息;所述第一對應(yīng)關(guān)系為類型代碼與待獲取的錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系;錯誤定位相關(guān)信息獲取單元,用于從所述日志文件中提取所述待獲取的錯誤定位相關(guān)信息;第二查詢單元,用于根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的第二對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源;所述第二對應(yīng)關(guān)系為錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系??蛇x的,還包括
解決方案獲取單元,用于根據(jù)預(yù)置的第三對應(yīng)關(guān)系,獲取引起所述內(nèi)核級錯誤的錯誤源對應(yīng)的解決方案;所述第三對應(yīng)關(guān)系為錯誤源與解決方案之間的對應(yīng)關(guān)系;處理單元,用于根據(jù)所述解決方案執(zhí)行相應(yīng)的處理,以便對所述操作系統(tǒng)內(nèi)核級錯誤進行修復(fù)??蛇x的,所述處理單元包括展現(xiàn)子單元,用于展現(xiàn)所述錯誤源的信息,以便對所述錯誤源執(zhí)行處理操作,進而完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù);或者,執(zhí)行子單元,用于對所述錯誤源執(zhí)行處理操作,以便完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù)。可選的,所述待獲取的錯誤定位相關(guān)信息包括狀態(tài)信息符合預(yù)置條件的模塊信息和/或指定的特征信息。可選的,所述錯誤定位相關(guān)信息獲取單元包括模塊提取子單元,用于從所述日志文件中提取符合預(yù)置條件的模塊信息;特征信息提取子單元,用于如果所述日志文件中不存在符合預(yù)置條件的模塊信息,則從所述日志文件中提取指定的特征信息??蛇x的,所述符合預(yù)置條件的模塊信息包括堆棧占用量最大的模塊??蛇x的,所述指定的特征信息包括堆棧占用情況、模塊列表和/或崩潰地址??蛇x的,所述預(yù)置的錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系保存在服務(wù)器端,所述第二查詢單元包括發(fā)送子單元,用于將所述提取出的錯誤定位相關(guān)信息發(fā)送到服務(wù)器端進行查詢;確定子單元,用于根據(jù)服務(wù)器端返回的信息,確定引起所述內(nèi)核級錯誤的錯誤源。根據(jù)本發(fā)明提供的具體實施例,本發(fā)明公開了以下技術(shù)效果通過本發(fā)明,在操作系統(tǒng)給出內(nèi)核級錯誤提示之后,能夠通過分析記載有提示時刻系統(tǒng)狀態(tài)信息的日志文件,自動定位到引起內(nèi)核級錯誤的錯誤源,這樣,就為快速修復(fù)系統(tǒng)的內(nèi)核級錯誤提供了基礎(chǔ)信息。例如,可以直接將錯誤源的信息展現(xiàn)給用戶,這樣用戶在明確了錯誤源的情況下,就可以執(zhí)行一些處理操作來完成對錯誤的修復(fù)?;蛘?,還可以自動執(zhí)行修復(fù)操作,等等。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實施例提供的方法的流程圖;圖2是本發(fā)明實施例提供的裝置的示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的 范圍。為了便于理解本發(fā)明實施例涉及到的操作系統(tǒng)內(nèi)核級錯誤的問題,首先以NT內(nèi)核的操作系統(tǒng)為例,對操作系統(tǒng)的基礎(chǔ)架構(gòu)進行簡單的介紹。NT內(nèi)核的操作系統(tǒng)采用的是分層管理結(jié)構(gòu)(層又稱為模式),主要有用戶層(User Mode)和內(nèi)核層(Kernel Mode)。windows操作系統(tǒng)中規(guī)定用戶層擁有較低權(quán)限,不能直接訪問硬件和有限地利用內(nèi)存。要訪問硬件和利用內(nèi)存,必須要經(jīng)過可以直接訪問所有硬件和內(nèi)存的內(nèi)核層的批準(zhǔn)。有時由于種種原因,用戶層或內(nèi)核層會出現(xiàn)一些錯誤。如果程序出錯,windows會判斷該程序是用戶模式的還是內(nèi)核模式的。如果是用戶模式的則直接終止程序。如果是內(nèi)核模式的,出錯之后繼續(xù)運行可能會使系統(tǒng)出現(xiàn)更加嚴(yán)重的錯誤。系統(tǒng)為了安全起見,會以可控的方式停止,并顯示出藍屏停止碼和生成內(nèi)存轉(zhuǎn)儲文件,便于用戶分析處理問題。所以藍屏死機是操作系統(tǒng)報告嚴(yán)重錯誤的一種方式,是操作系統(tǒng)的一種自我保護措施。如背景技術(shù)中所述,在操作系統(tǒng)發(fā)生類似藍屏死機的內(nèi)核級錯誤時,實際上一般情況下是由第三方軟件或者硬件的錯誤引起的,也即,這種內(nèi)核級錯誤存在對應(yīng)的錯誤源,只有找到錯誤源并將其存在的缺陷修復(fù),才能避免后續(xù)再發(fā)生內(nèi)核級錯誤。因此,本發(fā)明實施例就是從這一角度出發(fā),試圖提供一種能夠自動定位到引起操作系統(tǒng)內(nèi)核級錯誤的錯誤源的方法,以便以更加方便快捷的方式幫助用戶排除錯誤。在本發(fā)明實施例中,首先需要將操作系統(tǒng)設(shè)置為,當(dāng)操作系統(tǒng)發(fā)生內(nèi)核級錯誤提示時,自動生成記載有提示時刻的系統(tǒng)狀態(tài)信息的日志文件,例如,前文所述的DUMP文件等等。具體實現(xiàn)時,由于上述生成日志文件的功能一般都是操作系統(tǒng)自帶的,因此,只要進行必要的設(shè)置即可實現(xiàn)。例如,可以檢查系統(tǒng)是否設(shè)置為發(fā)出內(nèi)核級錯誤提示時自動生成日志文件,如果沒有,則通過修改注冊表等方式進行設(shè)置。這樣保證當(dāng)系統(tǒng)發(fā)出內(nèi)核級錯誤提示時,能自動生成記錄有提示時刻的系統(tǒng)狀態(tài)信息的日志文件,為后續(xù)的錯誤源定位提供前提。在日志文件中,一般都會為當(dāng)前的錯誤類型提供類型代碼,這種錯誤代碼是由系統(tǒng)自動生成的,例如0x7f,等等。其中,各個代碼分別對應(yīng)著怎樣的錯誤,從哪些信息中可以分析出來,都是可以通過經(jīng)驗的積累獲知的。也就是說,對于經(jīng)驗足夠豐富的人員,在得知錯誤類型代碼之后,就可以知曉應(yīng)該從日志文件中去提取哪些信息,進而分析出錯誤發(fā)生在哪個模塊上。因此,在本發(fā)明實施例中,為了能夠通過程序自動完成對日志文件的分析工作,可以預(yù)先對各個類型代碼代表的錯誤類型進行分析,分析出各個類型下需要提取的錯誤定位相關(guān)信息,并進行記錄,保存下各個類型代碼與需要獲取的錯誤定位相關(guān)信息之間的關(guān)系。例如,對于代碼為0X7f的錯誤類型而言,通過大量的分析經(jīng)驗歸納總結(jié)發(fā)現(xiàn),該錯誤大多是由某個驅(qū)動占用了過多的堆棧導(dǎo)致堆棧溢出引起的。因此,如果能夠從日志文件中提取出藍屏?xí)r刻各個驅(qū)動對堆棧的占用情況,其中對堆棧占用最多的就可能是引起此次藍屏的模塊。因此,針對該代碼對應(yīng)的錯誤類型,需要獲取的錯誤定位相關(guān)信息就可以是各個驅(qū)動對堆棧的占用情況。其他代碼也都分別進行類似的處理,這樣可以得到保存有錯誤的類型代碼與需要提取的錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系的列表,供后續(xù)查詢使用。同時,還可以預(yù)先根據(jù)經(jīng)驗分析,得到當(dāng)模塊與軟件或者硬件之間的對應(yīng)關(guān)系,保存各個模塊與各自對應(yīng)的軟件或硬件之間的對應(yīng)關(guān)系,形成一個數(shù)據(jù)庫,這樣當(dāng)根據(jù)日志文件定位到某模塊時,通過查詢該數(shù)據(jù)庫就可以得到該引起當(dāng)前錯誤的錯誤源是哪個軟件或者硬件。 但是,在實際應(yīng)用中,還可能存在以下特殊情況系統(tǒng)在錯誤源發(fā)生錯誤時刻,可能并不是馬上就進行提示,也就是說,如果某軟件在Tl時刻發(fā)生了嚴(yán)重的錯誤,但是系統(tǒng)可能在T2時刻才發(fā)生藍屏死機,以此給出提示。也就是說,錯誤實際發(fā)生的時刻與系統(tǒng)進行錯誤提示的時刻可能是不同的,而是有一定的先后關(guān)系。然而,日志文件只能記載系統(tǒng)提示時刻的系統(tǒng)狀態(tài),也即,日志文件中記錄的是T2時刻系統(tǒng)的狀態(tài)。因此,通過日志文件中記載的數(shù)據(jù),就可能無法找到目標(biāo)模塊。針對這種情況,本發(fā)明實施例還發(fā)現(xiàn)對于同一錯誤源導(dǎo)致的錯誤而言,在發(fā)生錯誤之后的系統(tǒng)狀態(tài)信息中會存在一些相同的特征。例如,堆棧占用情況、模塊列表、崩潰地址等等,因此,也可以預(yù)先通過經(jīng)驗的分析,在一個數(shù)據(jù)庫中記錄下日志文件中的各種特征信息與對應(yīng)的軟件或硬件之間的對應(yīng)關(guān)系,同時,還可以記錄下各種不同的類型代碼需要提取的特征信息。這樣,針對某類型代碼,在無法直接定位到發(fā)生錯誤的模塊的情況下,就可以根據(jù)預(yù)先保存的類型代碼與需要提取的特征信息之間的對應(yīng)關(guān)系,從日志文件中提取出特征信息,然后就可以根據(jù)數(shù)據(jù)庫中保存的特征信息與軟件/硬件之間的對應(yīng)關(guān)系,定位到具體的軟件/硬件,也即成功定位到錯誤源。例如,BitDefender2012beta與某安全產(chǎn)品沖突導(dǎo)致的藍屏,DUMP文件里堆棧顯示崩潰模塊在ntkrpamp. exe,但是實際是不對的,此時,可以提取崩潰時的堆棧,再加上加載的模塊信息等等。同時,在服務(wù)器數(shù)據(jù)庫里已經(jīng)存有這個崩潰的特征堆棧,兩個產(chǎn)品的模塊,版本等。這樣,通過比較從DUMP文件里獲取的信息和服務(wù)器上崩潰特征比較,如果符合,表明該崩潰是由于同時裝了這兩個軟件沖突導(dǎo)致的。需要說明的是,對于各種不同的錯誤類型代碼而言,需要提取的特征信息可能是不同的,可能是堆棧占用情況、模塊列表、崩潰地址中的一種或多種,當(dāng)然還可能是其他的特征,等等。在以上所述的基礎(chǔ)上,參見圖1,本發(fā)明實施例提供的操作系統(tǒng)內(nèi)核級錯誤定位方法包括以下步驟SlOl :通過操作系統(tǒng)提供的接口訪問所述日志文件,獲取當(dāng)前的內(nèi)核級錯誤的類型代碼;在系統(tǒng)發(fā)出內(nèi)核級錯誤提示并生成了日志文件的情況下,操作系統(tǒng)一般還會提供訪問該日志文件的接口,例如dbghelp. dll標(biāo)準(zhǔn)接口,因此,就可以通過該接口訪問該日志文件,以便從中獲取所需的信息。由于已經(jīng)預(yù)先保存了錯誤類型代碼與需要提取的錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系,因此,就可以首先從日志文件中提取出錯誤類型代碼。S102:根據(jù)預(yù)置的第一對應(yīng)關(guān)系,確定當(dāng)前的內(nèi)核級錯誤的類型代碼對應(yīng)的待獲取的錯誤定位相關(guān)信息;所述第一對應(yīng)關(guān)系為類型代碼與待獲取的錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系;這里的錯誤定位相關(guān)信息可以是前文所述的符合一定條件的模塊信息,例如前文所述的,針對0x7f這一類型代碼,在預(yù)先保存的代碼與錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系中,該代碼對應(yīng)的錯誤定位相關(guān)信息可以是對堆棧的占用量最大的模塊。因此,根據(jù)記錄的該對應(yīng)關(guān)系,就可以從日志文件中獲取各個模塊對各個堆棧的占用量,然后從中提取出一個堆棧占用量最大的模塊作為錯誤定位相關(guān)信息?;蛘?,這里的錯誤定位相關(guān)信息也可以是前文所述的特征信息,也即與集中提取某個符合指定條件的模塊不同,還可以根據(jù)預(yù)先保存的對應(yīng)關(guān)系,提取出一些分散的特征 信息,例如,包括模塊列表、各個模塊分別對堆棧的占用情況等等,將這些特征信息作為錯誤定位相關(guān)信息?;蛘?,在實際應(yīng)用中,還可以將上述兩種方式相結(jié)合,例如,首先根據(jù)類型代碼與滿足一定條件的模塊之間的對應(yīng)關(guān)系,從日志文件中提取符合該條件的模塊,如果提取不成功,再根據(jù)類型代碼與特征信息之間的對應(yīng)關(guān)系,從日志文件中提取當(dāng)前的類型代碼對應(yīng)的特征信息作為錯誤定位相關(guān)信息。S103:根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的第二對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源;所述第二對應(yīng)關(guān)系為錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系。在提取出錯誤定位相關(guān)信息之后,就可以根據(jù)預(yù)先設(shè)置的錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系定位到錯誤源。例如,如果錯誤定位相關(guān)信息是符合某條件的模塊,則可以查詢預(yù)先保存的模塊與軟件/硬件之間的對應(yīng)關(guān)系,查詢到發(fā)生錯誤的模塊所在的軟件/硬件,進而就可以將對應(yīng)的軟件/硬件確定為錯誤源。如果錯誤定位相關(guān)信息是某些特征信息,則可以查詢預(yù)先保存的特征信息與軟件/硬件之間的對應(yīng)關(guān)系,對應(yīng)的軟件/硬件就可以確定為錯誤源??傊?,通過本發(fā)明實施例,在操作系統(tǒng)給出內(nèi)核級錯誤的提示后,能夠通過分析記載有提示時刻系統(tǒng)狀態(tài)信息的日志文件,自動定位到引起內(nèi)核級錯誤的錯誤源,這樣,就為快速修復(fù)系統(tǒng)的內(nèi)核級錯誤提供了基礎(chǔ)信息。例如,可以直接將錯誤源的信息展現(xiàn)給用戶,這樣用戶在明確了錯誤源的情況下,就可以執(zhí)行一些處理操作來完成對錯誤的修復(fù)?;蛘?,還可以自動執(zhí)行修復(fù)操作,等等。在實際應(yīng)用中,還可以根據(jù)分析經(jīng)驗,在數(shù)據(jù)庫中保存模塊與解決方案之間的對應(yīng)關(guān)系,或者特征信息與解決方案之間的對應(yīng)關(guān)系。這樣,當(dāng)從日志文件中提取出滿足條件的模塊或者特征信息之后,不僅能夠定位到對應(yīng)的軟件/硬件,還可以得到相應(yīng)的解決方案,然后可以根據(jù)解決方案執(zhí)行相應(yīng)的處理,以便對操作系統(tǒng)內(nèi)核級錯誤進行修復(fù)。具體的處理方式有多種,例如,可以將錯誤源的信息展現(xiàn)給用戶,以便用戶對錯誤源執(zhí)行處理操作,進而完成對操作系統(tǒng)內(nèi)核級錯誤的修復(fù);或者,直接對錯誤源執(zhí)行處理操作,以便完成對操作系統(tǒng)內(nèi)核級錯誤的修復(fù)。其中,關(guān)于第一種方式,一般是針對一些硬件上的錯誤、需要用戶手動解決的問題時采用,例如,向用戶提示錯誤源是內(nèi)存混插,則用戶可以通過更換內(nèi)存條等方式來修復(fù)該錯誤。第二種方式一般是針對一些軟件上的錯誤時采用,例如,如果錯誤原因是某驅(qū)動沒有更新,則解決方案可以是自動下載更新導(dǎo)致內(nèi)核級錯誤的驅(qū)動,或者,將某驅(qū)動卸載,或者,禁止某驅(qū)動的運行等等。與本發(fā)明實施例提供的操作系統(tǒng)內(nèi)核級錯誤定位方法相對應(yīng),本發(fā)明實施例還提供了一種操作系統(tǒng)內(nèi)核級錯誤定位裝置,在該裝置中,當(dāng)操作系統(tǒng)發(fā)生內(nèi)核級錯誤提示時,自動生成記載有提示時刻的系統(tǒng)狀態(tài)信息的日志文件;參見圖2,該裝置可以包括類型代碼獲取單元201,用于通過操作系統(tǒng)提供的接口訪問所述日志文件,獲取當(dāng)前的內(nèi)核級錯誤的類型代碼;第一查詢單元202,用于根據(jù)預(yù)置的第一對應(yīng)關(guān)系,確定當(dāng)前的內(nèi)核級錯誤的類型代碼對應(yīng)的待獲取的錯誤定位相關(guān)信息;所述第一對應(yīng)關(guān)系為類型代碼與待獲取的錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系;
錯誤定位相關(guān)信息獲取單元203,用于從所述日志文件中提取所述待獲取的錯誤定位相關(guān)信息;第二查詢單元204,用于根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的第二對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源;所述第二對應(yīng)關(guān)系為錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系。具體實現(xiàn)時,該裝置還可以包括解決方案獲取單元,用于根據(jù)預(yù)置的第三對應(yīng)關(guān)系,獲取引起所述內(nèi)核級錯誤的錯誤源對應(yīng)的解決方案;所述第三對應(yīng)關(guān)系為錯誤源與解決方案之間的對應(yīng)關(guān)系;處理單元,用于根據(jù)所述解決方案執(zhí)行相應(yīng)的處理,以便對所述操作系統(tǒng)內(nèi)核級錯誤進行修復(fù)。根據(jù)錯誤發(fā)生原因的不同,解決方案也可能會有所不同,相應(yīng)的,處理單元在根據(jù)解決方案進行處理時,可以分為兩大類,也即,所述處理單元具體可以包括展現(xiàn)子單元,用于展現(xiàn)所述錯誤源的信息,以便對所述錯誤源執(zhí)行處理操作,進而完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù);或者,執(zhí)行子單元,用于對所述錯誤源執(zhí)行處理操作,以便完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù)。具體實現(xiàn)時,所述待獲取的錯誤定位相關(guān)信息包括狀態(tài)信息符合預(yù)置條件的模塊信息和/或指定的特征信息。上述兩種錯誤定位相關(guān)信息獨立使用,例如,針對某錯誤類型代碼,可以查詢類型代碼與模塊信息之間的對應(yīng)關(guān)系,找到符合條件的模塊,然后再通過查詢模塊與錯誤源之間的對應(yīng)關(guān)系,定位到引起此次內(nèi)核級錯誤的錯誤源,也即,具體到某軟件/硬件。或者,針對同一錯誤類型代碼,也可以直接查詢類型代碼與特征信息之間的對應(yīng)關(guān)系,直接從日志文件中提取出特征信息,并查詢特征信息與錯誤源之間的對應(yīng)關(guān)系,定位到引起此次內(nèi)核級錯誤的錯誤源。當(dāng)然,在實際應(yīng)用中,還可以將上述兩種方式相結(jié)合,此時,錯誤定位相關(guān)信息獲取單元203包括模塊提取子單元,用于從所述日志文件中提取符合預(yù)置條件的模塊信息;
特征信息提取子單元,用于如果所述日志文件中不存在符合預(yù)置條件的模塊信息,則從所述日志文件中提取指定的特征信息。其中,所述符合預(yù)置條件的模塊信息包括堆棧占用量最大的模塊。所述指定的特征信息包括堆棧占用情況、模塊列表和/或崩潰地址。在實際應(yīng)用中,所述預(yù)置的錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系可以保存在服務(wù)器端,此時,第二查詢單元204可以包括發(fā)送子單元,用于將所述提取出的錯誤定位相關(guān)信息發(fā)送到服務(wù)器端進行查詢;確定子單元,用于根據(jù)服務(wù)器端返回的信息,確定引起所述內(nèi)核級錯誤的錯誤源。
總之,通過本發(fā)明實施例提供的上述裝置,在操作系統(tǒng)給出內(nèi)核級錯誤提示之后,能夠通過分析記載有提示時刻系統(tǒng)狀態(tài)信息的日志文件,自動定位到引起內(nèi)核級錯誤的錯誤源,這樣,就為快速修復(fù)系統(tǒng)的內(nèi)核級錯誤提供了基礎(chǔ)信息。例如,可以直接將錯誤源的信息展現(xiàn)給用戶,這樣用戶在明確了錯誤源的情況下,就可以執(zhí)行一些處理操作來完成對錯誤的修復(fù)?;蛘撸€可以自動執(zhí)行修復(fù)操作,等等。通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置或系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置及系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。以上對本發(fā)明所提供的操作系統(tǒng)內(nèi)核級錯誤定位方法及裝置,進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處。綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.ー種操作系統(tǒng)內(nèi)核級錯誤定位方法,其特征在干,當(dāng)操作系統(tǒng)發(fā)生內(nèi)核級錯誤提示吋,自動生成記載有提示時刻的系統(tǒng)狀態(tài)信息的日志文件;所述方法包括 通過操作系統(tǒng)提供的接ロ訪問所述日志文件,獲取當(dāng)前的內(nèi)核級錯誤的類型代碼; 根據(jù)預(yù)置的第一對應(yīng)關(guān)系,確定當(dāng)前的內(nèi)核級錯誤的類型代碼對應(yīng)的待獲取的錯誤定位相關(guān)信息;所述第一對應(yīng)關(guān)系為類型代碼與待獲取的錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系; 從所述日志文件中提取所述待獲取的錯誤定位相關(guān)信息; 根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的第二對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源;所述第二對應(yīng)關(guān)系為錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 根據(jù)預(yù)置的第三對應(yīng)關(guān)系,獲取引起所述內(nèi)核級錯誤的錯誤源對應(yīng)的解決方案;所述第三對應(yīng)關(guān)系為錯誤源與解決方案之間的對應(yīng)關(guān)系; 根據(jù)所述解決方案執(zhí)行相應(yīng)的處理,以便對所述操作系統(tǒng)內(nèi)核級錯誤進行修復(fù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在干,所述根據(jù)所述解決方案執(zhí)行相應(yīng)的處理包括 展現(xiàn)所述錯誤源的信息,以便對所述錯誤源執(zhí)行處理操作,進而完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù); 或者, 對所述錯誤源執(zhí)行處理操作,以便完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù)。
4.根據(jù)權(quán)利要求I至3任一項所述的方法,其特征在于,所述待獲取的錯誤定位相關(guān)信息包括狀態(tài)信息符合預(yù)置條件的模塊信息和/或指定的特征信息。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述從所述日志文件中提取所述待獲取的錯誤定位相關(guān)信息包括 從所述日志文件中提取符合預(yù)置條件的模塊信息; 如果所述日志文件中不存在符合預(yù)置條件的模塊信息,則從所述日志文件中提取指定的特征信息。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述符合預(yù)置條件的模塊信息包括堆棧占用量最大的模塊。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述指定的特征信息包括堆棧占用情況、模塊列表和/或崩潰地址。
8.根據(jù)權(quán)利要求I至3任一項所述的方法,其特征在于,所述預(yù)置的錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系保存在服務(wù)器端,所述根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源包括 將所述提取出的錯誤定位相關(guān)信息發(fā)送到服務(wù)器端進行查詢; 根據(jù)服務(wù)器端返回的信息,確定引起所述內(nèi)核級錯誤的錯誤源。
9.ー種操作系統(tǒng)內(nèi)核級錯誤定位裝置,其特征在干,當(dāng)操作系統(tǒng)發(fā)生內(nèi)核級錯誤提示吋,自動生成記載有提示時刻的系統(tǒng)狀態(tài)信息的日志文件;所述裝置包括 類型代碼獲取単元,用于通過操作系統(tǒng)提供的接ロ訪問所述日志文件,獲取當(dāng)前的內(nèi)核級錯誤的類型代碼;第一查詢單元,用于根據(jù)預(yù)置的第一對應(yīng)關(guān)系,確定當(dāng)前的內(nèi)核級錯誤的類型代碼對應(yīng)的待獲取的錯誤定位相關(guān)信息;所述第一對應(yīng)關(guān)系為類型代碼與待獲取的錯誤定位相關(guān)イ目息之間的對應(yīng)關(guān)系; 錯誤定位相關(guān)信息獲取單元,用于從所述日志文件中提取所述待獲取的錯誤定位相關(guān)信息; 第二查詢單元,用于根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的第二對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源;所述第二對應(yīng)關(guān)系為錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括 解決方案獲取單元,用于根據(jù)預(yù)置的第三對應(yīng)關(guān)系,獲取引起所述內(nèi)核級錯誤的錯誤源對應(yīng)的解決方案;所述第三對應(yīng)關(guān)系為錯誤源與解決方案之間的對應(yīng)關(guān)系; 處理單元,用于根據(jù)所述解決方案執(zhí)行相應(yīng)的處理,以便對所述操作系統(tǒng)內(nèi)核級錯誤進行修復(fù)。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述處理単元包括 展現(xiàn)子単元,用于展現(xiàn)所述錯誤源的信息,以便對所述錯誤源執(zhí)行處理操作,進而完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù); 或者, 執(zhí)行子単元,用于對所述錯誤源執(zhí)行處理操作,以便完成對所述操作系統(tǒng)內(nèi)核級錯誤的修復(fù)。
12.根據(jù)權(quán)利要求9至11任一項所述的裝置,其特征在于,所述待獲取的錯誤定位相關(guān)信息包括狀態(tài)信息符合預(yù)置條件的模塊信息和/或指定的特征信息。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述錯誤定位相關(guān)信息獲取單元包括 模塊提取子単元,用于從所述日志文件中提取符合預(yù)置條件的模塊信息; 特征信息提取子単元,用于如果所述日志文件中不存在符合預(yù)置條件的模塊信息,則從所述日志文件中提取指定的特征信息。
14.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述符合預(yù)置條件的模塊信息包括堆棧占用量最大的模塊。
15.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述指定的特征信息包括堆棧占用情況、模塊列表和/或崩潰地址。
16.根據(jù)權(quán)利要求9至11任一項所述的裝置,其特征在于,所述預(yù)置的錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系保存在服務(wù)器端,所述第二查詢單元包括 發(fā)送子単元,用于將所述提取出的錯誤定位相關(guān)信息發(fā)送到服務(wù)器端進行查詢; 確定子単元,用于根據(jù)服務(wù)器端返回的信息,確定引起所述內(nèi)核級錯誤的錯誤源。
全文摘要
本發(fā)明公開了操作系統(tǒng)內(nèi)核級錯誤定位方法及裝置,當(dāng)操作系統(tǒng)發(fā)生內(nèi)核級錯誤提示時,自動生成記載有提示時刻的系統(tǒng)狀態(tài)信息的日志文件;包括通過操作系統(tǒng)提供的接口訪問所述日志文件,獲取當(dāng)前的內(nèi)核級錯誤的類型代碼;根據(jù)預(yù)置的第一對應(yīng)關(guān)系,確定當(dāng)前的內(nèi)核級錯誤的類型代碼對應(yīng)的待獲取的錯誤定位相關(guān)信息;第一對應(yīng)關(guān)系為類型代碼與待獲取的錯誤定位相關(guān)信息之間的對應(yīng)關(guān)系;從所述日志文件中提取所述待獲取的錯誤定位相關(guān)信息;根據(jù)提取出的錯誤定位相關(guān)信息以及預(yù)置的第二對應(yīng)關(guān)系,確定引起所述內(nèi)核級錯誤的錯誤源;第二對應(yīng)關(guān)系為錯誤定位相關(guān)信息與錯誤源之間的對應(yīng)關(guān)系。通過本發(fā)明,能夠自動定位到引起所述內(nèi)核級錯誤的錯誤源。
文檔編號G06F11/36GK102768639SQ20121019181
公開日2012年11月7日 申請日期2012年6月11日 優(yōu)先權(quán)日2012年6月11日
發(fā)明者吉艷敏, 范紀(jì)鍠 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1