一種用于捕獲在系統上執行的軟件的體系結構數據的系統和方法,其中體系結構數據可包括狀態數據和事件數據。被捕獲的體系結構數據可在模擬器中重放,其中可從模擬器獲得對應于軟件的故障信息。
【技術實現步驟摘要】
【國外來華專利技術】
實施例一般涉及軟件故障的評估。更具體地,實施例涉及被捕獲的體系結構數據的重放以評估軟件故障。討論調試軟件的現有技術可涉及在所討論的平臺上執行測試內容并手動地修剪測試內容以隔離故障源。此類方法在問題解決之前可能需要多次迭代。此外,修剪測試內容可能僅在內容源可用時才是可行的。調試軟件的其他技術可涉及使用邏輯分析器來跟蹤所執行的軟件邏輯,其中進行跟蹤數據的全面分析。然而,多核和/或多線程處理器的趨勢可引 起探針通道的數量的增加和邏輯分析器的成本和復雜度的增加。簡言之,調試軟件的傳統方法可能是耗時且昂貴的。附圖說明通過閱讀以下說明書和所附權利要求,以及通過參照以下附圖,本專利技術的實施例的各個優點對本領域普通技術人員而言是顯而易見的,其中圖I是根據一實施例的評估軟件的方案的示例的框圖;圖2是根據一實施例的捕獲存儲器事務的方法的示例的流程圖;圖3是根據一實施例的系統的示例的框圖。具體實施例方式實施例可提供一種方法,在該方法中捕獲在系統上執行的軟件體系結構數據。體系結構數據可在模擬器中重放,其中可從模擬器獲得對應于軟件的故障信息。其他實施例可包括具有一組存儲的指令的計算機可讀存儲介質,該指令在被處理器執行時使得計算機捕獲在系統上執行的軟件的體系結構數據并在模擬器中重放該體系結構數據。指令還可使得計算機從模擬器獲得故障信息,其中故障信息對應于軟件。此外,實施例可提供一種方法,其中利用系統的固件以響應于多個中斷周期性地捕獲在系統上執行的軟件的體系結構數據。體系結構數據可包括狀態數據和事件數據。體系結構數據的格式可被轉換為與模擬器相關聯的格式,其中體系結構數據可在模擬器中被重放。該方法還可提供從模擬器獲得故障信息,其中故障信息對應于軟件。現轉到圖1,示出了在系統上執行的評估軟件的方案10。方案10可用于支持、管理和/或提高諸如所評估軟件的調試、驗證和優化之類的各種各樣的操作。此外,在其上執行軟件的系統可包括諸如膝上型計算機、個人數字助理(PDA)、移動互聯網設備(MID)、無線智能手機、媒體播放器、成像設備等等或其任何組合之類的移動平臺。系統也可以是諸如個人計算機計算機(PC)、服務器、工作站等的固定平臺的一部分。一般而言,所示方案10包括硅執行序列12和模擬器執行序列14。硅執行序列12可與通過諸如通用處理器的單核或多核、固定功能硬件(例如,嵌入式微處理器)等集成電路的軟件執行相關聯,其中,集成電路可使用諸如專用集成電路(ASIC)、互補金屬氧化物半導體(CMOS)或晶體管-晶體管邏輯(TTL)技術或其任何組合之類的電路技術來制造。在一個示例中,由于諸如多線程或多核環境之類的復雜執行環境,軟件具有很多交互和依賴關系O在所示示例中,通過開始在執行處理框16的系統上執行軟件,將系統置于測試下。箭頭實例18 (18a-18b)表示以周期方式或以其它方式發出中斷,其中中斷可發起通過轉儲處理程序20對體系結構狀態數據22的捕獲。被捕獲的體系結構狀態數據22可包括與諸如取指令單元、指令解碼器、高速緩存、執行單元、寄存器等等系統體系結構的多個方 面相關的數據。隨著軟件的執行在后續執行處理框30和34繼續,體系結構事件數據24還可分別經由事件捕獲處理框26和32捕獲。體系結構事件數據可包括存儲器事務(例如,力口載一存儲)數據和其他數據。所示序列12繼續直至在框28遇到故障點。圖2示出捕獲存儲器事務數據的方法42。方法42可在作為儲存在諸如隨機存取存儲器(RAM)、只讀存儲器(ROM)、可編程ROM (PR0M)、閃存等存儲器的機器或計算機可讀介質中的一組邏輯指令的可執行軟件中實現,也可以在使用諸如ASIC、CMOS或TTL技術或其中任何組合的電路技術的固定功能硬件中實現。舉例而言,可以用一種或多種編程語言的任意組合來編寫用于實施在方法42中所示的操作的計算機程序代碼,這些編程語言包括諸如Java、Smalltalk、C++等面向對象的編程語言以及諸如“C”編程語言或類似的編程語言的傳統程序的編程語言。另一方面,諸如匯編語言編程或機器代碼之類的固定功能硬件或更低級固件指令可用于實施在方法42中所示的操作。實際上,上述體系結構狀態轉儲處理器20操作、體系結構事件捕獲框26、32和中斷箭頭實例18 (圖I)均可在被測試系統的固件(例如,定制微碼)中全部自動化。因此,所示方法不需要手動調試或使用復雜的邏輯分析器(例如,提供無外部設備的“無探針”測試布置)來獲得被測試軟件的故障信息。所示的處理框44提供確定存儲器事務數據捕獲固件是否啟用。如果啟用,通過測試軟件的操作訪問的一個或多個地址可在框46中被標識并捕獲。捕獲可包括在每次存儲器訪問中涉及的物理以及線性地址。還可收集諸如嘗試每個存儲器訪問的執行流中的指令之類的其他執行數據和在加載操作的情況(例如對標志、寄存器的改變,等等)下的每個存儲器操作的結果。如下所討論的,框48提供封裝被捕獲的地址和執行數據,以及框50提供存儲經封裝的信息以用于后續轉換和/或傳輸至模擬器。此外,在框52可退出存儲器操作,而不引起被測試軟件的宏觀或微觀操作流的任何變化。返回至圖1,被捕獲的體系結構狀態數據22和事件數據24可被轉換為與模擬器相關聯的格式,其中模擬器處理框36提供利用被捕獲的體系結構狀態數據22來初始化模擬器。體系結構模擬器的示例包括但不限于從新罕布什爾州納舒厄市的Gambit通信公司購買的MlMlCwi模擬器、Bochs開源仿真器(例如,Bochs IA-32仿真器v2. 4. 5, 2010年4月25日,Geeknet公司)以及QEMU開源仿真器(例如,QEMU vO. 12. 4,2010年5月4日)。處理框38提供使用被捕獲的事件數據24在模擬器中重放軟件,其中可在框40從模擬器獲得被測試軟件的故障信息。故障信息可被用于進行諸如調試操作、驗證操作和優化操作之類的附加操作。例如,在系統調試使用模型中,體系結構重放可啟用對被歸類為軟件故障的問題的快速分類。一個副產品可能是在需要更詳細的調制時對問題的隔離。同樣,從環境和BIOS(基本輸入/輸出系統)相關原因所顯現的故障問題可使用所示方法來標識。在驗證的情況下,故障信息可對互操作性和/或兼容性有影響,尤其在多核/多線程環境下操作時??赡芨‖F的問題包括但不限于核/線程之間的同步問題、處理器間加載/存儲問題、處理器間中斷的排序,等等。因此,體系結構重放可便于對潛在故障進行根本原因分析。此外,所示方法可被包含在軟件開發包中,當與諸如編譯器和線程化工具之類的其他工具相聯系時,軟件開發包可由設備制造商和軟件供應商使用以啟用和優化軟件工具鏈。圖3示出了計算系統54,其中系統54可以是諸如膝上型計算機、PDA、MID、無線 智能電話、媒體播放器、成像設備等等或其任何組合之類的移動平臺的一部分。系統54也可以是諸如PC、服務器、工作站等固定平臺的一部分。所示系統10包括主機處理器56,該主機處理器56可包括提供對系統存儲器60的訪問的集成存儲器控制器58,該系統存儲器60可包括雙數據率(DDR)同步動態隨機存取存儲器(SDRAM,例如DDR3 SDRAMJEDEC標準JESD79-3C,2008年4月)模塊。系統存儲器60的模塊可被合并為單列直插式存本文檔來自技高網...
【技術保護點】
【技術特征摘要】
【國外來華專利技術】...
【專利技術屬性】
技術研發人員:R·德瓦拉杰,J·D·弗蘭科,
申請(專利權)人:英特爾公司,
類型:
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。