TW201743149A - 模擬裝置以及模擬程式產品 - Google Patents

模擬裝置以及模擬程式產品 Download PDF

Info

Publication number
TW201743149A
TW201743149A TW105123705A TW105123705A TW201743149A TW 201743149 A TW201743149 A TW 201743149A TW 105123705 A TW105123705 A TW 105123705A TW 105123705 A TW105123705 A TW 105123705A TW 201743149 A TW201743149 A TW 201743149A
Authority
TW
Taiwan
Prior art keywords
execution
output
input
simulation
simulator
Prior art date
Application number
TW105123705A
Other languages
English (en)
Inventor
Kanako Gyota
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of TW201743149A publication Critical patent/TW201743149A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

執行模擬部(121)係根據屬於包含有複數個執行指令的程式且為藉由具有輸出入裝置的目標系統所執行之程式的目標程式,作為執行模擬器而發揮功能。執行模擬器係模擬目標系統所進行之目標程式的執行。輸出入模擬部(131)係於複數個執行指令中之輸出入指令的執行被模擬時,作為輸出入模擬器而發揮功能。輸出入模擬器係模擬輸出入裝置的動作。執行模擬部係根據執行日誌檔案,依與目標程式中之複數個執行指令之執行順序的相反順序,而模擬目標程式中所含之執行指令的執行。

Description

