JP2009217429A - デバッグ支援装置 - Google Patents

デバッグ支援装置 Download PDF

Info

Publication number
JP2009217429A
JP2009217429A JP2008059135A JP2008059135A JP2009217429A JP 2009217429 A JP2009217429 A JP 2009217429A JP 2008059135 A JP2008059135 A JP 2008059135A JP 2008059135 A JP2008059135 A JP 2008059135A JP 2009217429 A JP2009217429 A JP 2009217429A
Authority
JP
Japan
Prior art keywords
interrupt
mask
request signal
program
interrupt request
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2008059135A
Other languages
English (en)
Other versions
JP5130962B2 (ja
Inventor
Fumihiko Hayakawa
文彦 早川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008059135A priority Critical patent/JP5130962B2/ja
Publication of JP2009217429A publication Critical patent/JP2009217429A/ja
Application granted granted Critical
Publication of JP5130962B2 publication Critical patent/JP5130962B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ターゲットプログラムのデバッグ効率を向上させることができるデバッグ支援装置を提供する。
【解決手段】割り込みコントローラ23は、割り込みマスク部24を備える。割り込みマスク部24は、CPUコア21が連続実行状態時に割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号IRQiを通過させ、また、CPUコア21がステップ実行状態時及びブレーク状態時に割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型である場合には、割り込み要求信号IRQiを通過させ、割り込み要求信号IRQiがプログラム非同期型である場合には、割り込み要求信号IRQiをマスクする。
【選択図】図1

Description

本発明は、プログラムのデバッグを支援するデバッグ支援装置に関する。
図8は従来のデバッグ支援装置の一例を示すブロック回路図である。図8中、1はプロセッサ、2はグラフィック表示装置である。また、プロセッサ1において、3はCPU(central processing unit)コア、4はCPUコア3が依存する処理を行うCPUコア、5はタイマ、6はCPUコア3とグラフィック表示装置2、CPUコア4及びタイマ5との間に接続された割り込みコントローラである。
グラフィック表示装置2は、CPUコア3で実行されるプログラムとは非同期に、例えば、1/30秒毎に割り込み要求信号を出力するものである。CPUコア4はCPUコア3が実行するプログラムに同期した割り込み要求信号を出力するものである。タイマ5は、CPUコア3が実行するプログラムとは非同期に、例えば、1/100秒毎に割り込み要求信号を出力するものである。
図8に示すデバッグ支援装置のように、デバッグ支援装置には、プログラムに同期したプログラム同期型の割り込み要求と、プログラムとは非同期の実時間に基づいたプログラム非同期型の割り込み要求とが発生するものがある。
図9は1/30秒毎にプログラム非同期型の割り込み要求が発生する従来のデバッグ支援装置の通常動作を示す図である。図9中、7(n)〜7(n+3)はターゲットプログラムによる非割り込み処理工程を示しており、それぞれ百万ステップのオーダーである。8(n)〜8(n+3)は1/30秒毎の割り込み要求を示している。9(n−1)〜9(n+2)はターゲットプログラムによる割り込み処理工程を示しており、それぞれ数千ステップのオーダーである。
なお、図10はプログラム非同期型の割り込み要求が発生しない従来のデバッグ支援装置におけるデバッグ動作を示す図である。図10中、10(n)、10(n+1)、10(p)はデバッグ目的のために操作者が行うステップ実行指示を示している。11(n−1)〜11(n+1)、11(p)はターゲットプログラムによる非割り込み処理工程を示しており、それぞれ1ステップである。なお、ターゲットプログラムのブレーク(実行停止)時間は数秒のオーダーである。
図11はプログラム同期型の割り込み要求とプログラム非同期型の割り込み要求とが発生する従来のデバッグ支援装置を使用したターゲットプログラムのデバッグ手法の第1例を示すフローチャートである。このデバッグ手法は、まず、操作者によるステップ実行指示によりステップ実行を行わせ(ステップS11−1)、次に、ステップ実行毎に発生する割り込み要求に対する割り込みハンドラ処理を手作業で進め(ステップS11−2)、次に、割り込み処理からの復帰を手作業で行う(ステップS11−3)という手順を繰り返すというものである。
図12はプログラム同期型の割り込み要求とプログラム非同期型の割り込み要求とが発生する従来のデバッグ支援装置を使用したターゲットプログラムのデバッグ手法の第2例を示すフローチャートである。このデバッグ手法は、デバッグ前に予め、割り込みを禁止する処理を行い(ステップS12−1)、次に、デバッグ目的のステップ実行を繰り返し(ステップS12−2)、その後、ターゲットプログラムの実行上必要な割り込み待ちになったときは、割り込み許可処理を行い(ステップS12−3)、割り込み処理を実行させるという手順を繰り返すというものである。
前述の図11に示すデバッグ手法では、ステップ実行毎に発生する割り込み要求に対する割り込みハンドラ処理を手作業で進める必要や、割り込み処理から復帰させるための手作業が必要である。また、図12に示すデバッグ手法では、ターゲットプログラムの実行上必要な割り込み待ちになったときは、割り込み許可処理を手作業で行う必要がある。したがって、これらのデバッグ手法では、煩雑な手作業が発生し、ターゲットプログラムのデバッグ効率が非常に悪いという問題点があった。
このような問題点を解決するデバッグ手法として、特許文献1に記載のデバッグ手法がある。このデバッグ手法は、ブレーク中に発生した一連の割り込み要求に対応する割り込み処理をターゲットプログラムのステップ実行時に一括的に行うというものである。
図13は1/30秒毎にプログラム非同期型の割り込み要求が発生する従来のデバッグ支援装置に特許文献1に記載のデバッグ手法を適用した場合のデバッグ動作を示す図である。図13中、12(n)−1〜12(n)−5、12(n+1)−1〜12(n+1)−5、12(n+2)−1〜12(n+2)−5はブレーク中に発生した割り込み要求を示している。13(n)〜13(n+2)は操作者によるステップ実行指示を示している。14(n)〜14(n+2)はターゲットプログラムによる割り込み処理工程を示しており、それぞれ数千ステップのオーダーである。15(n−1)〜15(n+2)はターゲットプログラムによる非割り込み処理工程を示しており、それぞれ1ステップである。
このように、特許文献1に記載のデバッグ手法は、ブレーク中に発生した一連の割り込み要求による割り込み処理をステップ実行指示に合わせて行うことで、操作者にはターゲットプログラムによる非割り込み処理のステップ実行のみを見せるというものであるが、このデバッグ手法には、ステップ実行指示後に最初に行う割り込み処理部分のプログラムが完成していないと、割り込み処理後に行う非割り込み処理部分のデバッグを行うことができないという問題点がある。
特開昭54−127247号公報
本発明は、かかる点に鑑み、ターゲットプログラムのデバッグ効率を向上させることができるようにしたデバッグ支援装置を提供することを目的とする。
ここで開示するデバッグ支援装置は、CPUコアと、割り込みコントローラとを備えるデバッグ支援装置において、前記割り込みコントローラは、割り込みマスク部を備え、前記割り込みマスク部は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタを備え、前記CPUコアがステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクするものである。
開示したデバッグ支援装置においては、割り込みコントローラは、割り込みマスク部を備え、前記割り込みマスク部は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタを備え、CPUコアがステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクするので、ターゲットプログラムをステップ実行する際に、プログラム非同期型の割り込み要求信号を前記CPUコアに与えないようにすることができる。
したがって、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求に対する割り込みハンドラ処理を手作業で進めることや、プログラム非同期型の割り込み要求に対する割り込み許可/禁止を手作業で切り替えることが必要なくなるので、ターゲットプログラムのデバッグ効率を向上させることができる。
(第1実施形態)
図1は本発明の第1実施形態を示すブロック回路図である。図1中、21はターゲットプログラムの実行を行うCPUコア、22はインサーキット・エミュレータとの間のインタフェースをなすデバッグ補助装置、23は割り込み要求信号IRQ1〜IRQ5を出力するデバイスとCPUコア21との間に接続された割り込みコントローラである。
また、割り込みコントローラ23において、24は割り込みマスク部、25は割り込みコントローラ機能部である。割り込みマスク部24は、CPUコア21がステップ実行状態時及びブレーク状態時には、割り込み要求信号IRQ1〜IRQ5のうち、プログラム非同期型の割り込み要求信号についてはマスクし、プログラム同期型の割り込み要求信号については通過させて割り込みコントローラ機能部25に与えるものである。
割り込みマスク部24は属性設定レジスタ26−1〜26−5を備えている。属性設定レジスタ26−i(但し、iは1、2、3、4又は5であり、以下、同様である。)は、割り込み要求信号IRQiに対応して設けられたものであり、割り込み要求信号IRQiがプログラム同期型であるかプログラム非同期型であるかの属性を設定するものである。属性設定レジスタ26−iに対する割り込み要求信号IRQiの属性設定は、操作者による判断を元に、CPUコア21によりレジスタ設定経路27を通して行われる。
割り込みコントローラ機能部25は、割り込み要求信号IRQ1〜IRQ5のうち、割り込みマスク部24を通過してきた割り込み要求信号の優先度や、割り込み処理中に同じ割り込みレベルの割り込みが発生しないようにするマスク状態を判断してCPUコア21に対して割り込み要求信号を発生するという一般的な割り込みコントローラ機能を有するものである。
本発明の第1実施形態では、割り込みマスク部24は、CPUコア21又はデバッグ補助装置22から与えられるCPUコア21の状態情報(デバッグステート情報)、即ち、CPUコア21が連続実行状態にあるか、ステップ実行状態にあるか、ブレーク状態にあるかの情報を入力し、CPUコア21の状態と、属性設定レジスタ26−1〜26−5に設定された割り込み要求信号IRQ1〜IRQ5の属性情報とに基づいて、割り込み要求信号IRQ1〜IRQ5のそれぞれについて、割り込みコントローラ機能部25に対して通過させるか、マスクするかを決定する。
表1は割り込みマスク部24の機能表であり、CPUコア21の状態と、割り込み要求信号IRQiの属性と、割り込み要求信号IRQiに対する割り込みマスク部24の動作との関係を示している。
Figure 2009217429
即ち、割り込みマスク部24は、CPUコア21が連続実行状態時に割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号IRQiを通過させ、また、CPUコア21がステップ実行状態時及びブレーク状態時に割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型である場合には、割り込み要求信号IRQiを通過させ、割り込み要求信号IRQiがプログラム非同期型である場合には、割り込み要求信号IRQiをマスクする。
図2は本発明の第1実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。即ち、本発明の第1実施形態を使用したターゲットプログラムのデバッグが実行される場合には、まず、CPUコア21による属性設定レジスタ26−1〜26−5に対する割り込み要求信号IRQ1〜IRQ5の属性設定が行われ(ステップS2−1)、その後、操作者からのステップ実行指示によるステップ実行が繰り返して行われる(ステップS2−2)。
以上のように、本発明の第1実施形態においては、割り込みコントローラ23は、割り込みマスク部24を備え、割り込みマスク部24は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタ26−1〜26−5を備え、CPUコア21がステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクするので、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求信号をCPUコア21に与えないようにすることができる。
したがって、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求に対する割り込みハンドラ処理を手作業で進めることや、プログラム非同期型の割り込み要求に対する割り込み許可/禁止を手作業で切り替えることが必要なくなるので、ターゲットプログラムのデバッグ効率を向上させることができる。
なお、割り込みコントローラ23に、割り込みマスク部24のマスク機能を無効にするマスク機能無効化手段をなすマスク機能ON/OFFスイッチを設け、マスク機能ON/OFFスイッチのON、OFFの設定をCPUコア21により行い、マスク機能ON/OFFスイッチをONとするときは、割り込みマスク部24のマスク機能が有効となり、マスク機能ON/OFFスイッチをOFFとするときは、割り込みマスク部24のマスク機能が無効になるように構成しても良い。
(第2実施形態)
図3は本発明の第2実施形態を示すブロック回路図である。図3中、31はターゲットプログラムの実行を行うCPUコア、32はインサーキット・エミュレータとの間のインタフェースをなすデバッグ補助装置、33は割り込み要求信号IRQ1〜IRQ5を出力するデバイスとCPUコア31との間に接続された割り込みコントローラである。
また、割り込みコントローラ33において、34は割り込みマスク部、35は割り込みコントローラ機能部、36はマスク一時停止指示部、37はマスク機能ON/OFFスイッチである。割り込みマスク部34は、CPUコア31がステップ実行状態時及びブレーク状態時には、割り込み要求信号IRQ1〜IRQ5のうち、プログラム非同期型の割り込み要求信号については後述する一定の条件の下においてマスクし、プログラム同期型の割り込み要求信号については通過させて割り込みコントローラ機能部35に与えるものである。
割り込みマスク部34は、属性設定レジスタ38−1〜38−5を備えている。属性設定レジスタ38−iは、割り込み要求信号IRQiに対応して設けられたものであり、割り込み要求信号IRQiがプログラム同期型であるかプログラム非同期型であるかの属性を設定するものである。属性設定レジスタ38−iに対する割り込み要求信号IRQiの属性設定は、操作者の判断を元に、CPUコア31によりレジスタ設定経路39を通して行われる。
割り込みコントローラ機能部35は、割り込み要求信号IRQ1〜IRQ5のうち、割り込みマスク部34を通過してきた割り込み要求信号の優先度や、割り込み処理中に同じ割り込みレベルの割り込みが発生しないようにするマスク状態を判断してCPUコア31に対して割り込み要求信号を発生するという一般的な割り込みコントローラ機能を有するものである。
マスク一時停止指示部36はマスク一時停止ステップ実行数設定レジスタ40−1〜40−5を備えている。マスク一時停止ステップ実行数設定レジスタ40−iは、割り込み要求信号IRQiに対応して設けられたものであり、割り込み要求信号IRQiがプログラム非同期型である場合に、割り込みマスク部34による割り込み要求信号IRQiに対するマスクを一時停止するターゲットプログラムのステップ実行数を設定するものである。マスク一時停止ステップ実行数設定レジスタ40−1〜40−5に対するマスク一時停止ステップ実行数の初期値の設定は、操作者の判断を元に、CPUコア31によりレジスタ設定経路39を通して行われる。
マスク一時停止指示部36は、CPUコア31からCPUコア31が命令を実行している期間を示す命令実行パルスを入力し、この命令実行パルスに従って、マスク一時停止ステップ実行数設定レジスタ40−1〜40−5のうち、プログラム非同期型の割り込み要求信号に対応するマスク一時停止ステップ実行数設定レジスタの格納値を減算し、プログラム非同期型の割り込み要求信号に対応するマスク一時停止ステップ実行数設定レジスタのいずれかの格納値が0になると、格納値が0になったマスク一時停止ステップ実行数設定レジスタに対応する割り込み要求信号のマスク一時停止指示を割り込みマスク部34に通知するものである。なお、プログラム非同期型の割り込み要求信号に対応するマスク一時停止ステップ実行数設定レジスタには、その格納値が0になる度に、CPUコア31による初期値の設定が行われる。
マスク機能ON/OFFスイッチ37は、割り込みマスク部34のマスク機能を無効化するマスク機能無効化手段をなすものであり、マスク機能ON/OFFスイッチ37がONの場合には、割り込みマスク部34のマスク機能は有効とされ、マスク機能ON/OFFスイッチ37がOFFの場合には、割り込みマスク部34のマスク機能は無効とされる。マスク機能ON/OFFスイッチ37のON、OFFの設定は、操作者の判断を元に、CPUコア31によりレジスタ設定経路39を通して行われる。
本発明の第2実施形態においては、割り込みマスク部34は、マスク機能ON/OFFスイッチ37の状態と、CPUコア31あるいはデバッグ補助装置32から与えられるCPUコア31の状態情報(デバッグステート情報)、即ち、CPUコア31が連続実行状態にあるか、ステップ実行状態にあるか、ブレーク状態にあるかの情報と、属性設定レジスタ38−1〜38−5に設定された割り込み要求信号IRQ1〜IRQ5の属性情報と、マスク一時停止指示部36からのマスク一時停止指示とに基づいて、割り込み要求信号IRQ1〜IRQ5を通過させるか、マスクするかを決定する。
表2は割り込みマスク部34の機能表であり、マスク機能ON/OFFスイッチ37の状態と、CPUコア31の状態と、割り込み要求信号IRQiの属性情報と、割り込み要求信号IRQiに対する割り込みマスク部34の動作との関係を示している。
Figure 2009217429
即ち、割り込みマスク部34は、マスク機能ON/OFFスイッチ37がOFFとされている場合には、割り込みマスク部34のマスク機能は無効とされ、CPUコア31が連続実行状態であっても、ステップ実行状態であっても、ブレーク状態であっても、割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号IRQiを通過させる。
また、割り込みマスク部34は、マスク機能ON/OFFスイッチ37がONとされている場合には、割り込みマスク部34のマスク機能は有効とされ、CPUコア31が連続実行状態時に割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号IRQiを通過させ、また、CPUコア31がステップ実行状態時及びブレーク状態時に割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型である場合には、割り込み要求信号IRQiを通過させ、割り込み要求信号IRQiがプログラム非同期型である場合には、マスク一時停止指示部36からのマスク一時停止指示を受けた場合を除き、割り込み要求信号IRQiをマスクする。
また、割り込みマスク部34は、割り込み要求信号IRQiがプログラム非同期型の場合において、マスク一時停止指示部36から割り込み要求信号IRQiのマスク一時停止指示を受けると、割り込み要求信号IRQiのマスクを一時停止し、それまでに発生した割り込み要求信号IRQiに対して1個の割り込み要求信号を割り込みコントローラ機能部35に出力するように構成される。
図4は本発明の第2実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。即ち、本発明の第2実施形態を使用したターゲットプログラムのデバッグが実行される場合には、まず、CPUコア31による属性設定レジスタ38−1〜38−5に対する割り込み要求信号IRQ1〜IRQ5の属性設定が行われ(ステップS4−1)、次に、CPUコア31によるマスク一時停止ステップ実行数設定レジスタ40−1〜40−5に対するマスク一時停止ステップ実行数の設定が行われ(ステップS4−2)、次に、CPUコア31によるマスク機能ON/OFFスイッチ37のON、OFFの設定が行われ(ステップS4−3)、その後、操作者からのステップ実行指示によるステップ実行が繰り返して行われる(ステップS4−4)。
ここで、割り込みマスク部34は、割り込み要求信号IRQiがプログラム非同期型の場合において、マスク一時停止指示部36から割り込み要求信号IRQiのマスク一時停止指示を受けると、割り込み要求信号IRQiのマスクを一時停止し、それまでに発生した割り込み要求信号IRQiに対して1個の割り込み要求信号を発生する。この場合、割り込み要求信号IRQiに対応する割り込み処理が操作者からのステップ実行指示により実行可能となる。
図5は本発明の第2実施形態を使用したターゲットプログラムのデバッグ動作を示す図であり、割り込み要求信号IRQ1の属性がプログラム非同期型である場合を例にしている。図5中、41(n)〜41(n+2)、41(p)〜41(p+2)、41(q)は操作者によるステップ実行指示、42(m)〜42(m+2)、42(w)は割り込み要求信号IRQ1による割り込み要求を示している。43(n)〜43(n+2)、43(p)、43(q)はターゲットプログラムによる非割り込み処理工程を示しており、それぞれ1ステップである。43(p+1)、43(p+2)はターゲットプログラムによる割り込み要求42(w)に対応する割り込み処理工程を示しており、それぞれ1ステップである。
即ち、この例では、マスク一時停止指示部36が割り込み要求信号IRQ1のマスク一時停止指示を割り込みマスク部34に通知すると、割り込みマスク部34は、割り込み要求信号IRQ1に対するマスクを一時停止し、それまでに発生した割り込み要求信号に対して1個の割り込み要求信号を通過させ、その後、マスク一時停止ステップ実行数設定レジスタ40−1に対するマスク一時停止ステップ実行数が設定され、マスク一時停止ステップ実行数設定レジスタ40−1の値が0になる度に、割り込み要求信号IRQ1のマスクが一時停止される。
この例の場合に、マスク一時停止ステップ実行数設定レジスタ40−1に設定する値については、例えば、実動作時(連続実行時)に、CPUコア31が100MHzで動作し、割り込み要求信号IRQ1が1/30秒毎に発生する場合には、106〜108ステップに1回、割り込み要求が発生する計算になるため、マスク一時停止ステップ実行数設定レジスタ40−1に106程度の値を書き込んでおくと、ステップ実行を行なった場合においても、CPUコア31への割り込み入力頻度は、実動作時の場合と同等になる。実際には、マスク一時停止ステップ実行数設定レジスタ40−1に103程度を設定しても、デバッグ効率に支障がないことが経験上確認されている。
なお、図5に示す例においては、割り込み要求42(w)の後のステップ実行指示41(p)によりターゲットプログラムによる非割り込み処理工程43(p)を行うようにしているが、この代わりに、割り込み要求42(w)の後のステップ実行指示41(p)により、ターゲットプログラムの割り込み処理を開始するように設定しても良い。
以上のように、本発明の第2実施形態においては、割り込みコントローラ33は、割り込みマスク部34を備え、割り込みマスク部34は、割り込み要求信号毎にプログラム同期型であるか、プログラム非同期型であるかの属性を設定する属性設定レジスタ38−1〜38−5を備え、CPUコア31がステップ実行状態時及びブレーク状態時には、マスク一時停止指示部36からのマスク一時停止指示を受けた場合を除き、プログラム非同期型の割り込み要求信号をマスクするので、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求信号をCPUコア31に与えないようにすることができる。
したがって、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求に対する割り込みハンドラ処理を手作業で進めることや、プログラム非同期型の割り込み要求に対する割り込み許可/禁止を手作業で切り替えることが必要なくなるので、ターゲットプログラムのデバッグ効率を向上させることができる。
また、本発明の第2実施形態によれば、マスク一時停止ステップ実行数設定レジスタ40−1〜40−5のうち、プログラム非同期型の割り込み要求信号に対応させるマスク一時停止ステップ実行数設定レジスタに設定する値を、ステップ実行を行う場合に、CPUコア31への割り込み入力頻度が実動作時(連続実行時)と同等となるような値に設定することで、デバッグをより高精度に行うことができる。
なお、本発明の第2実施形態においては、5個の割り込み要求信号IRQ1〜IRQ5に対応して5個のマスク一時停止ステップ実行数設定レジスタ40−1〜40−5を設けた場合について説明したが、この代わりに、5個の割り込み要求信号IRQ1〜IRQ5に対応して1個のマスク一時停止ステップ実行数設定レジスタを設け、5個の割り込み要求信号IRQ1〜IRQ5のマスク一時停止を一括して行うようにしても良い。
(第3実施形態)
図6は本発明の第3実施形態を示すブロック回路図である。図6中、51はターゲットプログラムの実行を行うCPUコア、52はインサーキット・エミュレータとの間のインタフェースをなすデバッグ補助装置、53は割り込み要求信号IRQ1〜IRQ5を出力するデバイスとCPUコア51との間に接続された割り込みコントローラである。
また、割り込みコントローラ53において、54は割り込みマスク部、55は割り込みコントローラ機能部、56はマスク解除PC(プログラムカウンタ)値格納部、57はマスク機能ON/OFFスイッチである。
割り込みマスク部54は、CPUコア51がステップ実行状態時及びブレーク状態時には、割り込み要求信号IRQ1〜IRQ5のうち、プログラム非同期型の割り込み要求信号については後述する一定の条件の下においてマスクし、プログラム同期型の割り込み要求信号については通過させて割り込みコントローラ機能部55に与えるものである。
割り込みマスク部54は属性設定レジスタ58−1〜58−5を備えている。属性設定レジスタ58−iは、割り込み要求信号IRQiに対応して設けられたものであり、割り込み要求信号IRQiがプログラム同期型であるかプログラム非同期型であるかの属性を設定するものである。属性設定レジスタ58−1〜58−5に対する割り込み要求信号IRQ1〜IRQ5の属性設定は、操作者の判断を元に、CPUコア51によりレジスタ設定経路59を通して行われる。
割り込みコントローラ機能部55は、割り込み要求信号IRQ1〜IRQ5のうち、割り込みマスク部54を通過してきた割り込み要求信号の優先度や、割り込み処理中に同じ割り込みレベルの割り込みが発生しないようにするマスク状態を判断してCPUコア51に対して割り込み要求信号を発生するという一般的な割り込みコントローラ機能を有するものである。
マスク解除PC値格納部56は、割り込みマスク部54によるプログラム非同期型の割り込み要求信号に対するマスクの解除を指定するプログラムカウンタ値を設定するマスク解除PC値設定レジスタ60を備えており、マスク解除PC値設定レジスタ60の値を割り込みマスク部54に与えるものである。マスク解除PC値設定レジスタ60に対するPC値の設定は、操作者の判断を元に、CPUコア51によりレジスタ設定経路59を通して行われる。
マスク機能ON/OFFスイッチ57は、割り込みマスク部54のマスク機能を無効化するマスク機能無効化手段をなすものであり、マスク機能ON/OFFスイッチ57がONの場合には、割り込みマスク部54のマスク機能は有効とされ、マスク機能ON/OFFスイッチ57がOFFの場合には、割り込みマスク部54のマスク機能は無効とされる。マスク機能ON/OFFスイッチ57のON、OFFの設定は、操作者の判断を元に、CPUコア51によりレジスタ設定経路59を通して行われる。
本発明の第3実施形態においては、割り込みマスク部54は、マスク機能ON/OFFスイッチ57の状態と、CPUコア51あるいはデバッグ補助装置52から与えられるCPUコア51の状態情報(デバッグステート情報)、即ち、CPUコア51が連続実行状態にあるか、ステップ実行状態にあるか、ブレーク状態にあるかの情報と、属性設定レジスタ58−1〜58−5に設定された割り込み要求信号IRQ1〜IRQ5の属性情報と、マスク解除PC値格納部56から与えられるPC値と、CPUコア51から与えられるプログラムカウンタの値(PC値)とに基づいて、割り込み要求信号IRQ1〜IRQ5を通過させるか、マスクするかを決定する。
表3は割り込みマスク部54の機能表であり、マスク機能ON/OFFスイッチ57の状態と、CPUコア51の状態と、割り込み要求信号IRQiの属性情報と、割り込み要求信号IRQiに対する割り込みマスク部54の動作との関係を示している。
Figure 2009217429
即ち、割り込みマスク部54は、マスク機能ON/OFFスイッチ57がOFFとされている場合には、割り込みマスク部54のマスク機能は無効とされ、CPUコア51が連続実行状態であっても、ステップ実行状態であっても、ブレーク状態であっても、割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号IRQiを通過させる。
また、割り込みマスク部54は、マスク機能ON/OFFスイッチ57がONとされている場合には、割り込みマスク部54のマスク機能は有効とされ、CPUコア51が連続実行状態時に割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型であってもプログラム非同期型であっても、割り込み要求信号IRQiを通過させ、また、CPUコア51がステップ実行状態時及びブレーク状態時に割り込み要求信号IRQiが与えられたときは、割り込み要求信号IRQiがプログラム同期型である場合には、割り込み要求信号IRQiを通過させ、割り込み要求信号IRQiがプログラム非同期型である場合には、CPUコア51内のプログラムカウンタの値がマスク解除PC値設定レジスタ60に設定されたマスク解除PC値になるまで、割り込み要求信号IRQiをマスクする。
図7は本発明の第3実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。即ち、本発明の第3実施形態を使用したターゲットプログラムのデバッグが実行される場合には、まず、CPUコア51による属性設定レジスタ58−1〜58−5に対する割り込み要求信号IRQ1〜IRQ5の属性設定が行われ(ステップS7−1)、次に、CPUコア51によるマスク解除PC値設定レジスタ60に対するマスク解除PC値の設定が行われ(ステップS7−2)、次に、CPUコア51によるマスク機能ON/OFFスイッチ57のON、OFFの設定が行われ(ステップS7−3)、その後、操作者からのステップ実行指示によるステップ実行が繰り返して行われる(ステップS7−4)。
以上のように、本発明の第3実施形態においては、割り込みコントローラ53は、割り込みマスク部54を備え、割り込みマスク部54は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかを設定する属性設定レジスタ58−1〜58−5を備え、CPUコア51がステップ実行状態時及びブレーク状態時には、CPUコア51内のプログラムカウンタの値がマスク解除PC値設定レジスタ60に設定されたマスク解除PC値になるまで、プログラム非同期型の割り込み要求信号をマスクするので、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求信号をCPUコア51に与えないようにすることができる。
したがって、ターゲットプログラムをステップ実行する場合に、プログラム非同期型の割り込み要求に対する割り込みハンドラ処理を手作業で進めることや、プログラム非同期型の割り込み要求に対する割り込み許可/禁止を手作業で切り替えることが必要なくなるので、ターゲットプログラムのデバッグ効率を向上させることができる。
本発明の第1実施形態を示すブロック回路図である。 本発明の第1実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。 本発明の第2実施形態を示すブロック回路図である。 本発明の第2実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。 本発明の第2実施形態を使用したターゲットプログラムのデバッグ動作を示す図である。 本発明の第3実施形態を示すブロック回路図である。 本発明の第3実施形態を使用したターゲットプログラムのデバッグ手法を示すフローチャートである。 従来のデバッグ支援装置の一例を示すブロック回路図である。 1/30秒毎にプログラム非同期型の割り込み要求が発生する従来のデバッグ支援装置の通常動作を示す図である。 プログラム非同期型の割り込み要求が発生しない従来のデバッグ支援装置におけるデバッグ動作を示す図である。 プログラム同期型の割り込み要求とプログラム非同期型の割り込み要求とが発生する従来のデバッグ支援装置を使用したターゲットプログラムのデバッグ手法の第1例を示すフローチャートである。 プログラム同期型の割り込み要求とプログラム非同期型の割り込み要求とが発生する従来のデバッグ支援装置を使用したターゲットプログラムのデバッグ手法の第2例を示すフローチャートである。 1/30秒毎にプログラム非同期型の割り込み要求が発生する従来のデバッグ支援装置に特許文献1に記載のデバッグ手法を適用した場合のデバッグ動作を示す図である。
符号の説明
1…プロセッサ
2…グラフィック表示装置
3、4…CPUコア
5…タイマ
6…割り込みコントローラ
7(n)〜7(n+3)…ターゲットプログラムによる非割り込み処理工程
8(n)〜8(n+3)…割り込み要求
9(n−1)〜9(n+2)…ターゲットプログラムによる割り込み処理工程
10(n)、10(n+1)、10(p)…ステップ実行指示
11(n−1)〜11(n+1)、11(p)…ターゲットプログラムによる非割り込み処理工程
12(n)−1〜12(n)−5、12(n+1)−1〜12(n+1)−5、12(n+2)−1〜12(n+2)−5…割り込み要求
13(n)〜13(n+2)…ステップ実行指示
14(n)〜14(n+2)…ターゲットプログラムによる割り込み処理工程
15(n−1)〜15(n+2)…ターゲットプログラムによる非割り込み処理工程
21…CPUコア
22…デバッグ補助装置
23…割り込みコントローラ
24…割り込みマスク部
25…割り込みコントローラ機能部
26−1〜26−5…属性設定レジスタ
27…レジスタ設定経路
31…CPUコア
32…デバッグ補助装置
33…割り込みコントローラ
34…割り込みマスク部
35…割り込みコントローラ機能部
36…マスク一時停止指示部
37…マスク機能ON/OFFスイッチ
38−1〜38−5…属性設定レジスタ
39…レジスタ設定経路
40−1〜40−5…マスク一時停止ステップ実行数設定レジスタ
51…CPUコア
52…デバッグ補助装置
53…割り込みコントローラ
54…割り込みマスク部
55…割り込みコントローラ機能部
56…マスク解除PC値格納部
57…マスク機能ON/OFFスイッチ
58−1〜58−5…属性設定レジスタ
59…レジスタ設定経路
60…マスク解除PC値設定レジスタ

Claims (4)

  1. CPUコアと、割り込みコントローラとを備えるデバッグ支援装置において、
    前記割り込みコントローラは、割り込みマスク部を備え、
    前記割り込みマスク部は、割り込み要求信号毎にプログラム同期型であるかプログラム非同期型であるかの属性を設定する属性設定レジスタを備え、前記CPUコアがステップ実行状態時及びブレーク状態時には、プログラム非同期型の割り込み要求信号をマスクする
    ことを特徴とするデバッグ支援装置。
  2. 前記割り込みコントローラは、前記割り込みマスク部による前記プログラム非同期型の割り込み要求信号に対するマスクを一時停止させるマスク一時停止ステップ実行数を設定するマスク一時停止ステップ実行数設定レジスタを備え、
    前記割り込みマスク部は、前記CPUコアによるステップ実行数が前記マスク一時停止ステップ実行数になる度に、それまでに発生した前記プログラム非同期型の割り込み要求信号に対して1個の割り込み要求信号を出力する
    ことを特徴とする請求項1に記載のデバッグ支援装置。
  3. 前記割り込みコントローラは、前記割り込みマスク部による前記プログラム非同期型の割り込み要求信号に対するマスクを解除させるマスク解除プログラムカウンタ値を設定するマスク解除プログラムカウンタ値設定レジスタを備え、
    前記割り込みマスク部は、前記CPUコア内のプログラムカウンタの値が前記マスク解除プログラムカウンタ値になったときは、前記プログラム非同期型の割り込み要求信号に対するマスクを解除する
    ことを特徴とする請求項1に記載のデバッグ支援装置。
  4. 前記割り込みコントローラは、前記割り込みマスク部のマスク機能を無効にするマスク機能無効化手段を備えることを特徴とする請求項1乃至3のいずれか一項に記載のデバッグ支援装置。
JP2008059135A 2008-03-10 2008-03-10 デバッグ支援装置 Expired - Fee Related JP5130962B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008059135A JP5130962B2 (ja) 2008-03-10 2008-03-10 デバッグ支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008059135A JP5130962B2 (ja) 2008-03-10 2008-03-10 デバッグ支援装置

Publications (2)

Publication Number Publication Date
JP2009217429A true JP2009217429A (ja) 2009-09-24
JP5130962B2 JP5130962B2 (ja) 2013-01-30

Family

ID=41189228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008059135A Expired - Fee Related JP5130962B2 (ja) 2008-03-10 2008-03-10 デバッグ支援装置

Country Status (1)

Country Link
JP (1) JP5130962B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54162942A (en) * 1978-06-14 1979-12-25 Toshiba Corp Step control system
JPS5846448A (ja) * 1981-09-16 1983-03-17 Matsushita Electric Ind Co Ltd 割り込み制御回路
JPS60124746A (ja) * 1983-12-09 1985-07-03 Fujitsu Ltd デ−タ処理装置
JPH0512062A (ja) * 1991-07-02 1993-01-22 Fujitsu Ltd ステツプブレーク処理方式
JP2003044317A (ja) * 2001-07-31 2003-02-14 Casio Electronics Co Ltd Romモニタ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54162942A (en) * 1978-06-14 1979-12-25 Toshiba Corp Step control system
JPS5846448A (ja) * 1981-09-16 1983-03-17 Matsushita Electric Ind Co Ltd 割り込み制御回路
JPS60124746A (ja) * 1983-12-09 1985-07-03 Fujitsu Ltd デ−タ処理装置
JPH0512062A (ja) * 1991-07-02 1993-01-22 Fujitsu Ltd ステツプブレーク処理方式
JP2003044317A (ja) * 2001-07-31 2003-02-14 Casio Electronics Co Ltd Romモニタ

Also Published As

Publication number Publication date
JP5130962B2 (ja) 2013-01-30

Similar Documents

Publication Publication Date Title
JPH0298741A (ja) マルチプロセッサコンピュータにおいてネスト式ループを実行する階層的方法
JP5130962B2 (ja) デバッグ支援装置
CN103309668A (zh) 应用程序未截获异常的处理方法及装置
RU2010149275A (ru) Восстановление управления ресурсом обработки, который исполняет внешний контекст исполнения
EP3486811A1 (en) Simulation device, simulation system, simulation method and simulation program
ATE124552T1 (de) Auffangen eines priviligierten befehlswortes zur kontrolle eines betriebssystems.
US9672135B2 (en) System, method and apparatus for debugging of reactive applications
JP2017084361A (ja) 汎用マイクロプロセッサを用いたplcのデバッグ方法
KR20180019594A (ko) 프로세서 시스템의 프로그램 카운터 구조를 보호하고 인터럽트 요청의 처리를 모니터링하기 위한 방법 및 장치
JPH1091480A (ja) コンピュータプログラムのシミュレーション装置および方法
JP4021670B2 (ja) 半導体集積回路
JP2653411B2 (ja) ブレークポイント設定方法
JPH05233365A (ja) 最適化コードデバッグ方式
JP2006079142A (ja) マルチプロセッサ装置
JPH02270041A (ja) プログラムテスト方式
JP2016184443A5 (ja) 情報表示プログラム、情報表示装置、情報表示方法、配信装置および配信方法
JPH01205349A (ja) 時間待ち可能型デバグ方式
JP3358123B2 (ja) コントローラの入出力シミュレート方法および装置
JPH0581041A (ja) 情報処理装置
JP2998299B2 (ja) プロセッサ制御装置
CN115756779A (zh) 任务迁移的方法、调度器、电子设备及可读存储介质
JP2001147830A (ja) リアルタイムosの状態変更方法
JPH11238002A (ja) シミュレーション方式
JPS62264341A (ja) マイクロプログラム・デバツグ装置
JPH07306792A (ja) 電子計算機システムにおける割込み制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120829

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121009

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121022

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees