專利名稱:計算機程序查錯輔助方法及系統的制作方法
技術領域:
本發明是關于一種計算機信息技術,特別是關于一種計算機程序查錯輔助方法及系統,應用在計算機平臺,當該計算機平臺上的一個計算機程序,例如基本輸出入系統(Basic Input/Output System,BIOS)程序,發生錯碼狀況未能順利執行時,對該BIOS程序提供有效率的查錯輔助功能,協助程序開發人員更快速地找到該BIOS程序中的錯碼所在的位置。
背景技術:
在計算機程序的開發上,當程序開發人員開發出一個計算機程序(例如BIOS程序)之后,通常需要首先在計算機平臺上對該BIOS程序進行測試程序,也就是在該計算機平臺上實際執行該BIOS程序,測試該BIOS程序是否可正常運行。若是該BIOS程序無法通過正常運行提供預定的功能、或是在實際執行時導致該計算機平臺發生當機狀況,程序開發人員便需要對該BIOS程序進行查錯工作,找出及更正該BIOS程序中的錯碼。
斷點查錯方法是一種常用的BIOS程序查錯方法,它是由程序開發人員在BIOS程序指令串中的一個特定位置(也就是程序開發人員認為最可能發生錯碼處附近),預先經由修改程序設定一斷點(breakpoint),使得BIOS程序執行到此斷點時即會自動停止,程序開發人員在此時可檢查各個緩存器和變量值來逐步找出出錯的位置。
然而上述斷點查錯方法在實際應用上的一項缺點是,程序開發人員須以人工方式在BIOS程序的編譯上相關的*.MAP(Link Editor Map)文檔中,搜尋BIOS程序中的各個程序模塊在實際執行時的內存地址,也就是區段(segment)及起始值(offset),此作業過程頗為繁瑣而效率較低。此外,現有的斷點查錯方法是以整個BIOS程序(即所有程序模塊)為范圍進行查錯,因此作業過程也頗為費時費力而沒有效率。
此外,目前業界常用的另一種查錯方法是由程序開發人員在BIOS程序因發生錯碼狀況中止執行時,通過計算機主板上一組特定的指示燈,例如BIOS芯片的Port84和Port84相關的指示號,判斷錯碼可能的位置。然而這種查錯方法不是很準確,因此程序開發人員無法準確地推測出錯碼所在的位置。
再者,目前常用的另一種查錯方法是由程序開發人員在原始程序代碼可能發生錯碼的前后范圍內添加一些測試用的臨時指令,由這些測試用的臨時指令的執行結果判斷錯碼所在的位置;在最后找到及修正錯碼之后,再將這些測試用的臨時指令刪除。這種查錯方法需要在事前添加及事后刪除這些測試用的臨時指令的過程頗為費力費時,因此并非一種快速且有效率的查錯方法。
發明內容
為克服上述現有技術的缺點,本發明的主要目的在于提供一種可協助程序開發人員更有效地對發生錯碼的BIOS程序進行查錯工作的計算機程序查錯輔助方法及系統。
本發明的計算機程序查錯輔助方法及系統是應用在計算機平臺,在該計算機平臺上的一個計算機程序,例如BIOS程序發生錯碼狀況未能順利執行時,對該BIOS程序提供一有效的查錯輔助功能,協助程序開發人員更為快速地找到該BIOS程序中錯碼所在的位置。
本發明的計算機程序查錯輔助方法至少包括整編該計算機程序在實際執行時包括的所有程序模塊;計算出整編成的各個程序模塊在實際執行時所在的內存地址;利用一當機點地址作為關鍵詞,檢索出該發生錯碼狀況的計算機程序的當機點所相關的程序模塊;以及針對該檢索出的當機點相關程序模塊進行除錯工作。
在實體架構上,本發明的計算機程序查錯輔助系統至少包括一使用者操控接口模塊,可提供一使用者操控接口;一程序整編模塊,其可整編該計算機程序于實際執行時所包括的所有的程序模塊,并將這些程序模塊以一使用者可感知的信息形式通過該使用者操控接口模塊而顯示于該計算機平臺上;一執行地址計算模塊,其可計算出該程序整編模塊所整編成的各個程序模塊于實際執行時所在的內存地址,并將所求得的執行地址數據以一使用者可感知的信息形式通過該使用者操控接口模塊而顯示于該計算機平臺上;一檢索模塊,其可通過該使用者操控接口模塊來提供一使用者操控的檢索功能,借以利用一當機點地址來檢索出該發生錯碼狀況的計算機程序的當機點所相關的程序模塊;以及一除錯模塊,其可提供一使用者操控的除錯功能,借以針對該檢索模塊所檢索出的當機點相關的程序模塊來進行除錯工作。
本發明的計算機程序查錯輔助方法及系統可自動整編發生錯碼的計算機程序中所有的程序模塊,并自動計算出各個程序模塊在實際執行時所在的內存地址,程序開發人員可利用發生錯碼的計算機程序的當機點地址檢索出當機點相關的程序模塊。本發明讓程序開發人員將查錯范圍縮小到當機點所相關的程序模塊,不必如現有作法以整個計算機程序(即所有的程序模塊)為范圍進行查錯,因此可協助程序開發人員更為快速及有效地找到錯碼所在的位置。
圖1是本發明計算機程序查錯輔助系統的應用方式及其對象導向組件模型的系統架構示意圖;圖2是本發明計算機程序查錯輔助系統顯示的使用者操控接口的示意圖。
具體實施例方式
以下配合附圖,詳細說明本發明計算機程序查錯輔助方法及系統。
圖1顯示本發明的計算機程序查錯輔助系統(如標號100所指的方塊)的應用方式。如圖所示,本發明的計算機程序查錯輔助系統100在實際應用是搭配到一計算機平臺10,在該計算機平臺10上的一個計算機程序,例如BIOS程序,發生錯碼狀況未能順利執行時,對該具有錯碼的BIOS程序20提供一查錯輔助功能,協助程序開發人員更快速、有效地找到該BIOS程序20中錯碼所在的位置。
如圖1所示,本發明的計算機程序查錯輔助系統100的對象導向組件模型(object-oriented component model)至少包括(a)一使用者操控接口模塊110;(b)一程序整編模塊120;(c)一執行地址計算模塊130;(d)一檢索模塊140;以及(e)一除錯模塊150。
首先分別說明本發明的計算機程序查錯輔助系統100中的各個模塊個別屬性及功能。
使用者操控接口模塊110可提供一如圖2所示的使用者操控接口111,并將此使用者操控接口111顯示在該計算機平臺10的屏幕11上,使用者(即程序開發人員)可通過此使用者操控接口111操控本發明的計算機程序查錯輔助系統100(注圖2僅以示意方式顯示使用者操控接口111的基本方式,在具體實施上,可有許多不同的展現方式,以及可包括許多其它的控制鍵及選項)。圖2所示的使用者操控接口111例如包括一程序模塊顯示區112、一執行地址顯示區113、一檢索關鍵詞輸入區114和一檢索結果顯示區115;其中該程序模塊顯示區112顯示該BIOS程序20中所有程序模塊的名稱;該執行地址顯示區113顯示該BIOS程序20中各個程序模塊在實際執行時的內存地址(以區段及起始值表示);該檢索關鍵詞輸入區114是讓使用者(即程序開發人員)輸入該發生錯碼的BIOS程序20在實際執行時的當機點地址;該檢索結果顯示區115則顯示出檢索結果(即檢索關鍵詞輸入區114接收到的當機點地址相關的程序模塊)。
程序整編模塊120可自動整編發生錯碼狀況的BIOS程序20在實際執行時所需的所有的程序模塊(也就是該BIOS程序20在編譯過程產生的所有中間文件),并將其整編成一程序模塊集121。在實際操作時,使用者操控接口模塊110即可將此程序整編模塊120整編成的程序模塊集121中所有程序模塊的名稱顯示在圖2所示的使用者操控接口111中的程序模塊顯示區112。
執行地址計算模塊130可計算上述程序整編模塊120整編成的程序模塊集121中各個程序模塊在實際執行時所在的內存地址。在此實施例中,所求得的執行地址是以區段(segment)及起始值(offset)表示。在實際操作時,使用者操控接口模塊110即可將此執行地址計算模塊130求得的執行地址數據,顯示在圖2所示的使用者操控接口111中的執行地址顯示區113。
檢索模塊140可提供一使用者操控的程序模塊檢索功能,也就是它可響應一使用者操控事件201輸入的當機點地址數據,從上述程序整編模塊120整編的程序模塊集121中,檢索出輸入的當機點地址相關的程序模塊,并將其檢索結果顯示在圖2所示的使用者操控接口111中的檢索結果顯示區115。在具體實施上,此當機點地址數據的取得方法例如可采用現有的ITP(In-Target Probe)設備或其它等效的裝置。此外,此檢索模塊140也可進而包括一呼叫來源查詢功能,使用者可查詢出該當機點相關的程序模塊在實際執行時被呼叫來執行時的呼叫來源(即哪一個程序模塊呼叫該當機點相關的程序模塊)。在具體實施上,此呼叫來源查詢功能例如可使用BIOS程序設計上所用的CALL、JSB和ROM Gate協助查詢出該當機點相關程序模塊的呼叫來源。
除錯模塊150可提供一使用者操控的除錯功能,程序開發人員可僅針對上述檢索模塊140檢索出的程序模塊(也就是當機點相關的程序模塊)進行除錯工作。此除錯模塊150例如可在該當機點相關程序模塊設定一斷點或采用任何其它適當方法進行除錯工作,得到一除錯后的BIOS程序30。
以下以應用實例說明本發明的計算機程序查錯輔助系統100應用在計算機程序查錯輔助方法的操作步驟。在此應用實例中,假設具有錯碼的BIOS程序20中包括多個如圖2的程序模塊顯示區112所示的多個程序模塊,且其中名稱為″CHECK_HEALTH″的程序模塊具有錯碼,使得該BIOS程序20在實際執行時會導致計算機平臺10發生當機狀況。本發明的計算機程序查錯輔助系統100即可協助程序開發人員快速、有效地找出具有錯碼的程序模塊″CHECK_HEALTH″,針對此具有錯碼的程序模塊″CHECK_HEALTH″快速地進行除錯工作。
請同時參閱圖1和圖2,在實際應用時,當具有錯碼的BIOS程序20的執行導致計算機平臺10發生當機狀況時,程序開發人員即可啟動本發明的計算機程序查錯輔助系統100進行一查錯程序。
本發明的計算機程序查錯輔助方法的操作步驟包括,計算機程序查錯輔助系統100會手首先啟動使用者操控接口模塊110,在計算機平臺10的屏幕11上顯示出一如圖2所示的使用者操控接口111,并同時啟動程序整編模塊120整編發生錯碼狀況的BIOS程序20在實際執行時包括的所有程序模塊(也就是該BIOS程序20在編譯過程產生的所有中間文件),并接著令執行地址計算模塊130對該程序整編模塊120整編成的程序模塊集121中所有程序模塊執行一執行地址計算程序,計算出各個程序模塊在實際執行時所在的內存地址。接著令使用者操控接口模塊110將該程序整編模塊120整編成的所有程序模塊,連同該執行地址計算模塊130計算出的執行地址數據,以使用者可感知的信息形式分別顯示在使用者操控接口111中的程序模塊顯示區112和執行地址顯示區113,程序開發人員可通過該使用者操控接口模塊110瀏覽該發生錯碼狀況的BIOS程序20中所有程序模塊及其執行地址范圍。
此時,程序開發人員即可通過使用者操控接口111中的檢索關鍵詞輸入區114,輸入該BIOS程序20的當機點地址數據,例如為[1000:1234],即可令檢索模塊140從該程序整編模塊120整編成的程序模塊集121中,檢索出該當機點地址相關的程序模塊(也就是名稱為″CHECK_HEALTH″的程序模塊),并將檢索結果顯示在圖2所示的使用者操控接口111中的檢索結果顯示區115。此外,程序開發人員也可進而使用檢索模塊140查詢出該當機點相關程序模塊″CHECK_HEALTH″在實際執行時被呼叫來執行時的呼叫來源(即哪一個程序模塊呼叫該當機點相關程序模塊),例如使用BIOS程序設計上所用的CALL、JSB和ROM Gate查詢出該當機點相關程序模塊″CHECK_HEALTH″的呼叫來源。
接著程序開發人員即可啟用除錯模塊150,針對上述檢索模塊140檢索出的程序模塊″CHECK_HEALTH″進行除錯工作。此除錯模塊150例如可在該當機點相關程序模塊設定一斷點或采用任何其它適當的方法進行除錯工作,得到一除錯后的BIOS程序30。
因此該計算機程序查錯輔助方法至少包括首先,整編該計算機程序在實際執行時包括的所有程序模塊;隨后,計算出整編成的各個程序模塊在實際執行時所在的內存地址;接著,利用一當機點地址作為關鍵詞,檢索出該發生錯碼狀況的計算機程序的當機點相關的程序模塊,最后,針對該檢索出的當機點相關程序模塊進行除錯工作。
總而言之,本發明提供了一種新穎的計算機程序查錯輔助方法及系統,可對程序開發人員提供一有效率的計算機程序查錯輔助功能;本發明可自動整編發生錯碼的計算機程序中所有程序模塊,并自動計算出各個程序模塊在實際執行時所在的內存地址,程序開發人員可利用發生錯碼的計算機程序的當機點地址,檢索出當機點相關的程序模塊,本發明可讓程序開發人員將查錯范圍縮小到當機點所相關程序模塊,不必如現有作法,需要對整個計算機程序(即所有程序模塊)為范圍進行查錯,因此可協助程序開發人員更為快速、有效地找到錯碼所在的位置。
權利要求
1.一種計算機程序查錯輔助方法,應用在一計算機平臺,對一發生錯碼狀況的計算機程序提供查錯輔助功能,其特征在于,該計算機程序查錯輔助方法至少包括整編該計算機程序在實際執行時包括的所有程序模塊;計算出整編成的各個程序模塊在實際執行時所在的內存地址;利用一當機點地址作為關鍵詞,檢索出該發生錯碼狀況的計算機程序的當機點所相關的程序模塊;以及針對該檢索出的當機點相關程序模塊進行除錯工作。
2.如權利要求1所述的計算機程序查錯輔助方法,其特征在于,該計算機程序為一BIOS程序。
3.如權利要求1所述的計算機程序查錯輔助方法,其特征在于,該計算機程序查錯輔助方法進而還包括一呼叫來源查詢程序,查詢出當機點相關的程序模塊實在際執行時被呼叫來執行時的呼叫來源。
4.如權利要求1所述的計算機程序查錯輔助方法,其特征在于,該當機點地址的取得方法是采用一ITP設備。
5.一種計算機程序查錯輔助系統,可搭配到一計算機平臺,對一發生錯碼狀況的計算機程序提供一查錯輔助功能,其特征在于,該計算機程序查錯輔助系統至少包括一使用者操控接口模塊,其可提供一使用者操控接口;一程序整編模塊,其可整編該計算機程序于實際執行時所包括的所有的程序模塊,并將這些程序模塊以一使用者可感知的信息形式通過該使用者操控接口模塊而顯示于該計算機平臺上;一執行地址計算模塊,其可計算出該程序整編模塊所整編成的各個程序模塊于實際執行時所在的內存地址,并將所求得的執行地址數據以一使用者可感知的信息形式通過該使用者操控接口模塊而顯示于該計算機平臺上;一檢索模塊,其可通過該使用者操控接口模塊來提供一使用者操控的檢索功能,借以利用一當機點地址來檢索出該發生錯碼狀況的計算機程序的當機點所相關的程序模塊;以及一除錯模塊,其可提供一使用者操控的除錯功能,借以針對該檢索模塊所檢索出的當機點相關的程序模塊來進行除錯工作。
6.如權利要求5所述的計算機程序查錯輔助系統,其特征在于,該計算機程序為一BIOS程序。
7.如權利要求5所述的計算機程序查錯輔助系統,其特征在于,該檢索模塊進而包括一呼叫來源查詢功能,借以查詢出當機點相關的程序模塊于實際執行時被呼叫來執行時的呼叫來源。
8.如權利要求5所述的計算機程序查錯輔助系統,其特征在于,該當機點地址的取得方法是采用一ITP設備。
全文摘要
一種計算機程序查錯輔助方法及系統,搭配一計算機平臺,對發生錯碼狀況的計算機程序提供一查錯輔助功能;該計算機程序查錯輔助系統至少包括使用者操控接口模塊、程序整編模塊、執行地址計算模塊、檢索模塊以及除錯模塊;本發明的計算機程序查錯輔助方法及系統可自動整編發生錯碼的計算機程序中所有的程序模塊,并自動計算出各個程序模塊在實際執行時所在的內存地址,程序開發人員可利用發生錯碼的計算機程序的當機點地址檢索出當機點相關的程序模塊;本發明讓程序開發人員將查錯范圍縮小到當機點相關程序模塊,不必如現有作法以整個計算機程序(即所有的程序模塊)為范圍進行查錯,因此可協助程序開發人員更為快速及有效地找到錯碼所在的位置。
文檔編號G06F11/36GK1952910SQ200510114338
公開日2007年4月25日 申請日期2005年10月20日 優先權日2005年10月20日
發明者盧義村 申請人:英業達股份有限公司