模擬裝置以及模擬程式產品
本發明係關於一種進行模擬的技術。
有一種將指令集模擬與IO模擬予以聯結,以模擬目標系統(target system)之動作的技術。IO係為Input(輸入)及Output(輸出)的簡稱。
指令集模擬係為藉由ISS(Instruction Set Simulator,指令集模擬器)而模擬指令的執行與程式計數器(program counter)之操作的技術。
IO模擬係為模擬鍵盤(keyboard)、顯示器(display)及通訊裝置等之輸出入裝置之動作的技術。
此等模擬以相同的執行緒(thread)執行時,模擬會在相同的執行緒內切換。此等模擬以不同的執行緒執行時,藉由執行緒呼叫使執行緒彼此協同處理,而執行此等模擬。
當在執行模擬期間產生了錯誤時,為了要特別指定錯誤(error)要因,必須再度執行複數次模擬,以確認變數的值及系統的動作。因此,將會在錯誤要因的特別指定上耗費時間。
尤其是模擬開始後至錯誤產生為止的時間愈長,再度執行模擬所需要的時間及確認作業所需要的時間就愈增長。
再者,為了限縮錯誤要因,需要許多的經驗及直覺。因此,初學者不容易特別指定錯誤要因。
由於錯誤要因存在於錯誤產生時之指令附近的情形較多,因此可想而知只要能夠進行依相反順序執行指令的模擬反向執行,就易於特別指定錯誤要因。
藉由模擬反向執行,就不再需要從最初重新執行模擬,因此可削減特別指定錯誤要因時執行模擬所需要的時間。再者,不再需要憑藉經驗及直覺來限縮錯誤要因。
專利文獻1及專利文獻2係揭示一種關於指令集模擬之反向執行的技術。
然而,在此等專利文獻中,並未揭示及暗示將指令集模擬與IO模擬予以協同處理時的模擬反向執行。
因此,即使使用此等專利文獻所記載的技術,也無法實現將指令集模擬與IO模擬予以協同處理時的模擬反向執行。
[先前技術文獻] [專利文獻]
專利文獻1:日本特開平4-352245號公報
專利文獻2:日本特許第2533489號公報
本發明之目的為將指令集模擬與IO模擬予以協同處理而能進行目標系統的模擬。
本發明之模擬裝置係包括:執行模擬部,係作為執行模擬器而發揮功能者,該執行模擬器係根據屬於包含有複數個執行指令的程式且為藉由具有輸出入裝置的目標系統所執行之程式的目標程式,來模擬前述目標系統所進行之前述目標程式的執行;及輸出入模擬部,係作為輸出入模擬器而發揮功能者,該輸出入模擬器係於前述複數個執行指令中之輸出入指令的執行被模擬時,模擬前述輸出入裝置的動作。
依據本發明,即可將相當於指令集模擬的執行模擬器與相當於IO模擬的輸出入模擬器予以協同處理而進行目標系統的模擬。
1~8‧‧‧指令
100‧‧‧模擬裝置
110‧‧‧控制部
121‧‧‧執行模擬部
122‧‧‧執行日誌產生部
123‧‧‧資源日誌產生部
131‧‧‧輸出入模擬部
132‧‧‧輸出入日誌產生部
141‧‧‧執行復原部
142‧‧‧資源復原部
143‧‧‧輸出入復原部
191‧‧‧記憶部
192‧‧‧接受部
193‧‧‧顯示部
200‧‧‧目標程式
210‧‧‧執行模擬器
211‧‧‧資源模型
220‧‧‧執行日誌檔案
221‧‧‧計數器日誌表單
222‧‧‧狀態日誌表單
223‧‧‧最終編號資料
224‧‧‧最終狀態表單
230‧‧‧資源日誌檔案
231‧‧‧狀態日誌表單
232‧‧‧最終狀態表單
240‧‧‧輸出入模擬器
250‧‧‧輸出入日誌檔案
251‧‧‧輸出入日誌表單
252‧‧‧狀態日誌表單
253‧‧‧最終狀態表單
901‧‧‧處理器
902‧‧‧記憶體
903‧‧‧輔助記憶裝置
904‧‧‧輸入裝置
905‧‧‧顯示器
990‧‧‧處理電路
第1圖係實施形態1之模擬裝置100的構成圖。
第2圖係實施形態1之記憶部191的構成圖。
第3圖係實施形態1之執行日誌檔案(log file)220的構成圖。
第4圖係實施形態1之資源日誌檔案(resource log file)230的構成圖。
第5圖係實施形態1之輸出入日誌檔案250的構成圖。
第6圖係實施形態1之模擬方法的流程圖。
第7圖係實施形態1之執行模擬處理[依序執行]的流程圖。
第8圖係實施形態1之執行日誌產生處理的流程圖。
第9圖係實施形態1之輸出入模擬處理[依序執行]的流程圖。
第10圖係實施形態1之輸出入日誌產生處理的流程圖。
第11圖係實施形態1之資源日誌產生處理的流程圖。
第12圖係實施形態1之反向執行方法(S300)的流程圖。
第13圖係實施形態1之反向執行方法(S300)的流程圖。
第14圖係實施形態1之輸出入復原處理的流程圖。
第15圖係為顯示實施形態1之依序執行方法(S200)之具體例的圖。
第16圖係為顯示實施形態1之反向執行方法(S300)之具體例的圖。
第17圖係為顯示實施形態1之反向執行方法(S300)之具體例的圖。
第18圖係實施形態1之模擬裝置100的硬體構成圖。
在實施形態及圖式中,對於相同的要素或彼此相等的要素係賦予相同符號。附有相同符號之要素的說明係予以適當省略或簡化。
實施形態1
茲根據第1圖至第17圖來說明模擬目標系統所進行之目標程式之執行的模擬裝置100。
目標系統係為成為模擬之對象的系統,且具有輸出入裝置。輸出入裝置係為鍵盤或滑鼠(mouse)等之輸入裝置、及顯示器或通訊裝置等之輸出裝置的統稱。
目標程式係為包含有複數個指令的程式,且為藉由目標系統所執行的程式。
在實施形態1中,係將目標程式中所含的指令稱為執行指令。此外,將伴隨輸出入的執行指令稱為輸出入指令。
***構成的說明***
茲根據第1圖來說明模擬裝置100的構成。
模擬裝置100係為包括處理器(processor)901、記憶體(memory)902、輔助記憶裝置903、輸入裝置904、及顯示器905之類之硬體的電腦。此等硬體係透過訊號線而彼此連接。
處理器901係為進行處理的IC(Integrated Circuit,積體電路),用以控制其他硬體。具體而言,處理器901係為CPU、DSP或GPU。CPU係為Central Processing Unit(中央處理單元)的簡稱,DSP係為Digital Signal Processor(數位信號處理器)的簡稱,GPU係為Graphics Processing Unit(圖形處理單元)的簡稱。
記憶體902係為揮發性的記憶裝置。記憶體902亦被稱為主記憶裝置或主記憶體(main memory)。具體而言,記憶體902係為RAM(Random Access Memory,隨機存取記憶體)。
輔助記憶裝置903係為非揮發性的記憶裝置。具體而言,輔助記憶裝置903係為ROM、HDD或快閃記憶體(flash memory)。ROM係為Read Only Memory(唯讀記憶體)的簡稱,HDD係為Hard Disk Driver(硬碟驅動器)的簡稱。
茲將經過統整處理器901、記憶體902、及輔助記憶裝置903後的硬體稱為「處理電路構成(processing circuitry)」。
輸入裝置904係為接受輸入的裝置。具體而言,輸入裝置904係為鍵盤、滑鼠、數字鍵(ten key)或觸控面板(touch panel)。
顯示器905係為顯示圖像等的顯示裝置。具體而言,顯示器905係為液晶顯示器。顯示器905亦稱為監視器(monitor)。
模擬裝置100係包括控制部110、執行模擬部121、執行日誌產生部122、資源日誌產生部123、輸出入模擬部131、輸出入日誌產生部132、執行復原部141、資源復原部142、及輸出入復原部143之類的「部」作為功能構成的要素。「部」的功能係藉由軟體(software)來實現。關於「部」的功能將於後陳述。
在輔助記憶裝置903中係記憶有實現「部」之功能的程式。實現「部」之功能的程式,係被載入於記憶體902,且藉由處理器901來執行。
再者,在輔助記憶裝置903中係記憶有OS(Operating System,操作系統)。OS的至少一部分係被載入於記憶體902,且藉由處理器901來執行。
換言之,處理器901係一面執行OS,一面執行實現「部」之功能的程式。
執行實現「部」之功能的程式所獲得的資料,係被記憶於記憶體902、輔助記憶裝置903、處理器901內的暫存器(register)或處理器901內的快取記憶體(cache memory)之類的記憶裝置。
記憶體902係作為供記憶在模擬裝置100所使 用、產生、輸入、輸出、傳送或接收之資料的記憶部191而發揮功能。惟其他記憶裝置作為記憶部191發揮功能亦可。
輸入裝置904係作為接受輸入的接受部192而發揮功能。
顯示器905係作為顯示圖像等的顯示部193而發揮功能。
模擬裝置100亦可包括替代處理器901的複數個處理器。複數個處理器係分擔實現「部」之功能之程式的執行。
實現「部」之功能的程式,係可以可由電腦讀取之方式記憶於磁碟、光碟或快閃記憶體等之非揮發性的記憶媒體。非揮發性的記憶媒體係為非暫時性之有形的媒體。
「部」亦可改稱為「處理」或「步驟」。「部」的功能亦可藉由軟體來實現。
電腦程式產品(亦簡稱為程式產品)不限定於外觀形式之物,而為載入有可由電腦讀取的程式者。
茲根據第2圖來說明記憶部191的構成。
在記憶部191中,係供記憶目標程式200、執行模擬器210、資源模型(resource model)211、執行日誌檔案220、資源日誌檔案230、輸出入模擬器240及輸出入日誌檔案250等。
目標程式200係為包含有複數個執行指令的程式且為藉由目標系統所執行的程式。
執行模擬器210係為模擬由目標系統所進行之目標程式200之執行的軟體。在執行模擬器210中,係包含執行模擬器210的狀態資訊。具體的狀態資訊,係為在執行模擬器210所使用的變數。具體而言,執行模擬器210係為被稱作指令集模擬器或CPU指令模擬器者。
資源模型211係為被用來作為模仿目標系統之資源之虛擬之資源的資料。在資源模型211中,係包含顯示虛擬的資源之狀態的狀態資訊。具體而言,虛擬的資源係為虛擬暫存器(registor)及虛擬記憶體。虛擬暫存器係為模仿備置於目標系統之暫存器的虛擬的暫存器。虛擬記憶體係為模仿備置於目標系統之記憶體的虛擬的記憶體。
執行日誌檔案220係為包含有執行指令之執行被模擬之前之執行模擬器210之狀態資訊的檔案。
資源日誌檔案230係為包含有執行指令之執行被模擬之前之資源模型211之狀態資訊的檔案。
輸出入模擬器240係為模擬目標系統之輸出入裝置之動作的軟體。在輸出入模擬器240中,係包含輸出入模擬器240的狀態資訊。具體的狀態資訊,係為在輸出入模擬器240所使用的變數。輸出入模擬器240係依成為模擬之對象的每一輸出入裝置存在。
輸出入日誌檔案250係為包含有輸出入指令之執行被模擬之前之輸出入模擬器240之狀態資訊的檔案。輸出入日誌檔案250係依每一輸出入模擬器240存在。
茲根據第3圖來說明執行日誌檔案220的構成。
執行日誌檔案220係包含計數器日誌表單221(counter log table)221、狀態日誌表單222、最終編號資料223、及最終狀態表單224。
計數器日誌表單221係為顯示目標程式200中之執行指令之執行順序的表單。
在計數器日誌表單221中,「執行編號」與「程式計數器」係彼此建立對應關係。茲將「執行編號」與「程式計數器」的組合稱為計數器日誌記錄(counter log record)。
「執行編號」係為顯示執行編號的欄位。執行編號係為顯示目標程式200中之執行指令之執行順序的編號。
「程式計數器」係為顯示程式計數器的欄位。程式計數器係為識別執行指令的資訊。具體而言,程式計數器係為載入有目標程式200的記憶區域之中執行指令所在之部分的位址(address)。在實施形態1的說明中,程式計數器的用語,係指目標程式200用的程式計數器。
狀態日誌表單222係為顯示執行指令被執行之前之執行模擬器210之狀態資訊、與執行指令被執行之後之執行模擬器210之狀態資訊的表單。
在狀態日誌表單222中,「執行編號」、「變數」、「更新前」、與「更新後」係彼此建立對應關係。茲將「執行編號」、「變數」、「更新前」、與「更新後」的組合稱為狀態日誌記錄。
「執行編號」係為顯示執行編號的欄位。執行編號係為顯示目標程式200中之執行指令之執行順序的編號。
「變數」係為顯示在執行模擬器210所使用之變數之變數名稱的欄位。變數名稱係為識別變數的識別符。
「更新前」係為顯示更新前之變數之值的欄位。所謂更新前係指執行指令被執行之前。
「更新後」係為顯示更新後之變數之值的欄位。所謂更新 後係指執行指令被執行之後。
最終編號資料223係為顯示最終編號的資料。最終編號係為顯示最終之執行指令之執行順序的編號。最終的執行指令係為在目標程式200中最後被執行的執行指令。
最終狀態表單224係為顯示最終之執行指令被執行之後之執行模擬器210之狀態資訊整體的表單。
在最終狀態表單224中,「變數」與「值」係彼此建立對應關係。茲將「變數」與「值」的組合稱為最終狀態記錄。
「變數」係為顯示在執行模擬器210所使用之變數之變數名稱的欄位。
「值」係為顯示在執行模擬器210所使用之變數之變數值的欄位。變數值係為被設定於變數的值。
茲根據第4圖來說明資源日誌檔案230的構成。
資源日誌檔案230係包含狀態日誌表單231及最終狀態表單232。
狀態日誌表單231係為顯示執行指令被執行之前之資源模型211之狀態資訊、及執行指令被執行之後之資源模型211之狀態資訊的表單。
在狀態日誌表單231中,「執行編號」、「位址」、「更新前」、與「更新後」係彼此建立對應關係。茲將「執行編號」、「位址」、「更新前」、與「更新後」的組合稱為狀態日誌記錄。
「執行編號」係為顯示執行編號的欄位。
「位址」係為記憶有資源模型211之狀態資訊之記憶區域 中之更新部分的位址。更新部分係為被更新後的部分。位址係為識別記憶區域內之位置的識別符。
「更新前」係為顯示更新前之更新部分之值的欄位。
「更新後」係為顯示更新後之更新部分之值的欄位。
最終狀態表單232係為顯示最終之執行指令被執行之後之資源模型211之狀態資訊整體的表單。
在最終狀態表單232中,「位址」與「值」係建立對應關係。茲將「位址」與「值」的組合稱為最終狀態記錄。
「位址」係為顯示記憶有資源模型211之狀態資訊之記憶區域中之位址的欄位。
「值」係為顯示所設定之值的欄位。
茲根據第5圖來說明輸出入日誌檔案250的構成。
輸出入日誌檔案250係包含輸出入日誌表單251、狀態日誌表單252、及最終狀態表單253。
輸出入日誌表單251係為顯示輸出入指令被執行之前之輸出入模擬器240之狀態資訊、及輸出入指令被執行之後之輸出入模擬器240之狀態資訊的表單。
在輸出入日誌表單251中,「輸出入編號」、「開始編號」、與「結束編號」係彼此建立對應關係。茲將「輸出入編號」、「開始編號」、與「結束編號」的組合稱為輸出入日誌記錄。
「輸出入編號」係為顯示輸出入編號的欄位。輸出入編號係為顯示輸出入指令之執行順序的編號。
「開始編號」係為屬於輸出入指令之執行指令的執行編號。
「結束編號」係為在輸出入指令結束時所被執行後之執行指令的執行編號。
狀態日誌表單252係為顯示輸出入指令被執行之前之輸出入模擬器240之狀態資訊、及輸出入指令被執行之後之輸出入模擬器240之狀態資訊的表單。
在狀態日誌表單252中,「輸出入編號」、「變數」、「更新前」、與「更新後」係彼此建立對應關係。茲將「輸出入編號」、「變數」、「更新前」、與「更新後」的組合稱為狀態日誌記錄。
「輸出入編號」係為顯示輸出入編號的欄位。
「變數」係為顯示在輸出入模擬器240所使用之變數之變數名稱的欄位。
「更新前」係為顯示更新前之變數之值的欄位。
「更新後」係為顯示更新後之變數之值的欄位。
最終狀態表單253係為顯示最終之輸出入指令被執行之後之輸出入模擬器240之狀態資訊整體的表單。
在最終狀態表單253中,「變數」與「值」係彼此建立對應關係。茲將「變數」與「值」的組合稱為最終狀態記錄。
「變數」係為顯示在輸出入模擬器240所使用之變數之變數名稱的欄位。
「值」係為顯示在輸出入模擬器240所使用之變數之變數值的欄位。
***動作的說明***
模擬裝置100的動作係相當於模擬方法。此外,模擬方法 的程序係相當於模擬程式的程序。
茲根據第6圖來說明模擬方法。
在步驟S101中,控制部110係判定要以依序執行與反向執行的哪一個執行方法來執行模擬。
依序執行係為依目標程式200中所含之複數個執行指令的執行順序,來模擬目標程式200中所含之執行指令之執行的執行方法。
反向執行係為依與目標程式200中所含之複數個執行指令之執行順序相反的順序,來模擬目標程式200中所含之執行指令之執行的執行方法。
具體而言,執行方法係以下列方式判定。
首先,使用者係操作輸入裝置904,以依序執行或反向執行作為執行方法而輸入於模擬裝置100。惟反向執行無法在依序執行進行之前指定,而在依序執行進行之後則可進行指定。
接著,接受部192係接受所輸入的執行方法。
再者,控制部110係判定所接受的執行方法是依序執行與反向執行的哪一者。
執行方法被判定為是依序執行時,處理前進至步驟S200。
執行方法被叛定為是反向執行時,處理前進至步驟S300。
步驟S200係為依序執行方法。
在步驟S200中,控制部110係啟動執行模擬部121、執行日誌產生部122、資源日誌產生部123、輸出入模擬部131、及輸出入日誌產生部132。所啟動的要素係動作如下。
執行模擬部121係根據目標程式200,作為執行模擬器210而發揮功能。
具體而言,執行模擬部121係依目標程式200中之複數個執行指令的執行順序,模擬目標程式200中所含之執行指令的執行。
關於執行模擬部121之動作的詳細內容將於後陳述。
執行日誌產生部122係產生執行日誌檔案220。
具體而言,執行日誌產生部122係每當目標程式200中所含之執行指令的執行被模擬時,就將執行指令之執行被模擬之前之執行模擬器210的狀態資訊等登錄於執行日誌檔案220。
關於執行日誌產生部122之動作的詳細內容將於後陳述。
資源日誌產生部123係產生資源日誌檔案230。
具體而言,資源日誌產生部123係每當目標程式200中所含之執行指令的執行被模擬時,就將執行指令之執行被模擬之前之資源模型211的狀態資訊等登錄於資源日誌檔案230。
關於資源日誌產生部123之動作的詳細內容將於後陳述。
輸出入模擬部131係於輸出入指令的執行被模擬時,作為輸出入模擬器240而發揮功能。
關於輸出入模擬部131之動作的詳細內容將於後陳述。
輸出入日誌產生部132係產生輸出入日誌檔案250。
具體而言,輸出入日誌產生部132係於輸出入指令的執行被模擬時,將輸出入指令之執行被模擬之前之輸出入模擬器240的狀態資訊登錄於輸出入日誌檔案250。
關於輸出入日誌產生部132之動作的詳細內容將於後陳述。
步驟S300係反向執行方法。
在步驟S300中,控制部110係啟動執行模擬部121、輸出入模擬部131、執行復原部141、資源復原部142、及輸出入復原部143。所啟動的要素係動作如下。
執行模擬部121係根據目標程式200,作為執行模擬器210而發揮功能。
具體而言,執行模擬部121係根據執行日誌檔案220,依與目標程式200中之複數個執行指令的執行順序的相反順序,模擬目標程式200中所含之執行指令的執行。
執行指令的執行係以下列方式模擬。
首先,執行復原部141係使用執行日誌檔案220,而復原執行指令之執行被模擬之前之執行模擬器210的狀態資訊。
此外,資源復原部142係使用資源日誌檔案230,而復原執行指令之執行被模擬之前之資源模型211的狀態資訊。
再者,執行模擬部121係使用執行模擬器210之被復原後的狀態資訊及資源模型211之被復原後的狀態資訊,來模擬執行指令的執行。
關於執行復原部141、資源復原部142、及執行模擬部121之各者之動作的詳細內容將於後陳述。
輸出入模擬部131係於輸出入指令的執行被模擬時,作為輸出入模擬器240而發揮功能。再者,輸出入模擬部131係模擬輸出入裝置的動作。
具體而言,輸出入裝置的動作係以下列方式模擬。
首先,輸出入復原部143係使用輸出入模擬器240而復原輸出入指令的執行被模擬之前之輸出入模擬器240的狀態資訊。
再者,輸出入模擬部131係使用輸出入模擬器240之被復原後的狀態資訊來模擬輸出入裝置的動作。
關於輸出入復原部143及輸出入模擬部131之各者之動作的詳細內容將於後陳述。
在步驟S102中,控制部110係判定是否要變更執行方法。執行方法的變更,係指在依序執行的模擬進行之後進行反向執行的模擬、以及在反向執行的模擬進行之後進行依序執行的模擬。
具體而言,是否要變更執行方法係以下列方式判定。
希望執行方法之變更的使用者,係操作輸入裝置904而將變更指示輸入於模擬裝置100。不希望執行方法之變更的使用者,係操作輸入裝置904而將結束指示輸入於模擬裝置100。
接受部192係接受所輸入的變更指示或結束指示。
接受到變更指示時,控制部110係判定為需要執行方法的變更。
接受到結束指示時,控制部110係判定為不需要執行方法的變更。
當判定為需要執行方法的變更時,處理前進至步驟101。若為依序執行的模擬之後,則在步驟S101中,控制 部110係判定為執行方法為反向執行。若為反向執行的模擬之後,則在步驟S101中,控制部110係判定為執行方法為依序執行。
當判定為不需要執行方法的變更時,處理結束。
茲根據第7圖來說明執行模擬處理[依序執行]。
執行模擬處理[依序執行]係在依序執行方法(S200)中執行。
在執行模擬處理[依序執行]中,執行模擬部121係作為執行模擬器210而發揮功能。
在步驟S201中,執行模擬器210係將程式計數器初始化。
具體而言,執行模擬器210係將目標程式200之起始的位址設定於程式計數器。
在步驟S202中,執行模擬器210係從目標程式200讀取對應於程式計數器的執行指令。
所謂對應於程式計數器的執行指令,係指被寫入於由程式計數器所示之位址所識別之記憶區域中的執行指令。
在步驟S203中,執行模擬器210係模擬所讀取之執行指令的執行。再者,顯示部193係顯示模擬結果。
藉由模擬執行指令的執行,依據執行指令而更新資源模型211,且依據模擬結果而更新執行模擬器210的狀態資訊。
輸出入指令的執行被模擬時,執行模擬器210係將要求資訊寫入於資源模型211之中的輸出入要求區域。輸出 入區域係為被使用於輸出入之要求的記憶區域。要求資訊係為顯示輸出入之內容的資訊。
在步驟S204中,執行模擬器210係判定在步驟S202中所讀取的執行指令是否為最終的執行指令。
在步驟S202中所讀取的執行指令為最終的執行指令時,執行模擬部121係將模擬結束通知執行日誌產生部122。然後,處理結束。
在步驟S202中所讀取的執行指令非為最終的執行指令時,處理前進至步驟S205。
在步驟S205中,執行模擬器210係將程式計數器更新為下一個位址。
在步驟S205之後,處理前進至步驟S202。
茲根據第8圖來說明執行日誌產生處理。
執行日誌產生處理係在依序執行方法(S200)中執行。
步驟S211係在執行日誌產生部122的啟動時執行。
在步驟S211中,執行日誌產生部122係設定1於執行編號。
步驟S212係於程式計數器的初始化時(第7圖的S201)及更新時(第7圖的S205)執行。具體而言,執行日誌產生部122係監視程式計數器。再者,執行日誌產生部122係於程式計數器被更新時執行步驟S212。
在步驟S212中,執行日誌產生部122係更新計數器日誌表單221。
具體而言,執行日誌產生部122係產生計數器日誌記錄,且將所產生的計數器日誌記錄登錄於計數器日誌表單221。
步驟S213係於執行指令的執行被模擬時(第7圖的S203)執行。
在步驟S213中,執行日誌產生部122係判定執行模擬器210的狀態是否已有變化。
具體而言,執行日誌產生部122係監視執行模擬器210的狀態資訊,且檢測執行模擬器210之狀態資訊的更新。當檢測出執行模擬器210之狀態資訊的更新時,執行日誌產生部122係判定為執行模擬器210的狀態已有變化。
當判定為執行模擬器210的狀態已有變化時,處理前進至步驟S214。
當判定為執行模擬器210的狀態未有變化時,處理前進至步驟S215。
在步驟S214中,執行日誌產生部122係更新狀態日誌表單222。
具體而言,執行日誌產生部122係產生狀態日誌記錄,且將所產生的狀態日誌記錄登錄於狀態日誌表單222。
在步驟S215中,執行日誌產生部122係判定目標程式200的模擬是否已結束。所謂目標程式200的模擬,係指模擬由目標系統所進行之目標程式200的執行。
具體而言,當被控制部110通知了模擬結束時,執行日誌產生部122係判定為目標程式200的模擬已結束。
當判定為目標程式200的模擬已結束時,處理前進至步驟 S217。
當判定為目標程式200的模擬未結束時,處理前進至步驟S216。
在步驟S216中,執行日誌產生部122係將執行編號的值增加1。
步驟S216之後,處理前進至步驟S212。
在步驟S217中,執行日誌產生部122係更新最終編號資料223與最終狀態表單224。
具體而言,執行日誌產生部122係將最終編號資料223中所示之最終編號的值變更為執行編號的值。再者,執行日誌產生部122係依執行模擬器210的每一狀態資訊產生最終狀態記錄,且將所產生的最終狀態記錄登錄於最終狀態表單224。
茲根據第9圖來說明輸出入模擬處理[依序執行]。
輸出入模擬處理[依序執行]係在依序執行方法(S200)中執行。
在輸出入模擬處理[依序執行]中,輸出入模擬部131係作為輸出入模擬器240而發揮功能。
步驟S221至步驟S223係於要求資訊被寫入於資源模型211之中的輸出入要求區域時(第7圖的S203)執行。
在步驟S221中,輸出入模擬器240係監視輸出入要求,且檢測要求資訊對於輸出入要求區域的寫入。
在步驟S222中,輸出入模擬器240係根據被寫入於輸出入要求區域的要求資訊,而模擬輸出入裝置的動作。再者,顯示部193係顯示模擬結果。
在步驟S223中,輸出入模擬器240係將回應資訊寫入於資源模型211之中的輸出入回應區域。輸出入回應區域係為被使用於輸出入之回應的記憶區域。回應資訊係為通知輸出入之結束的資訊。
茲根據第10圖來說明輸出入日誌產生處理。
輸出入日誌產生處理係在依序執行方法(S200)中執行。
步驟S231係在輸出入日誌產生部132的啟動時執行。
在步驟S231中,輸出入日誌產生部132係設定1於輸出入編號。
步驟S232係於寫入於資源模型211之中的輸出入要求區域時(第7圖的S203)執行。具體而言,輸出入日誌產生部132係監視輸出入要求。再者,輸出入日誌產生部132係於檢測出對於輸出入要求的寫入時執行步驟S232。
在步驟S232中,輸出入日誌產生部132係更新輸出入日誌表單251。
具體而言,輸出入日誌產生部132係產生設定有輸出入編號與開始編號的輸出入日誌記錄,且將所產生的輸出入日誌記錄登錄於輸出入日誌表單251。
步驟S233係於輸出入裝置的動作被模擬時(第9圖的S222)執行。
在步驟S233中,輸出入日誌產生部132係判定輸出入模擬器240的狀態資訊是否已有變化。
具體而言,輸出入日誌產生部132係監視輸出入模擬器 240的狀態資訊,且檢測輸出入模擬器240之狀態資訊的更新。當檢測出輸出入模擬器240之狀態資訊的更新時,輸出入日誌產生部132係判定為輸出入模擬器240的狀態已有變化。
當判定為輸出入模擬器240的狀態已有變化時,處理前進至步驟S234。
當判定為輸出入模擬器240的狀態未有變化時,處理前進至步驟S235。
在步驟S234中,輸出入日誌產生部132係更新狀態日誌表單252。
具體而言,輸出入日誌產生部132係產生狀態日誌記錄,且將所產生的狀態日誌記錄登錄於狀態日誌表單252。
在步驟S235中,輸出入日誌產生部132係更新輸出入日誌表單251。
具體而言,輸出入日誌產生部132係將結束編號設定於在步驟S232中已登錄於輸出入日誌表單251的輸出入日誌記錄。
在步驟S236中,輸出入日誌產生部132係判定目標程式200的模擬是否已結束。
具體而言,當被控制部110通知了模擬結束時,輸出入日誌產生部132係判定為目標程式200的模擬已結束。
當判定為目標程式200的模擬已結束時,處理前進至步驟S238。
當判定為目標程式200的模擬未結束時,處理前進至步驟S237。
在步驟S237中,輸出入日誌產生部132係將輸出 入編號的值增加1。
在步驟S237之後,處理前進至步驟S232。
在步驟S238中,輸出入日誌產生部132係更新最終狀態表單253。
具體而言,輸出入日誌產生部132係依輸出入模擬器240的每一狀態資訊產生最終狀態記錄,且將所產生的最終狀態記錄登錄於最終狀態表單253。
茲根據第11圖來說明資源日誌產生處理。
資源日誌產生處理係在依序執行方法(S200)中執行。
在步驟S241中,資源日誌產生部123係判定資源模型211的狀態是否已有變化。
具體而言,資源日誌產生部123係監視資源模型211的狀態資訊,且檢測資源模型211之狀態資訊的更新。當檢測出資源模型211之狀態資訊的更新時,資源日誌產生部123係判定為資源模型211的狀態已有變化。
當判定為資源模型211的狀態已有變化時,處理前進至步驟S242。
當判定為資源模型211的狀態未有變化時,處理前進至步驟S243。
在步驟S242中,資源日誌產生部123係更新狀態日誌表單231。
具體而言,資源日誌產生部123係產生狀態日誌記錄,且將所產生的狀態日誌記錄登錄於狀態日誌表單231。
在步驟S243中,資源日誌產生部123係判定目標 程式200的模擬是否已結束。
具體而言,當被控制部110通知了模擬結束時,資源日誌產生部123係判定為目標程式200的模擬已結束。
當判定為目標程式200的模擬已結束時,處理前進至步驟S244。
當判定為目標程式200的模擬未結束時,處理前進至步驟S241。
在步驟S244中,資源日誌產生部123係更新最終狀態表單232。
具體而言,資源日誌產生部123係依資源模型211的每一狀態資訊產生最終狀態記錄,且將所產生的最終狀態記錄登錄於最終狀態表單232。
茲根據第12圖及第13圖來說明反向執行方法(S300)的程序。
在反向執行方法(S300)中,將執行復原部141所進行的處理稱為執行復原處理、資源復原部142所進行的處理稱為資源復原處理、輸出入復原部143所進行的處理稱為輸出入復原處理。此外,將執行模擬部121所進行的處理稱為執行模擬處理[反向執行]、輸出入模擬部131所進行的處理稱為輸出入模擬處理[反向執行]。
在第12圖的步驟S301中,執行復原部141係根據執行日誌檔案220而復原執行模擬器210的最終狀態。
具體而言,執行復原部141係使用最終狀態表單224而更新執行模擬器210的狀態資訊。
再者,資源復原部142係根據資源日誌檔案230而復原資源模型211的最終狀態。
具體而言,資源復原部142係使用最終狀態表單232而更新資源模型211的狀態資訊。
在步驟S302中,控制部110係將最終編號的值設定於執行編號。
具體而言,執行復原部141係從最終編號資料223讀取最終編號,且將執行編號的值更新為最終編號的值。
在步驟S311中,執行復原部141係根據執行日誌檔案220而復原執行模擬器210的前狀態。所謂前狀態係為對應於執行編號之執行指令的執行被模擬之前的狀態。
具體而言,執行復原部141係從狀態日誌表單222,選擇包含有與在步驟S302或步驟S323中所更新之執行編號相同執行編號的狀態日誌記錄。再者,執行復原部141係使用所選擇之狀態日誌記錄中所含之更新前的值,而更新執行模擬器210的狀態資訊。所要更新的狀態資訊,係為由所選擇之狀態日誌記錄中所含之變數名稱所要識別的變數。當無相符之狀態日誌記錄時,執行復原部141不更新執行模擬器210的狀態資訊。
再者,資源復原部142係根據資源日誌檔案230而復原資源模型211的前狀態。
具體而言,資源復原部142係從狀態日誌表單231,選擇包含有與在步驟S302或步驟S323中所更新之執行編號相同執行編號的狀態日誌記錄。再者,資源復原部142係使用所選擇之狀態日誌記錄中所含之更新前的值,而更新資源模型211的 狀態資訊。所要更新的狀態資訊,係為與所選擇之狀態日誌記錄中所含的位址對應的資料。所謂與位址對應的資料,係為記憶於由位址所識別之記憶區域中的資料。當無相符的狀態日誌記錄時,資源復原部142不更新資源模型211的狀態資訊。
在步驟S312中,控制部110係根據輸出入日誌檔案250,而判定對應於執行編號的執行指令是否為輸出入指令。
具體而言,控制部110係從輸出入日誌表單251,檢索包含有與執行編號相同之值之開始編號的輸出入日誌記錄。當有相符的輸出入日誌記錄時,控制部110係判定為對應於執行編號的執行指令為輸出入指令。
當判定為對應於執行編號的執行指令為輸出入指令時,處理前進至第13圖的步驟S331。
當判定為對應於執行編號的執行指令非為輸出入指令時,處理前進至步驟S313。
在步驟S313中,執行模擬部121係作為執行模擬器210而發揮功能,執行模擬器210係模擬對應於執行編號的執行指令。
具體而言,對應於執行編號的執行指令,係以下列方式模擬。
首先,控制部110係從計數器日誌表單221,選擇包含有與在步驟S302或步驟S323中所更新的執行編號相同執行編號的計數器日誌記錄。
接著,執行模擬器210係將目標程式200用的程式計數器的值,更新為所選擇之計數器日誌記錄中所含之程式計數器的 值。
再者,執行模擬器210係從目標程式200讀取與所更新之程式計數器對應的執行指令,且模擬所讀取之執行指令的執行。此外,顯示部193係顯示模擬結果。
在步驟S321中,執行復原部141係根據執行日誌檔案220而復原執行模擬器210的前狀態。
再者,資源復原部142係根據資源日誌檔案230而復原資源模型211的前狀態。
復原前狀態的方法係與步驟S311相同。
在步驟S322中,控制部110係判定對應於執行編號的執行指令是否為起始指令。起始指令係為目標程式200中的第1個執行指令。執行編號的值為1時,控制部110係判定為對應於執行編號的執行指令為起始指令。
當判定為對應於執行編號的執行指令為起始指令時,處理結束。
當判定為對應於執行編號的執行指令非為起始指令時,處理前進至步驟S323。
在步驟S323中,控制部110係將執行編號的值減1。在步驟S323之後,處理前進至步驟S311。
在第13圖的步驟S331中,控制部110係向輸出入復原部143要求復原輸出入狀態。所謂復原輸出入狀態,係指復原輸出入模擬器240的狀態資訊。具體而言,控制部110係呼叫輸出入復原部143。
在步驟S332中,控制部110係確認復原的結束。
具體而言,控制部110係從輸出入復原部143接受結束通知。
在步驟S333中,執行復原部141係作為執行模擬器210而發揮功能,執行模擬器210係模擬輸出入指令的執行。再者,顯示部193係顯示模擬結果。
再者,輸出入模擬部131係作為輸出入模擬器240而發揮功能,輸出入模擬器240係模擬輸出入裝置的動作。再者,顯示部193係顯示模擬結果。
具體而言,執行模擬器210及輸出入模擬器240係以下列方式動作。
首先,執行模擬器210係模擬輸出入指令的執行,且將要求資訊寫入於資源模型211之中的輸出入要求區域。
接著,輸出入模擬器240係檢測要求資訊對於輸出入要求區域的寫入,且根據要求資訊而模擬輸出入裝置的動作。
再者,輸出入模擬器240係將回應資訊寫入於資源模型211之中的輸出入回應區域。
在步驟S333之後,控制部110係將模擬結束通知輸出入復原部143,處理前進至第12圖的步驟S321。
茲根據第14圖來說明輸出入復原處理。
輸出入復原處理係在反向執行方法(S300)中執行。
步驟S341係在輸出入復原部143啟動時執行。
在步驟S341中,輸出入復原部143係根據輸出入日誌檔案250而復原輸出入模擬器240的最終狀態。
具體而言,輸出入復原部143係使用最終狀態表單253而 更新輸出入模擬器240的狀態資訊。
步驟S342至步驟S344係於輸出入狀態的復原被要求時(第13圖的S331)執行。
在步驟S342中,輸出入復原部143係檢測復原要求。
具體而言,輸出入復原部143係被控制部110呼叫。
在步驟S343中,輸出入復原部143係根據輸出入日誌檔案250而復原輸出入模擬器240的前狀態。
具體而言,輸出入復原部143係以下列方式復原輸出入模擬器240的前狀態。
首先,輸出入復原部143係從輸出入日誌表單251,選擇包含有與執行編號相同之值之開始編號的輸出入日誌記錄。
接著,輸出入復原部143係從所選擇的輸出入日誌記錄讀取輸出入編號。
接著,輸出入復原部143係從狀態日誌表單252,選擇包含有與所讀取之輸出入編號相同之輸出入編號的狀態日誌記錄。
再者,輸出入復原部143係使用所選擇之狀態日誌記錄中所含之更新前的值,更新輸出入模擬器240的狀態資訊。所要更新的狀態資訊,係為由所選擇之狀態日誌記錄中所含之變數名稱所要識別的變數。當無相符的狀態日誌記錄時,輸出入復原部143不更新輸出入模擬器240的狀態資訊。
在步驟S344中,輸出入復原部143係將復原的結束通知控制部110。
步驟S345係在輸出入指令的執行被模擬之後(第13圖的S333)執行。具體而言,輸出入復原部143係當被控制部110通知了模擬結束時,執行步驟S345。
在步驟S345中,輸出入復原部143係根據輸出入日誌檔案250而復原輸出入模擬器240的前狀態。復原前狀態的方法,係與步驟S343相同。
在步驟S346中,輸出入復原部143係判定目標程式200的反向執行是否已結束。所謂目標程式200的反向執行,係指依相反順序模擬目標程式200中所含的執行指令。
具體而言,當被控制部110通知了反向執行結束時,輸出入復原部143係判定為目標程式200的反向執行已結束。
當判定為目標程式200的反向執行已結束時,處理結束。
當判定為目標程式200的反向執行未結束時,處理返回步驟S342。
茲根據第15圖來說明依序執行方法(S200)的具體例。
執行模擬器210係從指令1至指令8依序模擬執行指令的執行。
執行日誌產生部122係在指令1至指令8的執行指令被模擬期間,收集執行日誌。結果,獲得如第3圖所示的執行日誌檔案220。
指令2、指令5及指令6係輸出入指令。
指令2、指令5或指令6的執行被模擬時,執行模擬器210係進行對於資源模型211之中之輸出入要求區域的寫入。
當進行了對於輸出入要求區域的寫入時,輸出入模擬器240係模擬輸出入裝置的動作。IO1及IO2係為要被模擬的輸出入。
當IO1或IO2結束時,輸出入模擬器240係進行對於資源模型211之中之輸出入回應區域的寫入。
輸出入日誌產生部132係在IO1及IO2被模擬期間,收集輸出入日誌。結果,獲得如第5圖所示的輸出入日誌檔案250。
資源日誌產生部123係在指令2至指令8的執行指令被模擬期間,收集資源日誌。結果,獲得如第4圖所示的資源日誌檔案230。
茲根據第16圖及第17圖來說明反向執行方法(S300)的具體例。
在第16圖中,執行復原部141係復原指令8之執行被模擬之前之執行模擬器210的狀態資訊。此外,資源復原部142係復原指令8之執行被模擬之前之資源模型211的狀態資訊。
再者,執行模擬器210係模擬指令8的執行。
接著,執行復原部141係復原指令7之執行被模擬之前之執行模擬器210的狀態資訊。此外,資源復原部142係復原指令7之執行被模擬之前之資源模型211的狀態資訊。
再者,執行模擬器210係模擬指令7的執行。
在第17圖中,執行復原部141係復原指令6之執行被模擬之前之執行模擬器210的狀態資訊。此外,資源復原部142係復原指令6之執行被模擬之前之資源模型211的狀態資訊。
再者,執行模擬器210係模擬指令6的執行。
此外,輸出入復原部143係復原指令6之執行被模擬之前之輸出入模擬器240的狀態資訊。
再者,輸出入模擬器240係模擬IO2。
接著,執行復原部141係復原指令6之執行被模擬之前之執行模擬器210的狀態資訊。此外,資源復原部142係復原指令6之執行被模擬之前之資源模型211的狀態資訊。
再者,執行模擬器210係模擬指令6的執行。
之後,以同樣方式,從指令4至指令1依相反順序模擬執行指令的執行。此外,指令2被模擬時,模擬IO1。
***實施形態1的效果***
可將指令集模擬與IO模擬予以協同處理而進行目標系統的模擬。
藉由反向執行方法(S300),就不再需要從最初重新執行模擬,因此可削減特別指定錯誤要因時執行模擬所需要的時間。再者,不再需要憑藉經驗及直覺來限縮錯誤要因。因此,除錯(debug)的效率提升。
***其他構成***
執行模擬器210及輸出入模擬器240亦可為藉由硬體(hardware)所實現的模擬器。
執行模擬器210與輸出入模擬器240係可藉由其他的執行緒執行,亦可藉由相同的執行緒執行。
***實施形態的補充***
在實施形態中,模擬裝置100的功能係可藉由硬體來實現。
第18圖中,係顯示模擬裝置100的功能藉由硬體來實現時的構成。
模擬裝置100係具備處理電路990。處理電路990亦稱為處理電路構成(processing circuitry)。
處理電路990係為實現控制部110、執行模擬部121、執行日誌產生部122、資源日誌產生部123、輸出入模擬部131、輸出入日誌產生部132、執行復原部141、資源復原部142、輸出入復原部143、及記憶部191之類之「部」之功能的專用電子電路。
具體而言,處理電路990係為單一電路、複合電路、經程式化後的處理器、經並聯程式化後的處理器、邏輯(logic)IC、GA、ASIC、FPGA或此等的組合。GA係為Gate Array(閘陣列)的簡稱,ASIC係為Application Specific Integrated Circuit(特殊應用積體電路)的簡稱,FPGA係為Field-Programmable Gate Array(現場可程式閘陣列)的簡稱。
模擬裝置100係可具備替代處理電路990的複數個處理電路。複數個處理電路係分擔「部」的功能。
模擬裝置100的功能係可藉由軟體與硬體的組合來實現。換言之,「部」之功能的一部分藉由軟體來實現,而「部」之功能的其餘部分藉由硬體來實現亦可。
實施形態係為較佳形態的例示,並未意圖限制本發明的技術範圍。實施形態可局部實施,亦可與其他形態組合來實施。使用流程圖等所說明的程序亦可適當變更。
100‧‧‧模擬裝置
110‧‧‧控制部
121‧‧‧執行模擬部
122‧‧‧執行日誌產生部
123‧‧‧資源日誌產生部
131‧‧‧輸出入模擬部
132‧‧‧輸出入日誌產生部
141‧‧‧執行復原部
142‧‧‧資源復原部
143‧‧‧輸出入復原部
191‧‧‧記憶部
192‧‧‧接受部
193‧‧‧顯示部
901‧‧‧處理器
902‧‧‧記憶體
903‧‧‧輔助記憶裝置
904‧‧‧輸入裝置
905‧‧‧顯示器

Claims (10)

  1. 一種模擬裝置,包括:執行模擬部,係作為執行模擬器而發揮功能者,該執行模擬器係根據屬於包含有複數個執行指令的程式且為藉由具有輸出入裝置的目標系統所執行之程式的目標程式,來模擬前述目標系統所進行之前述目標程式的執行;及輸出入模擬部,係作為輸出入模擬器而發揮功能者,該輸出入模擬器係於前述複數個執行指令中之輸出入指令的執行被模擬時,模擬前述輸出入裝置的動作。
  2. 根據申請專利範圍第1項之模擬裝置,其中前述模擬裝置係包括記憶部,該記憶部係記憶包含有執行指令的執行被模擬之前之執行模擬器之狀態資訊的執行日誌檔案;前述執行模擬部係根據前述執行日誌檔案,依與前述目標程式中之前述複數個執行指令之執行順序相反的順序,模擬前述目標程式中所含之執行指令的執行。
  3. 根據申請專利範圍第2項之模擬裝置,其中前述記憶部係記憶包含有輸出入指令之執行被模擬之前之輸出入模擬器之狀態資訊的輸出入日誌檔案;前述模擬裝置係包括輸出入復原部,該輸出入復原部係於輸出入指令之執行被模擬時,使用前述輸出入日誌檔案,將輸出入指令之執行被模擬之前的前述輸出入模擬器的狀態資訊予以復原;前述輸出入模擬部係使用前述輸出入模擬器之被復原後的狀態資訊,來模擬前述輸出入裝置的動作。
  4. 根據申請專利範圍第3項之模擬裝置,其中前述模擬裝置係包括產生前述輸出入日誌檔案的輸出入日誌產生部;前述執行模擬部係依前述目標程式中之前述複數個執行指令的執行順序,模擬前述目標程式中所含之執行指令的執行;前述輸出入日誌產生部係於輸出入指令的執行被模擬時,將輸出入指令之執行被模擬之前之前述輸出入模擬器的狀態資訊登錄於前述輸出入日誌檔案。
  5. 根據申請專利範圍第2至4項中任一項之模擬裝置,其中前述模擬裝置係包括執行復原部,該執行復原部係於執行指令之執行被模擬時,使用前述執行日誌檔案,將執行指令之執行被模擬之前的前述執行模擬器的狀態資訊予以復原;前述執行模擬部係使用前述執行模擬器之被復原後的狀態資訊,來模擬執行指令的執行。
  6. 根據申請專利範圍第5項之模擬裝置,其中前述模擬裝置係包括產生前述執行日誌檔案的執行日誌產生部;前述執行模擬部係依前述目標程式中之前述複數個執行指令的執行順序,模擬前述目標程式中所含之執行指令的執行;前述執行日誌產生部係於執行指令的執行被模擬時,將執行指令之執行被模擬之前之前述執行模擬器的狀態資訊登錄於前述執行日誌檔案。
  7. 根據申請專利範圍第5項之模擬裝置,其中前述記憶部係 記憶前述目標系統中的資源模型、及包含有執行指令之執行被模擬之前之前述資源模型之狀態資訊的資源日誌檔案;前述模擬裝置係包括資源復原部,該資源復原部係於執行指令之執行被模擬時,使用前述資源日誌檔案,將執行指令之執行被模擬之前之前述資源模型的狀態資訊予以復原;前述執行模擬部係使用前述執行模擬器之被復原後的狀態資訊、及前述資源模型之被復原後的狀態資訊來模擬執行指令的執行。
  8. 根據申請專利範圍第7項之模擬裝置,其中前述模擬裝置係包括產生前述資源日誌檔案的資源日誌產生部;前述執行模擬部係依前述目標程式中之前述複數個執行指令的執行順序,模擬前述目標程式中所含之執行指令的執行;前述資源日誌產生部係於執行指令的執行被模擬時,將執行指令之執行被模擬之前之前述資源模型的狀態資訊登錄於前述資源日誌檔案。
  9. 一種模擬程式產品,用以使電腦執行下列處理:執行模擬處理,係作為執行模擬器而發揮功能者,該執行模擬器係根據屬於包含有複數個執行指令的程式且為藉由具有輸出入裝置的目標系統所執行之程式的目標程式,來模擬前述目標系統所進行之前述目標程式的執行;及輸出入模擬處理,係作為輸出入模擬器而發揮功能者,該 輸出入模擬器係於前述複數個執行指令中之輸出入指令的執行被模擬時,模擬前述輸出入裝置的動作。
  10. 根據申請專利範圍第9項之模擬程式產品,其中前述執行模擬器係根據包含有執行指令之執行被模擬之前之執行模擬器之狀態資訊的執行日誌檔案,依與前述目標程式中之前述複數個執行指令之執行順序相反的順序,模擬前述目標程式中所含之執行指令的執行。
