專利名稱:一種硬件現(xiàn)場復(fù)現(xiàn)的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件技術(shù)領(lǐng)域,更具體的說,是涉及一種硬件現(xiàn)場復(fù)現(xiàn)的方法及裝置。
背景技術(shù):
在科技高速發(fā)展的現(xiàn)代,各行各業(yè)所應(yīng)用的各類電子設(shè)備中都離不開芯片的應(yīng)用,芯片作為電子設(shè)備中的主要部分,承擔(dān)著運(yùn)算和存儲的重要功能。但是,當(dāng)芯片長時(shí)間運(yùn)行特定程序時(shí)由于某種原因而進(jìn)入了異常狀態(tài),為保證電子設(shè)備構(gòu)成的硬件現(xiàn)場的正常運(yùn)行,此時(shí)需要根據(jù)芯片數(shù)據(jù)現(xiàn)場分析發(fā)生異常的原因。當(dāng)出現(xiàn)上述情況時(shí),需要對芯片運(yùn)行時(shí)的數(shù)據(jù)進(jìn)行保護(hù)(現(xiàn)場保護(hù)),以便以后隨時(shí)恢復(fù)硬件現(xiàn)場,并進(jìn)行異常狀態(tài)的分析。在當(dāng)今的芯片調(diào)試工具業(yè)界,對芯片數(shù)據(jù)進(jìn)行保護(hù)以及分析所常用的方法是通過調(diào)試軟件對芯片以及開發(fā)板上的數(shù)據(jù)進(jìn)行備份,等到分析出芯片發(fā)生異常狀態(tài)的原因時(shí),再將備份的數(shù)據(jù)恢復(fù)到芯片及開發(fā)板上,完成對芯片發(fā)生異常前的硬件現(xiàn)場的復(fù)現(xiàn)。但是,采用現(xiàn)有技術(shù)的方式進(jìn)行硬件現(xiàn)場復(fù)現(xiàn)時(shí)必須借助硬件環(huán)境,也就是說必須借助芯片以及開發(fā)板,將數(shù)據(jù)恢復(fù)到硬件環(huán)境中,采用現(xiàn)有技術(shù)不僅受制于硬件環(huán)境的運(yùn)行速度,降低硬件現(xiàn)場復(fù)現(xiàn)的速度,而且在硬件資源有限的情況下,也會降低實(shí)現(xiàn)硬件現(xiàn)場復(fù)現(xiàn)的速度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種硬件現(xiàn)場復(fù)現(xiàn)的方法及裝置,以克服現(xiàn)有技術(shù)借助芯片以及開發(fā)板等硬件環(huán)境實(shí)現(xiàn)硬件現(xiàn)場復(fù)現(xiàn),所造成的降低硬件現(xiàn)場復(fù)現(xiàn)的速度的問題。為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案一種硬件現(xiàn)場復(fù)現(xiàn)的方法,包括在芯片出現(xiàn)異常時(shí),備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件;獲取攜帶調(diào)試信息的可執(zhí)行文件,解析所述可執(zhí)行文件,得到所述調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息;映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址;轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系;依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的
變量數(shù)據(jù);獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù);顯示所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。優(yōu)選的,所述建立所述實(shí)際物理地址與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系所采用的方式為
轉(zhuǎn)化映射后的所述實(shí)際物理地址為所述數(shù)據(jù)備份文件的文件指針。優(yōu)選的,所述獲取攜帶調(diào)試信息的可執(zhí)行文件之前還包括創(chuàng)建虛擬內(nèi)存,模擬芯片、開發(fā)板或測試板上的硬件信息,將所述數(shù)據(jù)備份文件移動至所述虛擬內(nèi)存中,所述數(shù)據(jù)備份文件中包括開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)與寄存器數(shù)據(jù),以及芯片運(yùn)行程序時(shí)的相關(guān)變量數(shù)據(jù)。優(yōu)選的,所述讀取實(shí)際物理地址對應(yīng)的變量數(shù)據(jù)、以及獲取內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)之后,所述顯示之前還包括通過通信媒介將所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)發(fā)送至所述用戶接口。優(yōu)選的,所述建立所述實(shí)際物理地址與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系采用非文件指針的方式進(jìn)行建立。優(yōu)選的,所述用戶接口為圖形界面接口。優(yōu)選的,所述攜帶調(diào)試信息的可執(zhí)行文件為芯片未出現(xiàn)異常前運(yùn)行的文件。一種硬件現(xiàn)場復(fù)現(xiàn)的裝置,包括檢測單元,用于檢測芯片是否出現(xiàn)異常;備份單元,用于備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件;分析單元,用于分析攜帶調(diào)試信息的可執(zhí)行文件;所述分析單元中包括獲取模塊,用于獲取攜帶調(diào)試信息的可執(zhí)行文件;解析模塊,用于解析所述可執(zhí)行文件,獲取所述可執(zhí)行文件中攜帶的調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息;映射模塊,用于映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址;建立模塊,用于轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系;讀取單元,用于依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的變量數(shù)據(jù);獲取單元,用于獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù);復(fù)現(xiàn)單元,用于顯示所述真實(shí)數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。優(yōu)選的,所述裝置中還包括創(chuàng)建單元,用于創(chuàng)建虛擬內(nèi)存;移動單元,用于將所述數(shù)據(jù)備份文件移動至預(yù)設(shè)的所述虛擬內(nèi)存中。優(yōu)選的,所述裝置中的創(chuàng)建單元、移動單元、檢測單元、備份單元、分析單元設(shè)置于服務(wù)端;所述裝置中的讀取單元、獲取單元和復(fù)現(xiàn)單元設(shè)置于客戶端;所述服務(wù)端與客戶端通過通信媒介進(jìn)行信息交互。經(jīng)由上述的技術(shù)方案可知,與現(xiàn)有技術(shù)相比,本發(fā)明公開了一種硬件現(xiàn)場復(fù)現(xiàn)的方法及裝置,其方法采用在芯片出現(xiàn)運(yùn)行異常時(shí),備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,并生成相應(yīng)的數(shù)據(jù)備份文件;然后,通過分析調(diào)試信息、映射等一系列操作,依據(jù)獲取到的實(shí)際物理地址從數(shù)據(jù)備份文件中獲取復(fù)現(xiàn)需要的數(shù)據(jù)信息,以及對于不需要分析調(diào)試信息的數(shù)據(jù)信息直接從數(shù)據(jù)備份文件中獲取;最后,將獲取到的相關(guān)數(shù)據(jù)信息發(fā)送于用戶接口并顯示, 實(shí)現(xiàn)硬件現(xiàn)場的復(fù)現(xiàn)。通過本發(fā)明公開的方法,不需要仿真器,即不需要依托硬件將備份的數(shù)據(jù)恢復(fù)到芯片及開發(fā)板上,而采用軟件分析獲取復(fù)現(xiàn)所需數(shù)據(jù)的方式,可以提高硬件現(xiàn)場復(fù)現(xiàn)的速度并節(jié)約硬件資源,同時(shí),在快速復(fù)現(xiàn)硬件現(xiàn)場之后也為技術(shù)人員提供了便利, 進(jìn)一步提高了技術(shù)人員分析芯片問題的時(shí)間。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例一公開的一種硬件現(xiàn)場復(fù)現(xiàn)的方法流程圖;圖2為本發(fā)明實(shí)施例二公開的一種硬件現(xiàn)場復(fù)現(xiàn)的方法流程圖;圖3為本發(fā)明實(shí)施例三公開的一種硬件現(xiàn)場復(fù)現(xiàn)的方法流程圖;圖4為本發(fā)明實(shí)施例三公開的另一種硬件現(xiàn)場復(fù)現(xiàn)的方法流程圖;圖5為本發(fā)明實(shí)施例公開的一種硬件現(xiàn)場復(fù)現(xiàn)的裝置結(jié)構(gòu)示意圖;圖6為本發(fā)明實(shí)施例公開的另一種硬件現(xiàn)場復(fù)現(xiàn)的裝置結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例公開的另一種硬件現(xiàn)場復(fù)現(xiàn)的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。在芯片在硬件環(huán)境中運(yùn)行時(shí)出現(xiàn)問題,現(xiàn)有技術(shù)所采用的方式是借助芯片以及開發(fā)板、測試板將相關(guān)的數(shù)據(jù)恢復(fù)至硬件環(huán)境中,以便完成對硬件現(xiàn)場的復(fù)現(xiàn),但是,采用現(xiàn)有技術(shù)進(jìn)行硬件現(xiàn)場復(fù)現(xiàn)時(shí),依托硬件容易受制于硬件環(huán)境的運(yùn)行速度,以及基于有限的硬件資源會使復(fù)現(xiàn)硬件現(xiàn)場的速度受限。但是,本發(fā)明所公開的方法及系統(tǒng)涉及一種在完全沒有芯片及開發(fā)板在內(nèi)的硬件環(huán)境下,利用軟件實(shí)現(xiàn)硬件現(xiàn)場的復(fù)現(xiàn),提高了復(fù)現(xiàn)了速度,在本發(fā)明中主要是指基帶SoC芯片(System on Chip,系統(tǒng)級芯片),具體的技術(shù)方案通過下面本發(fā)明公開的實(shí)施例進(jìn)行詳細(xì)的說明。實(shí)施例一請參閱附圖1,為本發(fā)明公開一種硬件現(xiàn)場復(fù)現(xiàn)的方法,主要包括以下步驟步驟S101,在芯片出現(xiàn)異常時(shí),備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件。當(dāng)芯片在運(yùn)行的過程中出現(xiàn)問題時(shí),此時(shí)芯片暫時(shí)運(yùn)行或者停止運(yùn)行(即時(shí)狀態(tài)),但是芯片仍處于上電的狀態(tài),在暫停運(yùn)行或者停止運(yùn)行之前硬件現(xiàn)場中的相關(guān)數(shù)據(jù)還沒有丟失。因此,備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,該數(shù)據(jù)信息包括芯片本身的信息(寄存器中的信息)、芯片上運(yùn)行的程序數(shù)據(jù)信息,以及開發(fā)板或測試板上的內(nèi)存、寄存器中的相關(guān)數(shù)據(jù)信息。最后再利用備份的數(shù)據(jù)信息生成數(shù)據(jù)備份文件,即在該數(shù)據(jù)備份文件中保存上述的數(shù)據(jù)信息,并且這些數(shù)據(jù)信息為硬件現(xiàn)場復(fù)現(xiàn)所需的數(shù)據(jù)。
步驟S102,獲取攜帶調(diào)試信息的可執(zhí)行文件,解析所述可執(zhí)行文件,得到所述調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息。步驟S103,映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址。步驟S104,轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系。步驟S105,依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的變量數(shù)據(jù)。步驟S106,獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)。步驟S107,顯示所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。在執(zhí)行步驟S102至步驟S106時(shí),分別獲取到了實(shí)現(xiàn)復(fù)現(xiàn)硬件現(xiàn)場所需的相關(guān)數(shù)據(jù),即變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)。在上述這些數(shù)據(jù)的獲取過程中,變量數(shù)據(jù)的獲取的方法,需要經(jīng)過調(diào)試信息分析才能得到,而內(nèi)存數(shù)據(jù)與寄存器數(shù)據(jù)則不需要分析調(diào)試信息。因此,執(zhí)行步驟S102至步驟S106主要分為分析調(diào)試信息和不必分析調(diào)試信息兩種過程。其中,分析調(diào)試信息的情況為執(zhí)行步驟S102至步驟S105,首先,通過分析攜帶調(diào)試信息的可執(zhí)行文件獲得芯片運(yùn)行的程序數(shù)據(jù)信息,例如程序中特定符號、變量的相關(guān)數(shù)據(jù)信息,該相關(guān)數(shù)據(jù)信息中包含有數(shù)據(jù)信息的物理地址信息;然后,將上述獲取的各個程序數(shù)據(jù)信息的實(shí)際物理地址進(jìn)行映射,再進(jìn)行轉(zhuǎn)化,建立各個程序數(shù)據(jù)信息的實(shí)際物理地址與數(shù)據(jù)備份文件之間的關(guān)系;最后,通過建立的該種對應(yīng)關(guān)系,獲取數(shù)據(jù)備份文件中該實(shí)際物理地址對應(yīng)的變量數(shù)據(jù)。需要說明的是,分析調(diào)試信息即是通過對攜帶調(diào)試信息的可執(zhí)行文件進(jìn)行解析, 此攜帶調(diào)試信息的可執(zhí)行文件即是芯片發(fā)生異常前所運(yùn)行的文件,通過對其進(jìn)行解析獲取芯片運(yùn)行的程序數(shù)據(jù)信息。此外,分析調(diào)試信息的過程是為了得到與芯片上運(yùn)行程序數(shù)據(jù)信息相關(guān)的實(shí)際物理地址,例如某個變量或符號所在內(nèi)存地址,采用分析調(diào)試信息的方式獲取相關(guān)實(shí)際物理地址,是因?yàn)樾酒系募拇嫫?或內(nèi)存)地址是預(yù)先可以根據(jù)芯片的用戶手冊說明得到的, 是固定值,并且根據(jù)芯片的不同,寄存器(內(nèi)存)數(shù)量、名稱、物理地址值都會有所不同。不需要分析調(diào)試信息的情況為執(zhí)行步驟S106,直接從數(shù)據(jù)備份文件中獲取,即直接從數(shù)據(jù)備份文件獲取開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)。需要說明的是,由于步驟S102至步驟S105為需要分析調(diào)試信息的情況,而步驟 S106為不需要分析調(diào)試信息的情況,因此,上述步驟S106可以在執(zhí)行完步驟S105之后執(zhí)行,也可以在執(zhí)行步驟S102之前執(zhí)行,并不影響本發(fā)明實(shí)施例所公開的技術(shù)方案。在通過上述依據(jù)兩種不同情況獲取與硬件現(xiàn)場復(fù)現(xiàn)的相關(guān)數(shù)據(jù)信息之后,執(zhí)行步驟S107,將執(zhí)行步驟S105和步驟S106獲取到的變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)發(fā)送至用戶接口,并將其在用戶接口顯示,實(shí)現(xiàn)用軟件復(fù)現(xiàn)硬件現(xiàn)場的目的。需要說明的是,用戶接口可分為三類命令接口、程序接口和圖形界面接口。在本發(fā)明所公開的該實(shí)施例中,用戶接口最優(yōu)的選擇為圖形界面接口。圖形界面接口采用圖形化的操作界面,例如窗口、圖標(biāo)、菜單和對話框等圖形界面,通過易于識別的各種圖形將系統(tǒng)各項(xiàng)功能、各種應(yīng)用程序和文件,直觀、逼真地表示出來,技術(shù)人員可通過鼠標(biāo)、菜單和對話框來查看上述獲取到的數(shù)據(jù)信息,即芯片本身的信息(包括芯片上的寄存器等)或者是開發(fā)板(測試板)相關(guān)信息,還可以是在芯片上運(yùn)行的程序數(shù)據(jù)信息(例如程序的運(yùn)行結(jié)果,運(yùn)行過程中的信息,包括變量等,最后,通過這些在用戶接口處顯示的各類信息,實(shí)現(xiàn)復(fù)現(xiàn)硬件現(xiàn)場的目的,使技術(shù)人員可以通過復(fù)現(xiàn)的硬件現(xiàn)場對出現(xiàn)異常的芯片進(jìn)行分析。在上述本發(fā)明實(shí)施例公開的基礎(chǔ)上,上述對實(shí)際物理地址進(jìn)行映射的過程中可以采用多種現(xiàn)有的方式進(jìn)行映射,例如利用查表的方式進(jìn)行映射。另外,在映射實(shí)際物理地址之后,建立該實(shí)際物理地址與數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系所采用的方式,由于當(dāng)前保存數(shù)據(jù)備份文件的位置不同而有所不同。當(dāng)數(shù)據(jù)備份文件保存于硬盤內(nèi)存中時(shí),此時(shí)建立該實(shí)際物理地址與數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系所采用的方式為轉(zhuǎn)化映射后的所述實(shí)際物理地址為所述數(shù)據(jù)備份文件的文件指針。然后,在執(zhí)行上述步驟S105時(shí),依據(jù)該文件指針讀取數(shù)據(jù)備份文件中轉(zhuǎn)化為文件指針的實(shí)際物理地址對應(yīng)的變量數(shù)據(jù),最后再執(zhí)行步驟S107將該數(shù)據(jù)變量提交至用戶接口,以便于技術(shù)人員查看。通過上述本發(fā)明所公開的實(shí)施例,在完全沒有芯片及開發(fā)板在內(nèi)的硬件環(huán)境下, 利用軟件實(shí)現(xiàn)了硬件現(xiàn)場的復(fù)現(xiàn),提高了復(fù)現(xiàn)了速度,節(jié)約硬件資源。同時(shí),在快速復(fù)現(xiàn)硬件現(xiàn)場之后也為技術(shù)人員提供了便利,進(jìn)一步提高了技術(shù)人員分析芯片問題的時(shí)間。此外,根據(jù)數(shù)據(jù)備份文件保存的位置不同,本發(fā)明還公開的實(shí)施例二,對該種情況進(jìn)行詳細(xì)說明。實(shí)施例二在上述本發(fā)明公開的基礎(chǔ)上,請參閱附圖2,本發(fā)明實(shí)施例二所公開的一種硬件現(xiàn)場復(fù)現(xiàn)的方法,主要包括以下步驟步驟S201,在芯片出現(xiàn)異常時(shí),備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件。步驟S202,創(chuàng)建虛擬內(nèi)存,模擬芯片、開發(fā)板或測試板上的硬件信息,將所述數(shù)據(jù)備份文件移動至所述虛擬內(nèi)存中。在執(zhí)行步驟S201時(shí)備份生成的數(shù)據(jù)備份文件的過程與實(shí)施例一中步驟SlOl的執(zhí)行過程一致,這里不再贅述。因此,在執(zhí)行本實(shí)施例的步驟S202時(shí),移動至所述虛擬內(nèi)存中的數(shù)據(jù)備份文件中包括開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)與寄存器數(shù)據(jù),以及芯片運(yùn)行程序時(shí)的相關(guān)變量數(shù)據(jù)。步驟S203,獲取攜帶調(diào)試信息的可執(zhí)行文件,解析所述可執(zhí)行文件,得到所述調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息。步驟S204,映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址。步驟S205,轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系。步驟S206,依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的變量數(shù)據(jù)。步驟S207,獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄
8存器數(shù)據(jù)。步驟S208,顯示所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。在執(zhí)行步驟S203至步驟S207時(shí),分別獲取到了實(shí)現(xiàn)復(fù)現(xiàn)硬件現(xiàn)場所需的相關(guān)數(shù)據(jù),即變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù),在獲取上述這些數(shù)據(jù)的過程中。同樣,如實(shí)施例一中所述存在經(jīng)過分析調(diào)試信息和不必分析調(diào)試信息兩種情況。在本發(fā)明所公開的實(shí)施例二中,步驟S203至步驟S206所執(zhí)行的過程與實(shí)施例一中步驟S102至步驟S105的執(zhí)行過程基本一致;步驟S207所執(zhí)行的過程與步驟S106所執(zhí)行的過程基本一致,這里不再贅述。需要說明的是,在執(zhí)行步驟S203至步驟S207時(shí),同樣從數(shù)據(jù)備份文件中獲取各類數(shù)據(jù),與實(shí)施例不同的是,本實(shí)施例中數(shù)據(jù)備份文件保存于虛擬內(nèi)存中。因此,執(zhí)行步驟 S203至步驟S207時(shí),涉及從數(shù)據(jù)備份文件中獲取數(shù)據(jù)或信息時(shí),實(shí)際上都是從虛擬內(nèi)存中讀取的。此外,因?yàn)?,?shù)據(jù)備份文件保存于虛擬內(nèi)存中,所以,在執(zhí)行步驟S205時(shí),建立所述實(shí)際物理地址與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系采用的方式,可以采用現(xiàn)有的非轉(zhuǎn)化文件指針的方式進(jìn)行建立,在將實(shí)際物理地址進(jìn)行映射,在讀取數(shù)據(jù)備份文件中對應(yīng)實(shí)際物理地址的變量數(shù)據(jù)時(shí),采用的是查找虛擬內(nèi)存區(qū)地址偏移量的方法。通過上述本發(fā)明實(shí)施例所公開的方法,在備份好實(shí)現(xiàn)硬件現(xiàn)場復(fù)現(xiàn)的數(shù)據(jù),生成相應(yīng)的數(shù)據(jù)備份文件,再將該數(shù)據(jù)備份文件移動至計(jì)算機(jī)中預(yù)先創(chuàng)建的虛擬內(nèi)存中,并利用該數(shù)據(jù)備份文件在虛擬內(nèi)存區(qū)內(nèi)模擬開發(fā)板上的數(shù)據(jù)分部狀況和寄存器等狀況,以及模擬芯片等硬件信息。在執(zhí)行上述步驟S203至步驟S208時(shí),直接從保存于該虛擬內(nèi)存內(nèi)的數(shù)據(jù)備份文件中獲取所需要的數(shù)據(jù)或信息,在將其發(fā)送至用戶接口處,實(shí)現(xiàn)利用軟件復(fù)現(xiàn)硬件現(xiàn)場,而采用本發(fā)明直接從虛擬內(nèi)存中獲取所需的數(shù)據(jù)或信息,不需要讀取硬盤,提高了數(shù)據(jù)查詢的速度,使獲取到的數(shù)據(jù)做到最優(yōu)化,進(jìn)一步提高了硬件現(xiàn)場復(fù)現(xiàn)的速度,并節(jié)約了硬件資源。同時(shí),在快速復(fù)現(xiàn)硬件現(xiàn)場之后也為技術(shù)人員提供了便利,進(jìn)一步提高了技術(shù)人員分析芯片問題的時(shí)間。實(shí)施例三在上述本發(fā)明實(shí)施例公開的基礎(chǔ)上,本發(fā)明還公開了一種適用于當(dāng)用戶接口與數(shù)據(jù)分別處于不同計(jì)算機(jī)內(nèi)時(shí)的一種硬件現(xiàn)場復(fù)現(xiàn)的方法。在本實(shí)施例三中,當(dāng)用戶接口與數(shù)據(jù)分別處于兩臺計(jì)算機(jī)時(shí)的硬件現(xiàn)場復(fù)現(xiàn)的方法,請參閱附圖3,在上述實(shí)施例一的基礎(chǔ)上本實(shí)施例的方法主要包括以下步驟步驟S101,在芯片出現(xiàn)異常時(shí),備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件。步驟S102,獲取攜帶調(diào)試信息的可執(zhí)行文件,解析所述可執(zhí)行文件,得到所述調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息。步驟S103,映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址。步驟S104,轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系。步驟S105,依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的變量數(shù)據(jù)。
步驟S106,獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)。步驟S108,通過通信媒介將所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)發(fā)送至所述用戶接口。步驟S107,顯示所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。需要說明的是,上述步驟SlOU S102、S103、S104、S105、S106和步驟S107與實(shí)施例一中的相同標(biāo)號的步驟執(zhí)行的內(nèi)容基本相同這里不再贅述,本實(shí)施例與實(shí)施例一所不同的是,將在一臺計(jì)算機(jī)中獲取的硬件現(xiàn)場所需的數(shù)據(jù)通過通信媒介發(fā)送至另一臺計(jì)算機(jī)的用戶接口處,并在該用戶接口處顯示,實(shí)現(xiàn)硬件現(xiàn)場的復(fù)現(xiàn)。請參閱附圖4,在實(shí)施例二的基礎(chǔ)上,本實(shí)施例的方法主要包括以下步驟步驟S201,在芯片出現(xiàn)異常時(shí),備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件。步驟S202,創(chuàng)建虛擬內(nèi)存,模擬芯片、開發(fā)板或測試板上的硬件信息,將所述數(shù)據(jù)備份文件移動至所述虛擬內(nèi)存中。步驟S203,獲取攜帶調(diào)試信息的可執(zhí)行文件,解析所述可執(zhí)行文件,得到所述調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息。步驟S204,映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址。步驟S205,轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系。步驟S206,依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的變量數(shù)據(jù)。步驟S207,獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)。步驟S209,通過通信媒介將所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)發(fā)送至所述用戶接口。步驟S208,顯示所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。需要說明的是,上述步驟S201、S202、S203、S204、S205、S206、S207 和步驟 S208 與實(shí)施例二中的相同標(biāo)號的步驟執(zhí)行的內(nèi)容基本相同這里不再贅述,所不同的是,本實(shí)施例將在一臺計(jì)算機(jī)中獲取的變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)通過通信媒介發(fā)送至另一臺計(jì)算機(jī)的用戶接口處,并在該用戶接口處顯示,實(shí)現(xiàn)硬件現(xiàn)場的復(fù)現(xiàn)。此外,在上述本發(fā)明實(shí)施例三執(zhí)行的步驟S108和步驟S209中,通過通信媒介將所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)發(fā)送至所述用戶接口,所述通信媒介可以是現(xiàn)有的特定物理通信媒介,例如USB線(Universal Serial BUS,通用串行總線),或者是現(xiàn)有的通信協(xié)議,例如TCP/TP網(wǎng)絡(luò)協(xié)議。在本發(fā)明實(shí)施例三中所公開的方法中,利用一臺計(jì)算機(jī)模擬現(xiàn)有技術(shù)中的仿真器,將仿真器在內(nèi)的所有硬件軟件化了,然后,在通過另一臺計(jì)算機(jī)進(jìn)行查看、調(diào)試芯片。采用本發(fā)明實(shí)施例三所公開的方法,不僅實(shí)現(xiàn)了在完全沒有硬件的情況下快速對硬件現(xiàn)場進(jìn)行復(fù)現(xiàn),真正實(shí)現(xiàn)了現(xiàn)場恢復(fù)無硬件化目的,而且,在本實(shí)施例三中,針對不同的芯片只需要將提供數(shù)據(jù)的計(jì)算機(jī)進(jìn)行改動,即根據(jù)具體芯片的內(nèi)存地址分配,相關(guān)寄存器地址變動等,進(jìn)行具體的改動的,然后,再利用上述過程快速實(shí)現(xiàn)硬件現(xiàn)場的復(fù)現(xiàn)。需要說明的是,在根據(jù)需要在用戶接口上顯示的計(jì)算機(jī)上也可以根據(jù)需要做相應(yīng)的改動,然后,再實(shí)現(xiàn)硬件現(xiàn)場復(fù)現(xiàn),進(jìn)一步增加調(diào)試人員使用的靈活性和方便性。上述本發(fā)明公開的實(shí)施例中詳細(xì)描述了一種硬件現(xiàn)場復(fù)現(xiàn)的方法,對于本發(fā)明的方法可采用多種形式的裝置實(shí)現(xiàn),因此本發(fā)明還公開了一種硬件現(xiàn)場復(fù)現(xiàn)的裝置,下面給出具體的實(shí)施例進(jìn)行詳細(xì)說明。請參閱附圖5,為本發(fā)明所公開的一種硬件現(xiàn)場復(fù)現(xiàn)的裝置結(jié)構(gòu)示意圖,主要包括檢測單元501、備份單元502、分析單元503、讀取單元504、獲取單元505和復(fù)現(xiàn)單元 506。其中,檢測單元501與備份單元502連接,備份單元與分析單元503、讀取單元504、獲取單元505相連接,分析單元503與讀取單元504相連接,讀取單元504和獲取單元505分別與復(fù)現(xiàn)單元506相連接。檢測單元501,用于檢測芯片是否出現(xiàn)異常。備份單元502,用于備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件。分析單元503,用于分析攜帶調(diào)試信息的可執(zhí)行文件。需要說明的是,在分析單元503中包括獲取模塊5031、解析模塊5032、映射模塊 5033和建立模塊50;34。獲取模塊5031,用于獲取攜帶調(diào)試信息的可執(zhí)行文件。解析模塊5032,用于解析所述可執(zhí)行文件,獲取所述可執(zhí)行文件中攜帶的調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息。映射模塊5033,用于映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址。建立模塊5034,用于轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系。讀取單元504,用于依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的變量數(shù)據(jù)。獲取單元505,用于獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)。復(fù)現(xiàn)單元506,用于顯示所述真實(shí)數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。本發(fā)明實(shí)施例公開的裝置基于上述本發(fā)明所公開的方法執(zhí)行相關(guān)的獲取數(shù)據(jù)過程,具體過程為當(dāng)檢測單元501檢測出芯片的運(yùn)行出現(xiàn)了異常,利用備份單元502將實(shí)現(xiàn)硬件現(xiàn)場復(fù)現(xiàn)的數(shù)據(jù)進(jìn)行備份,然后,再利用分析單元503、讀取單元504和獲取單元505 從備份單元502生成的數(shù)據(jù)備份文件中獲取相應(yīng)的數(shù)據(jù)或信息,最后,在復(fù)現(xiàn)單元506上顯示,實(shí)現(xiàn)硬件現(xiàn)場的復(fù)現(xiàn)。在上述本發(fā)明公開的裝置的基礎(chǔ)上,請參閱附圖6,本裝置中還可以包括創(chuàng)建單元507和移動單元508。創(chuàng)建單元507,用于創(chuàng)建虛擬內(nèi)存。移動單元508,用于將所述數(shù)據(jù)備份文件移動至預(yù)設(shè)的所述虛擬內(nèi)存中。需要說明的是,創(chuàng)建單元507分別與移動單元508、讀取單元504、獲取單元505相連接;移動單元508分別與備份單元502、創(chuàng)建單元507相連接。請參閱附圖7,上述本發(fā)明實(shí)施例公開的裝置可以分為客戶端1和服務(wù)端2,在所述客戶端1中包括讀取單元504、獲取單元505和復(fù)現(xiàn)單元506 ;所述服務(wù)端2中包括創(chuàng)建單元507、移動單元508、檢測單元501、備份單元502、分析單元503。其中,所述服務(wù)端2與客戶端1通過通信媒介3進(jìn)行信息交互,所述通信媒介3可以是特定物理通信媒介,例如USB線(Universal Serial BUS,通用串行總線),也可以是現(xiàn)有的通信協(xié)議,例如TCP/TP網(wǎng)絡(luò)協(xié)議。綜上所述通過本發(fā)明公開的方法及裝置,利用軟件模擬仿真器,即不需要依托硬件將備份的數(shù)據(jù)恢復(fù)到芯片及開發(fā)板上,而采用軟件分析獲取復(fù)現(xiàn)所需數(shù)據(jù)的方式,可以提高硬件現(xiàn)場復(fù)現(xiàn)的速度并節(jié)約硬件資源,同時(shí),在快速復(fù)現(xiàn)硬件現(xiàn)場之后也為技術(shù)人員提供了便利,進(jìn)一步提高了技術(shù)人員分析芯片問題的時(shí)間。本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
1權(quán)利要求
1.一種硬件現(xiàn)場復(fù)現(xiàn)的方法,其特征在于,包括在芯片出現(xiàn)異常時(shí),備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件; 獲取攜帶調(diào)試信息的可執(zhí)行文件,解析所述可執(zhí)行文件,得到所述調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息;映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址;轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系; 依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的變量數(shù)據(jù);獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù); 顯示所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立所述實(shí)際物理地址與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系所采用的方式為轉(zhuǎn)化映射后的所述實(shí)際物理地址為所述數(shù)據(jù)備份文件的文件指針。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取攜帶調(diào)試信息的可執(zhí)行文件之前還包括創(chuàng)建虛擬內(nèi)存,模擬芯片、開發(fā)板或測試板上的硬件信息,將所述數(shù)據(jù)備份文件移動至所述虛擬內(nèi)存中,所述數(shù)據(jù)備份文件中包括開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)與寄存器數(shù)據(jù), 以及芯片運(yùn)行程序時(shí)的相關(guān)變量數(shù)據(jù)。
4.根據(jù)權(quán)利要求1或3所述的方法,其特征在于,所述讀取實(shí)際物理地址對應(yīng)的變量數(shù)據(jù)、以及獲取內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)之后,所述顯示之前還包括通過通信媒介將所述變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)發(fā)送至所述用戶接口。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述建立所述實(shí)際物理地址與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系采用非文件指針的方式進(jìn)行建立。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述用戶接口為圖形界面接口。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述攜帶調(diào)試信息的可執(zhí)行文件為芯片未出現(xiàn)異常前運(yùn)行的文件。
8.—種硬件現(xiàn)場復(fù)現(xiàn)的裝置,其特征在于,包括 檢測單元,用于檢測芯片是否出現(xiàn)異常;備份單元,用于備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件; 分析單元,用于分析攜帶調(diào)試信息的可執(zhí)行文件;所述分析單元中包括 獲取模塊,用于獲取攜帶調(diào)試信息的可執(zhí)行文件;解析模塊,用于解析所述可執(zhí)行文件,獲取所述可執(zhí)行文件中攜帶的調(diào)試信息所對應(yīng)的芯片運(yùn)行的程序數(shù)據(jù)信息;映射模塊,用于映射所述程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址; 建立模塊,用于轉(zhuǎn)化映射后的所述實(shí)際物理地址,建立其與所述數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系;讀取單元,用于依據(jù)所述對應(yīng)關(guān)系從所述數(shù)據(jù)備份文件的備份中,讀取所述實(shí)際物理地址對應(yīng)的變量數(shù)據(jù);獲取單元,用于獲取備份于所述數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù);復(fù)現(xiàn)單元,用于顯示所述真實(shí)數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置中還包括 創(chuàng)建單元,用于創(chuàng)建虛擬內(nèi)存;移動單元,用于將所述數(shù)據(jù)備份文件移動至預(yù)設(shè)的所述虛擬內(nèi)存中。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置中的創(chuàng)建單元、移動單元、檢測單元、備份單元、分析單元設(shè)置于服務(wù)端;所述裝置中的讀取單元、獲取單元和復(fù)現(xiàn)單元設(shè)置于客戶端;所述服務(wù)端與客戶端通過通信媒介進(jìn)行信息交互。
全文摘要
本發(fā)明公開了一種硬件現(xiàn)場復(fù)現(xiàn)的方法及裝置,其方法為在芯片出現(xiàn)異常時(shí),備份當(dāng)前硬件現(xiàn)場中的數(shù)據(jù)信息,生成數(shù)據(jù)備份文件;獲取并解析攜帶調(diào)試信息的可執(zhí)行文件,得到芯片運(yùn)行的程序數(shù)據(jù)信息;映射程序數(shù)據(jù)信息對應(yīng)的實(shí)際物理地址;轉(zhuǎn)化映射后的實(shí)際物理地址,建立其與數(shù)據(jù)備份文件之間的對應(yīng)關(guān)系;依據(jù)對應(yīng)關(guān)系從數(shù)據(jù)備份文件的備份中,讀取實(shí)際物理地址對應(yīng)的變量數(shù)據(jù);獲取備份于數(shù)據(jù)備份文件中的開發(fā)板或測試板上的內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù);顯示變量數(shù)據(jù)、內(nèi)存數(shù)據(jù)和寄存器數(shù)據(jù)于用戶接口,復(fù)現(xiàn)硬件現(xiàn)場。通過本發(fā)明采用軟件分析獲取復(fù)現(xiàn)所需數(shù)據(jù)的方式,可以提高硬件現(xiàn)場復(fù)現(xiàn)的速度并節(jié)約硬件資源。
文檔編號G06F11/00GK102567126SQ20101058400
公開日2012年7月11日 申請日期2010年12月10日 優(yōu)先權(quán)日2010年12月10日
發(fā)明者朱慶昌, 王沛 申請人:聯(lián)芯科技有限公司