TWI402750B - 具有軟體程式儲存於其中之電腦可讀取媒體及用以產生軟體程式的方法 - Google Patents
具有軟體程式儲存於其中之電腦可讀取媒體及用以產生軟體程式的方法 Download PDFInfo
- Publication number
- TWI402750B TWI402750B TW095124652A TW95124652A TWI402750B TW I402750 B TWI402750 B TW I402750B TW 095124652 A TW095124652 A TW 095124652A TW 95124652 A TW95124652 A TW 95124652A TW I402750 B TWI402750 B TW I402750B
- Authority
- TW
- Taiwan
- Prior art keywords
- program
- compiled
- routine
- library
- call
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Description
本發明係有關有可任擇函數程式館的軟體程式。
為了正確評價現代產品的性能符合他們的規格,測試、測量已經成為一個產品開發和生產生命週期重要的一部分。經常,在電腦控制下,進行這些測試的測試機器可以是自動化的,對多種系統和/或組成部分進行一個或多個多樣的測試。
一用戶可能必須依據需要撰寫軟體程式,以使用這些測試機器執行這樣的測試。為減輕軟體程式員的工作量,測試機器的製造商經常提供一可以在軟體程式中使用的公用函數程式館。像所有的軟體程式一樣,程式本身需要受測試並做必要的修改,以確保該程式依所設計地運作。發現且修正可能在程式內存在的錯誤,稱之為替程式除錯。在此作業中,經常將程式以一除錯模式加以編譯,其中係把額外程式規劃步驟增加到程式中,以能提供資訊給軟體程式員以供鑑定任何錯誤的類型和程式位置。這可能,也經常是一消耗時間及金錢的作業。
一旦軟體程式員滿意於該程式正確地運作並準備好以供使用,程式即以沒有增加用於除錯的額外程式規劃步驟之方式加以重新編譯,使得程式進行其操作時的速度增加。通常軟體程式員不會檢查多種潛在的程式問題,如堆疊溢位或者由程式館函數向軟體程式報告的錯誤。因此,程式員雖可能相信程式運作正確,但程式在某些情況下卻不會正確運作。再者,函數程式館之一的問題,可能在後來才由製造商測知,且在之後的軟體版本中才能修正。使用該新版本的一函數程式館,可能使沒有經由軟體程式員或用戶預先測知的程式問題浮現。
在代表性的實施例中,本發明揭露一種包含一函數呼叫的軟體程式。當該程式於一第一模式鏈結時,來自一第一程式館的一第一經編譯常式係耦合至該函數呼叫,否則,來自一第二程式館的一第二經編譯常式便耦合至該函數呼叫。該第一經編譯常式係使一來源碼常式中的一參數設定為一第一數值,而從該來源碼常式加以編譯而成;而該第二經編譯常式係使該來源碼常式中的該參數設定為一第二數值,而從該來源碼常式加以編譯而成。該第一經編譯常式與該第二經編譯常式具有相同的功能,並增添有額外的功能。
在另一個代表性的實施例中,本發明揭露了一種程式館組,其包含第一程式館及第二程式館。該第一程式館包含一第一經編譯常式,第二程式館包含一第二經編譯常式。該第一經編譯常式係使一來源碼常式中的一參數設定為一第一數值,而從該來源碼常式加以編譯而成;而該第二經編譯常式係使該來源碼常式中的該參數設定為一第二數值,而從該來源碼常式加以編譯而成。該第一經編譯常式與該第二經編譯常式具有相同的功能,並增添有額外的功能。
又在另一個代表性的實施例中,本發明揭露了一種用以產生一軟體程式的方法,該方法包含指定用以鏈結該程式的一模式,其中用於該程式的來源碼包含一函數呼叫。當在指定該模式的該步驟中指定一第一模式時,藉著使針對來自一第一程式館之一第一經編譯常式的目的碼耦合於該程式之一先前經編譯形式中的該函數呼叫,來產生該程式的一可執行形式。否則,便藉著使針對來自一第二程式館之一第二經編譯常式的目的碼耦合於該程式之該先前經編譯形式中的該函數呼叫,來產生的該程式的該可執行形式。該第一經編譯常式與該第二經編譯常式具有相同的功能,並增添有額外的功能。
在此所揭露的代表性實施例的其他特徵和優勢,將從以下的詳細描述與伴隨的圖式而變得顯而易見。
附圖提供的視覺呈現,用以更完全地描述各種代表性實施例,且能使熟知此技藝者更容易理解它們及其固有的優點。在這些圖式中,相同的參考數字代表相對應的元件。
第1圖是各種代表性實施例中所描述之一種測試系統的方塊圖。
第2A圖係用以如各種代表性實施例中所描述地把程式來源碼部件轉換為可執行軟體程式的部件與程序的方塊圖。
第2B圖係如各種代表性實施例中所描述地由軟體程式用於從二個程式館中之一呼叫常式的部件與程序之方塊圖。
第3圖係如各種代表性實施例中所描述地供第一與第二經編譯常式用的一來源碼常式表列。
第4圖係為如各種代表性實施例中所描述地用以利用可任擇程式館來鏈結且執行一程式的一種方法之流程圖。
如為了展示目的的圖式所顯示,其中對軟體程式揭露了新技術,該程式包含了對可用除錯模式及操作模式編譯之任擇程式館中的函數之呼叫。一除錯程式館提供除錯模式編譯函數,而另一程式館提供操作模式編譯函數。該軟體程式能夠在必要時,無需重新編譯軟體程式即鏈結或重新鏈結到除錯程式館函數或操作模式程式館函數。對程式館函數呼叫的成功或失敗,能在不改變及重新編譯使用者開發的軟體程式之情形下,加以監控。以往此類除錯技術則須仰賴將除錯碼啟用及/或加入使用者開發的軟體程式,並且需隨後重新編譯軟體程式及鏈結。
在下列的詳細描述及一些圖式中,相似的部件以相同的參考數字代表。
第1圖為多個典型的實施例所描述之一種測試系統100的方塊圖。在第1圖中,該測試系統10包含了一測試機器105與受測裝置(DUT)150連接。受測裝置(DUT)150可為任何各種不同種類的電子部件150,或是任何其他種類的部件150,例如一機械部件150。該測試機器105包含一電腦110及一儀器115。在第1圖中,也同樣顯示外接該電腦110之一可選擇外接輸出設備145。舉例來說,該外接輸出設備145可為一印表機145。該電腦110連接到儀器115,藉著設定執行測試測量的狀況、啟動該測量及蒐集測量結果,來控制儀器115之操作。在第1圖中的儀器115能代表一單一儀器,如電壓計、電流儀等等,或是代表一能有多樣測量及測量種類的個別儀器之組合。
該電腦包含一中央處理器(CPU)120、一記憶體125、一輸入設備130及一內建輸出設備140。該輸入設備130可為一鍵盤130,或是可用如一筆、一滑鼠、一軌跡球或一觸控螢幕等等適於游標操控或相似功用之一指向設備。該內建輸出設備140可為一監視器140。該監視器140可為單色或彩色的。該電腦110可執行一個或多個任何商業上可得之作業系統,如DOS、多種版本的微軟視窗(Windows 95、98、Me、2000、XP等等)、蘋果麥金塔OSX、UNIX、Linux、或是其他合適作業系統。在操作上,一可執行軟體測試程式135(在本文中也稱為軟體測試程式135、及測試程式135,且在本文中一般狀況下也稱為一種軟體程式135及一程式135),可由該記憶體125或未在圖式中顯示的一外接來源載入到CUP 120。
在其他的態樣中,該測試系統110可包含多個CPU 120,它們並不是全部都執行相同的測試程式,並可附接到其他的輸入/輸出設備,亦可能不是附接到第1圖中所示的多種輸入/輸出設備。
第2A圖為如多種代表性實施例所述用以把程式來源碼部件205轉換為可執行軟體程式135的部件和程序之方塊圖。在第2A圖中,一編譯器215編譯程式來源碼部件205成為程式目的碼模組220。該程式來源碼部件205包含測試器函數呼叫210,此等呼叫在本文中一般狀況下也稱為函數呼叫210,屬於對該測試機器105的標準函數之呼叫,並在此等函數之一程式館中能找到。該函數程式館一般由測試機器105的製造商提供,而該等程式來源碼常式一般則由該測試機器105的使用者針對特定目的編寫產生。一鏈結器225以一存根模組程式館250結合或鏈結該等程式目的碼模組220,如在第2B圖顯示地,此存根模組程式館250能夠為程式館常式用來耦合目的碼。除了使用存根模組程式館250之外,亦可用諸如直接耦合已編譯測試器常式240a、240b到程式135中的函數呼叫210之技術,以滿足該函數呼叫210。
第2B圖為如多種代表性實施例所述由軟體程式135用以從二個程式館235a、235b之一中呼叫常式的部件和程序之方塊圖。參考第2A圖及第2B圖,鏈結器225以本文中稱為模式的兩種形式之一產生可執行軟體測試程式135。當該可執行軟體測試程式135鏈結到一除錯模式(本文中在一般狀況下也稱為第一模式),測試函數呼叫210耦合到來自一除錯程式館235a的第一編譯測試器常式240a。在一般狀況下,第一編譯測試器常式240a在本文中稱為第一經編譯常式240a,且在一般狀況下,該除錯程式館235a在本文中稱為第一程式館235a。反之,當該可執行軟體測試程式135鏈結在一可操作模式(本文中在一般狀況下也稱為一第二模式),測試器函數呼叫210以來自一操作程式館235b的第二編譯測試器常式240b替代。第二編譯測試器常式240b在一般狀況下,在本文中也稱為第二經編譯常式240b,且該操作程式館235b在一般狀況下,在本文中也稱為第二程式館235b。因此,根據鏈結軟體測試程式135時所選擇的模式,來自兩個程式館235a、235b之一的編譯測試器常式240耦合到該軟體測試程式135。
實際上,對該測試器函數呼叫210的呼叫,能透過存根模組程式館250獲得滿足,該程式館250一般皆位於電腦110的作業系統260中,且根據使用者在鏈結時間選擇的模式,用一第一存根模組251以從一位址表255中取得該第一編譯測試器常式240a在第一程式館235a中的位址,或用一第二存根模組252,從位址表255中取得該第二編譯測試器常式240b在第二程式館235b中的位址。該第一編譯測試器常式240a擁有超出第二編譯測試器常式240b的額外功能。在代表性實施例中,該第一編譯測試器常式240a的額外功能提供用於為軟體測試程式135除錯的資訊。第一及第二經編譯常式240a、240b對位於作業系統260中的內部常式265產生呼叫。本案揭露的技術乃適合擁有不同種類的多種函數呼叫210之軟體程式135。除了存根模組程式館250,也可使用其他的技術,諸如,在鏈結時間,將程式目的來源碼模組220與經編譯測試常式240a、240b之一鏈結起來。除了使用存根模組程式館250與位址表255以外的技術,也能用於滿足函數呼叫210。然而,以存根模組程式館250搭配位址表中的函數位址詢查,則有助於不受所用作業系統版本影響地進行常式呼叫。
第3圖為如多種代表性實施例所述地用於第一經編譯常式240a與第二經編譯常式240b的一來源碼常式300之一表列。該第二編譯測試器常式240b,係從來源碼常式300編譯而來,來源碼常式300擁有在本代表性例子中于來源碼常式300中為〞除錯〞的參數310,此參數被設定於一第二數值,該第二數值在本代表性例子中為零(NULL)。該第一編譯測試器常式240a,係從來源碼常式300編譯而來,讓該來源碼常式300中的該參數310設定為第一數值,使第一編譯測試器常式240a具有超出第二編譯測試器常式240b功能的額外功能。再次提到,在本代表性例子中,該參數310為〞除錯〞,但針對該第一編譯測試器常式240a的編譯,該除錯的數值則為一非零的數值。
第一編譯測試器常式240a超出該第二編譯測試器常式240b的額外功能,包含透過呼叫〞SCheckStack()〞在常式初始化時檢查堆疊,及透過呼叫〞SCheckAtm()〞,檢查第一編譯測試器常式240a內部的常式〞PETable()〞的返回數值。然而,第二編譯測試器常式240b的功能,不包含在"CHECK_STACK"編譯為零值,而非如第一編譯測試器常式240a的"SCheckStack()"時,透過呼叫"SCheckStack()"在常式初始化時檢查堆疊。同樣,第二編譯測試器常式240b的功能,不包含在"CHECK_ATM"編譯為零值,而非如第一編譯測試器常式240a的"SCHeckAtm()"時,透過呼叫"SCheckAtm"檢查第一編譯測試器常式240a內部之常式"PETable()"的返回數值。
第4圖為如多種代表性實施例所述地用以利用可任擇程式館235a、235b來鏈結且執行一程式134的方法400之流程圖。在方塊403中,若程式135係欲鏈結或再鏈結,方塊403即轉換控制至方塊405。否則,方塊403轉換控制至方塊425。
在方塊405中,以除錯程式館(第一程式館)235a或操作程式館(第二程式館)鏈結程式來源碼部件205的模式,係由使用者所設定。方塊405隨即轉換控制至方塊410。
若該除錯模式在方塊405中獲選擇,方塊410轉換控制至方塊415。否則,方塊405即轉換控制至方塊420。
在方塊415中,測試程式135與除錯程式館235a中合過的第一編譯測試器常式240a鏈結,用以產生可執行軟體測試程式135。方塊415隨即轉換控制至方塊425。
在方塊420中,測試程式135與操作程式館235b中合過的第二編譯測試器常式240b鏈結,用以產生該可執行軟體測試程式135。方塊420隨即轉換控制至方塊425。
在方塊425中,於方塊415或方塊420中產生之該可執行軟體測試程式135,載入該測試機器105的電腦110的CPU 120中。方塊425隨即轉換控制至方塊430。
在方塊430中,受測裝置150連接到測試機器105。方塊430隨後即轉換控制至方塊435。
在方塊435中,該可執行軟體測試程式135在該測試機器105的電腦110的CPU 120中啟動,以對受測裝置150執行測試。方塊435接著即轉換控制至方塊440。
若該除錯模式在方塊405中被選擇,方塊440轉換控制至方塊445。否則,方塊440轉換控制至方塊450。
若在方塊435中執行程式135時發現有程式錯誤,方塊445轉換控制至方塊455。否則,方塊445轉換控制至方塊460。
若在方塊450中判定要測試更多DUT(受測裝置)150,方塊450轉換控制至方塊430,否則方塊450即終結此程序。
在方塊455中,程式來源碼部件205中的錯誤遭修正。方塊455接著轉換控制至方塊405。
若在方塊460中判定要測試更多DUT 150,方塊460即轉換控制至方塊430,否則方塊460便終結控制至方塊405。
一旦在執行測試程式135之際,沒有發現進一步的錯誤,且該程式135再次鏈結在操作模式時,方塊425、430、和435即能不迴圈經過第4圖其他步驟地適當地執行。然而,在方塊430所下的決定,引導使用者至方塊425、430、及435,且在方塊440及450所下的該決定,引導使用者合適地離開及回到方塊425、430及435。
在代表性實施例中,所揭示之一軟體程式135包含一函數呼叫210。當該程式135於一第一模式鏈結時,來自一第一程式館235a的一第一經編譯常式240a係耦合至該函數呼叫210。否則,來自一第二程式館235b的一第二經編譯常式240b便耦合至該函數呼叫210。該第一經編譯常式240a係從一來源碼常式300編譯而成,而其中係讓該來源碼常式300中的一參數310設定為一第一數值。該第二經編譯常式240b係令該來源碼常式300中的該參數310設定為一第二數值,而從該來源碼常式300編譯而成。該第一經編譯常式240a具有與該第二經編譯常式240b相同的功能並增添有額外的功能。
在另一個代表性實施例中,揭露了一種包含第一程式館235a及一第二程式館235b的程式館組235a、235b。該第一程式館235a包含一第一經編譯常式240a,且該第二程式館235b包含一第二經編譯常式240b。該第一經編譯常式240a係令一來源碼常式300中的一參數310設定為一第一數值,而從該來源碼常式300編譯而成。該第二經編譯常式240b係讓該來源碼常式300中的該參數310設定為一第二數值,而從該來源碼常式300編譯而成。該第一經編譯常式240a具有與該第二經編譯常式240b相同的功能並增添有額外的功能。
且在另一個代表性實施例中,揭露了一種用以產生一軟體程式135的方法400。該方法包含指定用以鏈結該程式135的一模式,其中用於該程式135的來源碼包含一函數呼叫210;當在指定該模式的該步驟中指定一第一模式時,藉著使供來自一第一程式館235a之一第一經編譯常式240a用的目的碼耦合於該程式135之一先前經編譯形式中的該函數呼叫210,來產生該程式135的一可執行形式。否則,便藉著使供來自一第二程式館235b之一第二經編譯常式240b用的目的碼耦合於該程式135之該先前經編譯形式中的該函數呼叫210,來產生該程式135的該可執行形式。該第一經編譯常式240a具有與該第二經編譯常式240b相同的功能並增添有額外的功能。
在該情形下,很多資料處理產品中,上述的系統能以硬體及軟體部件的組合實現。再者,供該等代表性實施例使用所需的該功能,可於用以規劃一測試機器105的電腦110之電腦可讀媒體(諸如軟碟、傳統硬碟、DVD、光碟唯讀記憶體、快閃唯讀記憶體、非依電性唯讀記憶體、及隨機存取記憶體)中實現。
〝程式儲存媒體〞一詞在本文中係廣泛定義為包含任何種類的電腦記憶體,例如但不侷限於:軟碟、傳統硬碟、DVD、光碟唯讀記憶體、快閃唯讀記憶體、非依電性唯讀記憶體、及隨機存取記憶體。
在本文揭露的該軟體程式135及諸方法的一代表性實施例中,使用者撰寫一程式,針對程式館常式使用呼叫。這些呼叫能從在兩個可任擇程式館235a、235b之一中找到的經編譯測試器常式予以滿足。這些程式館的該第一程式館235a中的常式提供該使用者關於該常式的操作之額外資訊,且通常使用於對一軟體程式135除錯,而此軟體程式可能為,例如,一軟體測試程式135。在這些程式館的該第二程式館235b中的常式與在該第一程式館235a中的常式相同,惟缺乏這額外資訊。事實上,除了一參數310的數值,用於這兩個版本的經編譯常式240a、240b的來源碼是相同的。該參數310的數值在編譯該第一及第二經編譯常式240a、240b的過程中作為一控制項,因此,可啟動所選的操作性檢查及其他功能,諸如在該程式135執行過程的一中間點以經編譯版本的第一程式館常式235a報告數值。由於供軟體測試程式135用的來源碼不需要重新編譯,故以新釋出的程式館函數來作程式確認及測試程式135的除錯,便告簡化。供軟體測試程式135用的來源碼僅需要在除錯時鏈結到除錯程式館(第一程式館)235a,並接著在該軟體程式135已獲確認有合適操作時重新鏈結於操作程式館(第二程式館)235b。
雖然本文中之討論係就用以測試電子部件150的軟體測試程式135來進行,但熟知此技藝者將可體認到本文中揭露的技術不限定於此種軟體程式135上。同樣的函數呼叫可由該軟體程式135為之,而不論究竟要使用哪一程式館235a、235b來滿足該等呼叫。再者,由於僅需重新編譯由測試機器105製造商提供的程式碼,而不重新編譯使用者撰寫的程式碼,所以受更動的經編譯程式碼即限於製造商所提供者,因而得能減少對於任何問題之根源所生之疑惑,並降低使用者更動程式碼時引生額外問題的可能性。
本文中已詳細描述的該等代表性實施例,純粹以舉例方式揭露而無限制之意。熟知此技藝者將可了解,就所述的實施例之型態與細節,可作出多種變動,且由此可衍生出落在後附專利申請範圍所訂範疇內的多個等效實施例。
115...設備
145...輸出設備
120...CPU
150...受測裝置(DUT)
125...記憶體
135...測試程式
130...輸入設備
205...程式來源碼部件
135...測試程式
210...測試器函數命令
215...編譯器
251...第一存根模組
220...程式目的碼模組
252...第二存根模組
225...鏈結器
255...位址表
250...存根模組程式館
260...作業系統
135...測試程式
265...網路路由器
235a...第一程式館
300...來源碼常式
235b...第二程式館
310...參數
240a...第一經編譯常式
400...方法
240b...第二經編譯常式
403~460...步驟方塊
250...存根模組程式館
第1圖是各種代表性實施例中所描述之一種測試系統的方塊圖。
第2A圖係用以如各種代表性實施例中所描述地把程式來源碼部件轉換為可執行軟體程式的部件與程序的方塊圖。
第2B圖係如各種代表性實施例中所描述地由軟體程式用於從二個程式館中之一呼叫常式的部件與程序之方塊圖。
第3圖係如各種代表性實施例中所描述地供第一與第二經編譯常式用的一來源碼常式表列。
第4圖係為如各種代表性實施例中所描述地用以利用可任擇程式館來鏈結且執行一程式的一種方法之流程圖。
135...測試程式
235a...第一程式館
235b...第二程式館
240a...第一經編譯常式
240b...第二經編譯常式
250...存根模組程式館
251...第一存根模組
252...第二存根模組
255...位址表
260...作業系統
265...網路路由器
Claims (14)
- 一種具有軟體程式儲存於其中之電腦可讀取媒體,當該軟體程式由一電腦執行時使得該電腦去控制一測試機器,該軟體程式包含:一函數呼叫,其中,當該程式於一第一模式鏈結時:來自一第一程式館的一第一經編譯常式耦合至該函數呼叫,否則,當該程式於一第二模式鏈結時:來自一第二程式館的一第二經編譯常式便耦合至該函數呼叫,其中該第一經編譯常式係使一來源碼常式中的一參數設定為一第一數值,而從該來源碼常式編譯而成;其中該第二經編譯常式係使該來源碼常式中的該參數設定為一第二數值,而從該來源碼常式編譯而成,且其中該第一經編譯常式具有與該第二經編譯常式相同的功能,並增添有額外功能。
- 如申請專利範圍第1項之電腦可讀取媒體,其中該第一經編譯常式的該額外功能係組構為能提供用以對該程式進行除錯動作的資訊。
- 如申請專利範圍第1項之電腦可讀取媒體,其中該程式係組構為能在一測試機器上執行。
- 如申請專利範圍第1項之電腦可讀取媒體,其中該程式係組構為能用以測試一部件。
- 如申請專利範圍第1項之電腦可讀取媒體,其中該程式 係組構成能在一測試機器上執行,且係組構成能測試一部件。
- 如申請專利範圍第1項之電腦可讀取媒體,其中當該程式於該第一模式中鏈結且當該程式的可執行形式受到執行時:針對該第一經編譯常式的一呼叫包含:針對一存根模組程式館中之一第一存根模組的一呼叫,其中該第一存根模組在一位址表中詢查該第一經編譯常式的位址,並且後續地使針對該第一經編譯常式的該呼叫重新導向到該位址;否則,當該程式於該第二模式中鏈結且當該程式的可執行形式受到執行時:針對該第二經編譯常式的一呼叫包含:針對該存根模組程式館中之一第二存根模組的一呼叫,其中該第二存根模組在該位址表中詢查該第二經編譯常式的位址,並且後續地使針對該第二經編譯常式的該呼叫重新導向到該位址。
- 一種用以產生軟體程式的方法,其包含下列步驟:指定用以鏈結該程式的一模式,其中用於該程式的來源碼包含一函數呼叫;以及當在指定該模式而當一第一模式被指定時:藉著使供來自一第一程式館之一第一經編譯常式用的目的碼耦合於該程式之一先前經編譯形式中的該函數呼叫,來產生該程式的一可執行形式, 否則,當在指定該模式而當一第二模式被指定時:便藉著使供來自一第二程式館之一第二經編譯常式用的目的碼耦合於該程式之該先前經編譯形式中的該函數呼叫,來產生該程式的該可執行形式,其中該第一經編譯常式具有與該第二經編譯常式相同的功能並增添有額外功能。
- 如申請專利範圍第7項之方法,其中該第一經編譯常式的該額外功能係組構為能提供用以對該程式進行除錯動作的資訊。
- 如申請專利範圍第7項之方法,其中該程式係組構成能在一測試機器上執行。
- 如申請專利範圍第7項之方法,其中該程式係組構成能測試一部件。
- 如申請專利範圍第7項之方法,其中該程式係組構成能在一測試機器上執行且能測試一部件。
- 如申請專利範圍第7項之方法,其另包含下列步驟:把該程式的該可執行形式載入到一電腦中;以及執行該程式的該可執行形式。
- 如申請專利範圍第12項之方法,其另包含下列步驟:在執行該程式的該步驟之前,使一部件連接至一測試機器,其中該測試機器包含該電腦。
- 如申請專利範圍第12項之方法,其中當該程式於該第一模式中鏈結時,執行該程式之該可執行形式的步驟包含: 呼叫該第一經編譯常式,其中呼叫該第一經編譯常式的步驟包含:呼叫一存根模組程式館中的一第一存根模組,其中呼叫該第一存根模組的步驟包含:在一位址表中詢查該第一經編譯常式的位址,以及呼叫該第一程式館中的該第一經編譯常式;否則,當該程式於該第二模式中鏈結時,執行該程式之該可執行形式的步驟包含:呼叫該第二經編譯常式,其中呼叫該第二經編譯常式的步驟包含:呼叫該存根模組程式館中的一第二存根模組,其中呼叫該第二存根模組的步驟包含:在該位址表中詢查該第二經編譯常式的位址,以及呼叫該第二程式館中的該第二經編譯常式。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/287,819 US20070169026A1 (en) | 2005-11-28 | 2005-11-28 | Software program with alternative function libraries |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200720999A TW200720999A (en) | 2007-06-01 |
TWI402750B true TWI402750B (zh) | 2013-07-21 |
Family
ID=38037897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW095124652A TWI402750B (zh) | 2005-11-28 | 2006-07-06 | 具有軟體程式儲存於其中之電腦可讀取媒體及用以產生軟體程式的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070169026A1 (zh) |
JP (1) | JP2007149089A (zh) |
KR (1) | KR20070055988A (zh) |
CN (1) | CN1975666A (zh) |
DE (1) | DE102006040794A1 (zh) |
TW (1) | TWI402750B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601452B2 (en) * | 2007-03-02 | 2013-12-03 | Oracle International Corporation | Compiler for JAVA and .NET |
US8464230B2 (en) | 2010-04-13 | 2013-06-11 | Intel Corporation | Methods and systems to implement non-ABI conforming features across unseen interfaces |
US9952840B2 (en) | 2012-05-15 | 2018-04-24 | International Business Machines Corporation | Conditional sequential selection of external reference resolutions |
US9785542B2 (en) * | 2013-04-16 | 2017-10-10 | Advantest Corporation | Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing |
CN105677297B (zh) * | 2014-11-18 | 2018-05-04 | 龙芯中科技术有限公司 | 套锁实现方法及装置 |
US9626276B2 (en) * | 2014-11-26 | 2017-04-18 | Sap Se | Generating a test version of a method to be called during runtime and fulfilling a collaboration contract |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734904A (en) * | 1994-11-14 | 1998-03-31 | Microsoft Corporation | Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type |
US6163858A (en) * | 1998-06-08 | 2000-12-19 | Oracle Corporation | Diagnostic methodology for debugging integrated software |
US20030046673A1 (en) * | 2001-06-29 | 2003-03-06 | Microsoft Corporation | Linktime recognition of alternative implementations of programmed functionality |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5615400A (en) * | 1993-06-30 | 1997-03-25 | Apple Computer, Inc. | System for object oriented dynamic linking based upon a catalog of registered function set or class identifiers |
US6202205B1 (en) * | 1998-07-21 | 2001-03-13 | Hewlett-Packard Company | System and method for profile-based, on-the-fly optimization of library code |
US6154878A (en) * | 1998-07-21 | 2000-11-28 | Hewlett-Packard Company | System and method for on-line replacement of software |
US6442752B1 (en) * | 1999-08-26 | 2002-08-27 | Unisys Corporation | Method, apparatus, and computer program product for replacing a dynamic link library (dll) of a first computing environment with a dll of a second computing environment that can be invoked from the first computing environment in a transparent manner |
US7647636B2 (en) * | 2005-08-24 | 2010-01-12 | Microsoft Corporation | Generic RootKit detector |
-
2005
- 2005-11-28 US US11/287,819 patent/US20070169026A1/en not_active Abandoned
-
2006
- 2006-07-06 TW TW095124652A patent/TWI402750B/zh active
- 2006-08-31 DE DE102006040794A patent/DE102006040794A1/de not_active Ceased
- 2006-11-21 JP JP2006314430A patent/JP2007149089A/ja not_active Withdrawn
- 2006-11-21 CN CNA2006101457787A patent/CN1975666A/zh active Pending
- 2006-11-28 KR KR1020060118491A patent/KR20070055988A/ko not_active Application Discontinuation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734904A (en) * | 1994-11-14 | 1998-03-31 | Microsoft Corporation | Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type |
US6163858A (en) * | 1998-06-08 | 2000-12-19 | Oracle Corporation | Diagnostic methodology for debugging integrated software |
US20030046673A1 (en) * | 2001-06-29 | 2003-03-06 | Microsoft Corporation | Linktime recognition of alternative implementations of programmed functionality |
Also Published As
Publication number | Publication date |
---|---|
US20070169026A1 (en) | 2007-07-19 |
DE102006040794A1 (de) | 2007-05-31 |
JP2007149089A (ja) | 2007-06-14 |
TW200720999A (en) | 2007-06-01 |
KR20070055988A (ko) | 2007-05-31 |
CN1975666A (zh) | 2007-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6430741B1 (en) | System and method for data coverage analysis of a computer program | |
US8990779B2 (en) | Response time measurement system and method | |
US9183114B2 (en) | Error detection on the stack | |
CN101739339B (zh) | 一种基于程序动态依赖关系的软件故障定位方法 | |
US7681180B2 (en) | Parameterized test driven development | |
US8060869B1 (en) | Method and system for detecting memory problems in user programs | |
US8095917B2 (en) | Debugger for virtual intermediate language operations | |
US20030046029A1 (en) | Method for merging white box and black box testing | |
TWI402750B (zh) | 具有軟體程式儲存於其中之電腦可讀取媒體及用以產生軟體程式的方法 | |
Theodoridis et al. | Finding missed optimizations through the lens of dead code elimination | |
US7908596B2 (en) | Automatic inspection of compiled code | |
Van Der Kouwe et al. | HSFI: Accurate fault injection scalable to large code bases | |
Cong et al. | Automatic concolic test generation with virtual prototypes for post-silicon validation | |
US20080127118A1 (en) | Method and system for dynamic patching of software | |
CN113742215A (zh) | 一种自动配置和调用测试工具进行测试分析的方法及系统 | |
Jeong et al. | Fifa: A kernel-level fault injection framework for arm-based embedded linux system | |
Di Federico et al. | rev. ng: A multi-architecture framework for reverse engineering and vulnerability discovery | |
Christakis et al. | A general framework for dynamic stub injection | |
JP5269450B2 (ja) | 試験システム及びバックアノテーション方法 | |
US20150007139A1 (en) | Optimizing error parsing in an integrated development environment | |
US7058864B1 (en) | Test for processor memory cache | |
Seifert et al. | Debugging triple graph grammar-based model transformations | |
Osinski et al. | PyFI-fault injection platform for real hardware | |
JP3745968B2 (ja) | 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体 | |
Saha et al. | TraFic—A Systematic Low Overhead Code Coverage Tool for Embedded Systems |