TW105123705A 2016-06-07 2016-07-27 模擬裝置以及模擬程式產品 TW201743149A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/066932 WO2017212549A1 (ja) 2016-06-07 2016-06-07 シミュレーション装置およびシミュレーションプログラム

Publications (1)

Publication Number Publication Date
TW201743149A true TW201743149A (zh) 2017-12-16

Family

ID=57981570

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105123705A TW201743149A (zh) 2016-06-07 2016-07-27 模擬裝置以及模擬程式產品

Country Status (3)

Country Link
JP (1) JP6076576B1 (zh)
TW (1) TW201743149A (zh)
WO (1) WO2017212549A1 (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07109592B2 (ja) * 1986-02-21 1995-11-22 株式会社日立製作所 Cpu―io並列動作シミュレーション方法
JP2533489B2 (ja) * 1986-05-23 1996-09-11 株式会社日立製作所 シミユレ−シヨン方式
JPH04352245A (ja) * 1991-05-30 1992-12-07 Fujitsu Ltd シュミレ−ション方式
JPH0581075A (ja) * 1991-09-19 1993-04-02 Mitsubishi Electric Corp ソフトウエア開発装置
JP2000020348A (ja) * 1998-07-03 2000-01-21 Toshiba Corp シミュレーション装置及びシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2000242524A (ja) * 1999-02-18 2000-09-08 Sanyo Electric Co Ltd プロセッサのソフトウエアシミュレータ
US7849450B1 (en) * 2005-01-28 2010-12-07 Intel Corporation Devices, methods and computer program products for reverse execution of a simulation
JP2007004400A (ja) * 2005-06-22 2007-01-11 Oki Data Corp プログラム・デバッグ方法
JP2012226445A (ja) * 2011-04-15 2012-11-15 Canon Inc 情報処理装置及びプログラム

Also Published As

Publication number Publication date
JPWO2017212549A1 (ja) 2018-06-14
WO2017212549A1 (ja) 2017-12-14
JP6076576B1 (ja) 2017-02-08

Similar Documents

Publication Publication Date Title
JP6051546B2 (ja) 情報処理装置、シミュレーション方法、およびプログラム
US20110125448A1 (en) Three-dimensional application program framework structure and a method for implementing an application program based on the same, and an automatic testing system based on a three-dimensional application software framework and a method therefor
US9389978B2 (en) Automated operating system test framework
CN111111201A (zh) 一种基于游戏的技能创建方法、装置、服务器及介质
US8589734B2 (en) Verifying correctness of processor transactions
US10514996B2 (en) Simulation reproducing apparatus and computer-readable recording medium
US8938646B2 (en) Mutations on input for test generation
TW201743149A (zh) 模擬裝置以及模擬程式產品
CN112446199A (zh) 一种基于可视化模板的报表生成方法
CN112446189A (zh) 一种数据处理方法
JP5826099B2 (ja) ソフトウェア評価支援装置及びプログラム
Denwood et al. Package ‘runjags’
JPH04112344A (ja) データベースの疑似更新方式
US11720781B2 (en) Parallel execution of gated activation unit operations
KR102457154B1 (ko) 가속기에서 실행되는 프로그램에 대한 중간표현을 생성하는 방법 및 시스템
WO2019198235A1 (ja) シミュレーション装置およびシミュレーションプログラム
JP2018067057A (ja) 制御プログラムの検証装置及びプログラム
JP6900661B2 (ja) 検証装置、方法およびプログラム
CN110674622B (zh) 可视化图表生成方法、系统、存储介质及电子设备
JP2018055654A (ja) 情報処理装置、情報処理方法およびプログラム
JP2021117536A (ja) 処理ユニット及び処理システム
JP4421498B2 (ja) プログラム
JP2007328775A (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
KR20190116628A (ko) 섬네일 이미지의 효율적 갱신 처리가 가능한 프레젠테이션 문서 편집 장치 및 그 동작 방법
KR20190071994A (ko) 메모리 오염 감시 장치 및 방법