JPH05100902A - デバツグ支援機構 - Google Patents
デバツグ支援機構Info
- Publication number
- JPH05100902A JPH05100902A JP3262053A JP26205391A JPH05100902A JP H05100902 A JPH05100902 A JP H05100902A JP 3262053 A JP3262053 A JP 3262053A JP 26205391 A JP26205391 A JP 26205391A JP H05100902 A JPH05100902 A JP H05100902A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- area
- trace
- exception
- 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.)
- Withdrawn
Links
- 238000012545 processing Methods 0.000 claims abstract description 4
- 238000001514 detection method Methods 0.000 claims description 21
- 238000012937 correction Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 101000653426 Homo sapiens Very-long-chain enoyl-CoA reductase Proteins 0.000 description 1
- 102100030747 Very-long-chain enoyl-CoA reductase Human genes 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】 ブランチトレース機構が持つ全ての分岐命令
でブレークするためにオーバーヘッドが大きくなるとい
う欠点を解決し、さらにチューニングの効率化を図る。 【構成】 トレース例外発生条件指定レジスタ31によ
り、CPU1で定義されている分岐命令の種類毎にブラ
ンチトレースを行うか否かの指定を行い、該分岐命令が
条件付きのときにはその条件の真偽の指定も行う。さら
に、領域上限指定レジスタ11及び領域下限指定レジス
タ12により、特定の領域の命令だけを対象としたブラ
ンチトレースを行うための領域指定を行う。
でブレークするためにオーバーヘッドが大きくなるとい
う欠点を解決し、さらにチューニングの効率化を図る。 【構成】 トレース例外発生条件指定レジスタ31によ
り、CPU1で定義されている分岐命令の種類毎にブラ
ンチトレースを行うか否かの指定を行い、該分岐命令が
条件付きのときにはその条件の真偽の指定も行う。さら
に、領域上限指定レジスタ11及び領域下限指定レジス
タ12により、特定の領域の命令だけを対象としたブラ
ンチトレースを行うための領域指定を行う。
Description
【0001】
【産業上の利用分野】本発明は、中央処理装置(CP
U)で実行するプログラムのエラーの検出とそのエラー
の是正を支援するデバッグ支援機構に関するものであ
る。
U)で実行するプログラムのエラーの検出とそのエラー
の是正を支援するデバッグ支援機構に関するものであ
る。
【0002】
【従来の技術】従来、このような分野の技術としては、
例えば次のような文献に記載されるものがあった。 飯塚・田中 共著「ソフトウエア指向アーキテクチャ」
(1985)オーム社、P.205−216 前記文献に記載されているように、プログラムのデバッ
グ作業は、大きく2つの段階に分けることができる。プ
ログラムの論理的な動作を検証する論理デバッグと、チ
ューニング(高速化)である。これらを支援する機構と
して (a) 命令トレース機構 (b) ブレークポイント機構 (c) ブランチトレース機構 等が用いられている。
例えば次のような文献に記載されるものがあった。 飯塚・田中 共著「ソフトウエア指向アーキテクチャ」
(1985)オーム社、P.205−216 前記文献に記載されているように、プログラムのデバッ
グ作業は、大きく2つの段階に分けることができる。プ
ログラムの論理的な動作を検証する論理デバッグと、チ
ューニング(高速化)である。これらを支援する機構と
して (a) 命令トレース機構 (b) ブレークポイント機構 (c) ブランチトレース機構 等が用いられている。
【0003】(a)は、機械命令を1つつづ実行して実
行時の情報を収集分析する方法であり、1命令毎に例外
を発生させることによって実現されていることが多い。 (b)は、プログラムの中断点(ブレークポイント)を
設定し、そこでプログラム実行を中断してその時点の状
態を調べたり、変更したりすることを可能とした方法で
ある。ブレークポイントアドレスを格納するレジスタを
用いた方式や、中断点の命令を別の命令に置き換えて例
外を発生させる方式が一般的である。 (c)は、分岐命令の履歴をとることにより、分岐判定
ミス、飛び先アドレスの指定ミス等のデバッグを支援す
るものである。ブランチトレースの実現方法としては、
ブランチ命令でブランチ成功時に例外を発生する機能を
設けたり、ブランチ系命令でブランチ成功時の命令アド
レスをレジスタに記憶しておき、異常を検出した時、プ
ログラムが読み出せたり、例外発生時に報告させたりす
る方法がある。
行時の情報を収集分析する方法であり、1命令毎に例外
を発生させることによって実現されていることが多い。 (b)は、プログラムの中断点(ブレークポイント)を
設定し、そこでプログラム実行を中断してその時点の状
態を調べたり、変更したりすることを可能とした方法で
ある。ブレークポイントアドレスを格納するレジスタを
用いた方式や、中断点の命令を別の命令に置き換えて例
外を発生させる方式が一般的である。 (c)は、分岐命令の履歴をとることにより、分岐判定
ミス、飛び先アドレスの指定ミス等のデバッグを支援す
るものである。ブランチトレースの実現方法としては、
ブランチ命令でブランチ成功時に例外を発生する機能を
設けたり、ブランチ系命令でブランチ成功時の命令アド
レスをレジスタに記憶しておき、異常を検出した時、プ
ログラムが読み出せたり、例外発生時に報告させたりす
る方法がある。
【0004】
【発明が解決しようとする課題】しかしながら、従来の
デバッグ支援機構では、次のような課題があった。プロ
グラムのチューニングを行う場合、プログラム実行のネ
ックとなるポイントを検出することが重要である。この
ネックポイント検出を支援する機構として、従来技術の
前記(a)〜(c)を適用した場合、次のような問題が
生じる。即ち、前記(a)では、1命令を実行する度に
ブレークするので、オーバーヘッド(必要動作時間)が
大きい。前記(b)では、複数のブレークポイントを設
定した場合、オーバーヘッドが大きくなる。さらに、前
記(c)では、CPUで定義されている全ての分岐命令
でブレークするため、オーバーヘッドが大きい。従っ
て、未だ技術的に充分満足のゆくデバッグ支援機構を提
供することが困難であった。
デバッグ支援機構では、次のような課題があった。プロ
グラムのチューニングを行う場合、プログラム実行のネ
ックとなるポイントを検出することが重要である。この
ネックポイント検出を支援する機構として、従来技術の
前記(a)〜(c)を適用した場合、次のような問題が
生じる。即ち、前記(a)では、1命令を実行する度に
ブレークするので、オーバーヘッド(必要動作時間)が
大きい。前記(b)では、複数のブレークポイントを設
定した場合、オーバーヘッドが大きくなる。さらに、前
記(c)では、CPUで定義されている全ての分岐命令
でブレークするため、オーバーヘッドが大きい。従っ
て、未だ技術的に充分満足のゆくデバッグ支援機構を提
供することが困難であった。
【0005】本発明は、前記従来技術が持っていた課題
として、論理デバッグのチューニングを支援するための
従来のブランチトレース機構が持つ、オーバーヘッドが
大きいという点について解決したデバッグ支援機構を提
供するものである。
として、論理デバッグのチューニングを支援するための
従来のブランチトレース機構が持つ、オーバーヘッドが
大きいという点について解決したデバッグ支援機構を提
供するものである。
【0006】
【課題を解決するための手段】本発明は、前記課題を解
決するために、CPUで実行するプログラムのエラーの
検出とそのエラーの是正を支援するデバッグ支援機構に
おいて、前記CPUで定義されている分岐命令の種類毎
にブランチトレースを行うか否かの指定を行い、該分岐
命令が条件付きのときにはその条件の真偽の指定も行う
ブランチトレース指定手段と、特定の領域の命令だけを
対象としたブランチトレースを行うための領域指定を行
う領域指定手段とを、備えている。
決するために、CPUで実行するプログラムのエラーの
検出とそのエラーの是正を支援するデバッグ支援機構に
おいて、前記CPUで定義されている分岐命令の種類毎
にブランチトレースを行うか否かの指定を行い、該分岐
命令が条件付きのときにはその条件の真偽の指定も行う
ブランチトレース指定手段と、特定の領域の命令だけを
対象としたブランチトレースを行うための領域指定を行
う領域指定手段とを、備えている。
【0007】
【作用】本発明によれば、以上のようにデバッグ支援機
構を構成したので、ブランチトレース指定手段では、C
PUで定義されている命令実行の種類毎にブランチトレ
ースを行うか否かの指定が行え、さらに分岐命令が条件
付きであるときには条件の指定も行える。また、領域指
定手段では、特定の領域の命令だけを対象としたブラン
チトレースを行うための領域指定が行え、それによって
チューニングの効率化が図れる。従って、前記課題を解
決できるのである。
構を構成したので、ブランチトレース指定手段では、C
PUで定義されている命令実行の種類毎にブランチトレ
ースを行うか否かの指定が行え、さらに分岐命令が条件
付きであるときには条件の指定も行える。また、領域指
定手段では、特定の領域の命令だけを対象としたブラン
チトレースを行うための領域指定が行え、それによって
チューニングの効率化が図れる。従って、前記課題を解
決できるのである。
【0008】
【実施例】図1は、本発明の実施例を示すデバッグ支援
機構の要部構成図である。このデバッグ支援機構は、C
PU1で実行するプログラムエラーの検出とそのエラー
の是正を支援するものであり、ブランチトレースを行う
領域の判定及び指定を行う領域判定回路10と、ブラン
チトレース等の種々の命令を解読する命令解読回路20
と、ブランチトレースを行うか否かの検出及び指定等を
行うトレース例外検出回路30とを、備えている。
機構の要部構成図である。このデバッグ支援機構は、C
PU1で実行するプログラムエラーの検出とそのエラー
の是正を支援するものであり、ブランチトレースを行う
領域の判定及び指定を行う領域判定回路10と、ブラン
チトレース等の種々の命令を解読する命令解読回路20
と、ブランチトレースを行うか否かの検出及び指定等を
行うトレース例外検出回路30とを、備えている。
【0009】領域判定回路10は、ブランチトレースを
行う命令領域の上限を指定する32ビットの命令上限指
定レジスタ(UCAR)11と、ブランチトレースを行
う命令領域の下限を指定する32ビットの命令下限指定
レジスタ(LCAR)12と、プログラムカウンタ(P
C)13とを備えている。領域上限指定レジスタ11及
びプログラムカウンタ13は比較器14に接続され、さ
らに領域下限指定レジスタ12及びプログラムカウンタ
13が、比較器15に接続されている。各比較器14,
15の出力信号UPPER,LOWERは、トレース例
外検出回路30へ入力される。
行う命令領域の上限を指定する32ビットの命令上限指
定レジスタ(UCAR)11と、ブランチトレースを行
う命令領域の下限を指定する32ビットの命令下限指定
レジスタ(LCAR)12と、プログラムカウンタ(P
C)13とを備えている。領域上限指定レジスタ11及
びプログラムカウンタ13は比較器14に接続され、さ
らに領域下限指定レジスタ12及びプログラムカウンタ
13が、比較器15に接続されている。各比較器14,
15の出力信号UPPER,LOWERは、トレース例
外検出回路30へ入力される。
【0010】命令解読回路20は、CPU1で実行する
命令の解読を行い、その解読結果をトレース例外検出回
路30へ与える回路であり、実行中の命令を保持する命
令保持レジスタ(CODEREG)21と、該レジスタ
21の内容を解読して各種の制御信号INST−BR
A,INST−BRACC,INST−JMP,INS
T−JMPCC,INST−BSR,INST−RET
をトレース例外検出回路30へ与える命令解読器22と
で、構成されている。
命令の解読を行い、その解読結果をトレース例外検出回
路30へ与える回路であり、実行中の命令を保持する命
令保持レジスタ(CODEREG)21と、該レジスタ
21の内容を解読して各種の制御信号INST−BR
A,INST−BRACC,INST−JMP,INS
T−JMPCC,INST−BSR,INST−RET
をトレース例外検出回路30へ与える命令解読器22と
で、構成されている。
【0011】トレース例外検出回路30は、領域判定回
路10及び命令解読回路20の出力信号に基づき、命令
領域の検出及び指定を行う回路であり、トレース例外を
発生させる条件を指定する32ビットのトレース例外発
生条件指定レジスタ(TECR)31と、トレース例外
検出回路32とで、構成されている。トレース例外検出
回路32は、トレース例外発生条件指定レジスタ31、
領域判定回路10の出力、命令解読回路20の出力、及
び条件付き分岐命令における条件の真偽を示す制御信号
CCに基づき、トレース例外を発生させるか否かを決定
し、その決定結果に応じた信号TREXCPを出力する
回路である。
路10及び命令解読回路20の出力信号に基づき、命令
領域の検出及び指定を行う回路であり、トレース例外を
発生させる条件を指定する32ビットのトレース例外発
生条件指定レジスタ(TECR)31と、トレース例外
検出回路32とで、構成されている。トレース例外検出
回路32は、トレース例外発生条件指定レジスタ31、
領域判定回路10の出力、命令解読回路20の出力、及
び条件付き分岐命令における条件の真偽を示す制御信号
CCに基づき、トレース例外を発生させるか否かを決定
し、その決定結果に応じた信号TREXCPを出力する
回路である。
【0012】領域上限指定レジスタ11、領域下限指定
レジスタ12、及びトレース例外発生条件指定レジスタ
31は特種レジスタである。その内、領域上限指定レジ
スタ11及び領域下限指定レジスタ12は、領域指定レ
ジスタ、つまり領域指定手段としての機能を有してい
る。さらに、トレース例外発生条件指定レジスタ31
は、ブランチトレース指定手段としての機能を有してい
る。
レジスタ12、及びトレース例外発生条件指定レジスタ
31は特種レジスタである。その内、領域上限指定レジ
スタ11及び領域下限指定レジスタ12は、領域指定レ
ジスタ、つまり領域指定手段としての機能を有してい
る。さらに、トレース例外発生条件指定レジスタ31
は、ブランチトレース指定手段としての機能を有してい
る。
【0013】次に、図1におけるデバッグ支援機構の動
作を、図2及び図3を参照しつつ説明する。図2は、C
PU1で定義されている分岐命令の一覧を示す図、及び
図3はトレース例外検出回路30の論理を示す図であ
る。図1のデバッグ支援機構は、例えば図2に示すよう
な分岐命令に対してそのデバッグを支援する機能を有し
ている。図2の分岐命令は、次のような内容である。
作を、図2及び図3を参照しつつ説明する。図2は、C
PU1で定義されている分岐命令の一覧を示す図、及び
図3はトレース例外検出回路30の論理を示す図であ
る。図1のデバッグ支援機構は、例えば図2に示すよう
な分岐命令に対してそのデバッグを支援する機能を有し
ている。図2の分岐命令は、次のような内容である。
【0014】(i)は、プログラムカウンタ(PC)1
3からオフセットdで示されるアドレスに、無条件に分
岐する命令である。 (ii)は、指定した条件が成立した場合、プログラムカ
ウンタ(PC)13からオフセットdで示されるアドレ
スに、分岐する命令である。 (iii)は、jで示される絶対アドレスに無条件に分岐す
る命令である。 (iV)は、指定した条件が成立した場合、jで示される
絶対アドレスに分岐する命令である。 (v)は、プログラムカウンタ(PC)13からオフセ
ットdで示されるアドレスにあるサブルーチンに、ジャ
ンプする命令である。 (vi)は、サブルーチンからcaller(呼)側へ戻
る命令である。
3からオフセットdで示されるアドレスに、無条件に分
岐する命令である。 (ii)は、指定した条件が成立した場合、プログラムカ
ウンタ(PC)13からオフセットdで示されるアドレ
スに、分岐する命令である。 (iii)は、jで示される絶対アドレスに無条件に分岐す
る命令である。 (iV)は、指定した条件が成立した場合、jで示される
絶対アドレスに分岐する命令である。 (v)は、プログラムカウンタ(PC)13からオフセ
ットdで示されるアドレスにあるサブルーチンに、ジャ
ンプする命令である。 (vi)は、サブルーチンからcaller(呼)側へ戻
る命令である。
【0015】領域判定回路10において、プログラムカ
ウンタ13の値は、比較器14で領域上限指定レジスタ
11の内容と比較される。プログラムカウンタ13の値
が領域上限指定レジスタ11の値以下であれば、比較器
14の出力信号UPPERの値が1となる。さらに、プ
ログラムカウンタ13の値は比較器15で領域下限指定
レジスタ12の内容と比較される。プログラムカウンタ
13の値が領域下限指定レジスタ12の値以上であれ
ば、その比較器15の出力信号LOWERの値が1とな
る。なお、領域の指定を行う場合はLCAR<UCAR
となるようにする。これらの比較器14,15の出力信
号UPPER,LOWERは、トレース例外検出回路3
2へ与えられる。
ウンタ13の値は、比較器14で領域上限指定レジスタ
11の内容と比較される。プログラムカウンタ13の値
が領域上限指定レジスタ11の値以下であれば、比較器
14の出力信号UPPERの値が1となる。さらに、プ
ログラムカウンタ13の値は比較器15で領域下限指定
レジスタ12の内容と比較される。プログラムカウンタ
13の値が領域下限指定レジスタ12の値以上であれ
ば、その比較器15の出力信号LOWERの値が1とな
る。なお、領域の指定を行う場合はLCAR<UCAR
となるようにする。これらの比較器14,15の出力信
号UPPER,LOWERは、トレース例外検出回路3
2へ与えられる。
【0016】命令解読回路20において、命令解読器2
2は、命令保持レジスタ21の内容を解読し、各種の制
御信号INST−BRA,INST−BRACC,IN
ST−JMP,INST−JMPCC,INST−BS
R,INST−RETをトレース例外検出回路32へ出
力する。即ち、 命令が無条件相対分岐命令である場合、INST−
BRAを1にする。 命令が条件付き相対分岐命令である場合、INST
−BRACCを1にする。 命令が無条件絶対分岐命令である場合、INST−
JMPを1にする。 命令が条件付き絶対分岐命令である場合、INST
−JMPCCを1にする。 命令がサブルーチン分岐命令である場合、INST
−BSRを1にする。 命令がサブルーチン戻り命令である場合、INST
−RETを1にする。 また、トレース例外検出回路30において、トレース例
外発生条件指定レジスタ31は、トレース例外検出回路
32に対してトレース例外を発生させる条件を指定す
る。このレジスタ31は、32ビットのレジスタであ
り、各ビットが次の(a)〜(i)のように割り当てら
れる。なお、9〜31ビットは未使用である。
2は、命令保持レジスタ21の内容を解読し、各種の制
御信号INST−BRA,INST−BRACC,IN
ST−JMP,INST−JMPCC,INST−BS
R,INST−RETをトレース例外検出回路32へ出
力する。即ち、 命令が無条件相対分岐命令である場合、INST−
BRAを1にする。 命令が条件付き相対分岐命令である場合、INST
−BRACCを1にする。 命令が無条件絶対分岐命令である場合、INST−
JMPを1にする。 命令が条件付き絶対分岐命令である場合、INST
−JMPCCを1にする。 命令がサブルーチン分岐命令である場合、INST
−BSRを1にする。 命令がサブルーチン戻り命令である場合、INST
−RETを1にする。 また、トレース例外検出回路30において、トレース例
外発生条件指定レジスタ31は、トレース例外検出回路
32に対してトレース例外を発生させる条件を指定す
る。このレジスタ31は、32ビットのレジスタであ
り、各ビットが次の(a)〜(i)のように割り当てら
れる。なお、9〜31ビットは未使用である。
【0017】(a)ビット0 1:無条件相対分岐命令を実行したときに例外を発生す
る。 0:無条件相対分岐命令を実行しても例外を発生させな
い。 (b)ビット1 1:条件付き相対分岐命令を実行し、かつ条件が真であ
ったときに例外を発生する。 0:条件付き相対分岐命令を実行し、かつ条件が真であ
っても例外を発生させない。 (c)ビット2 1:条件付き相対分岐命令を実行し、かつ条件が偽であ
ったときに例外を発生する。 0:条件付き相対分岐命令を実行し、かつ条件が偽であ
っても例外を発生させない。 (d)ビット3 1:無条件絶対分岐命令を実行したときに例外を発生す
る。 0:無条件絶対分岐命令を実行しても例外を発生させな
い。 (e)ビット4 1:条件付き絶対分岐命令を実行し、かつ条件が真であ
ったときに例外を発生する。 0:条件付き絶対分岐命令を実行し、かつ条件が真であ
っても例外を発生させない。 (f)ビット5 1:条件付き絶対分岐命令を実行し、かつ条件が偽であ
ったときに例外を発生する。 0:条件付き絶対分岐命令を実行し、かつ条件が偽であ
っても例外を発生させない。 (g)ビット6 1:サブルーチン分岐命令を実行したときに例外を発生
する。 0:サブルーチン分岐命令を実行しても例外を発生させ
ない。 (h)ビット7 1:サブルーチン戻り命令を実行したときに例外を発生
する。 0:サブルーチン戻り命令を実行しても例外を発生させ
ない。 (i)ビット8 1:領域指定を有効とする。 0:領域指定を無効とする。
る。 0:無条件相対分岐命令を実行しても例外を発生させな
い。 (b)ビット1 1:条件付き相対分岐命令を実行し、かつ条件が真であ
ったときに例外を発生する。 0:条件付き相対分岐命令を実行し、かつ条件が真であ
っても例外を発生させない。 (c)ビット2 1:条件付き相対分岐命令を実行し、かつ条件が偽であ
ったときに例外を発生する。 0:条件付き相対分岐命令を実行し、かつ条件が偽であ
っても例外を発生させない。 (d)ビット3 1:無条件絶対分岐命令を実行したときに例外を発生す
る。 0:無条件絶対分岐命令を実行しても例外を発生させな
い。 (e)ビット4 1:条件付き絶対分岐命令を実行し、かつ条件が真であ
ったときに例外を発生する。 0:条件付き絶対分岐命令を実行し、かつ条件が真であ
っても例外を発生させない。 (f)ビット5 1:条件付き絶対分岐命令を実行し、かつ条件が偽であ
ったときに例外を発生する。 0:条件付き絶対分岐命令を実行し、かつ条件が偽であ
っても例外を発生させない。 (g)ビット6 1:サブルーチン分岐命令を実行したときに例外を発生
する。 0:サブルーチン分岐命令を実行しても例外を発生させ
ない。 (h)ビット7 1:サブルーチン戻り命令を実行したときに例外を発生
する。 0:サブルーチン戻り命令を実行しても例外を発生させ
ない。 (i)ビット8 1:領域指定を有効とする。 0:領域指定を無効とする。
【0018】なお、レジスタ31中のビット8はビット
0から7までの付加条件となる。例えば、ビット8とビ
ット0がセットされていた場合、例外発生の条件は“無
条件相対分岐命令を実行し”、かつ“その命令が領域下
限指定レジスタ12と領域上限指定レジスタ11で指定
された領域にあった”場合となる。
0から7までの付加条件となる。例えば、ビット8とビ
ット0がセットされていた場合、例外発生の条件は“無
条件相対分岐命令を実行し”、かつ“その命令が領域下
限指定レジスタ12と領域上限指定レジスタ11で指定
された領域にあった”場合となる。
【0019】トレース例外検出回路32では、図3に示
す論理に従い、トレース例外発生条件指定レジスタ31
の8番目のビットが1の場合と0の場合とに場合分け
し、トレース例外を発生させるかどうかを決定し、その
決定結果の信号TREXCPを出力する。トレース例外
を発生させる場合は、信号TREXCPを1にする。こ
れにより、CPU1で定義されている分岐命令の内、必
要な分岐命令のみでブレークする。そのため、オーバー
ヘッドが小さくなる。
す論理に従い、トレース例外発生条件指定レジスタ31
の8番目のビットが1の場合と0の場合とに場合分け
し、トレース例外を発生させるかどうかを決定し、その
決定結果の信号TREXCPを出力する。トレース例外
を発生させる場合は、信号TREXCPを1にする。こ
れにより、CPU1で定義されている分岐命令の内、必
要な分岐命令のみでブレークする。そのため、オーバー
ヘッドが小さくなる。
【0020】以上のように、本実施例のデバッグ支援機
構により、プログラムのチューニングを効率よく行うこ
とが可能である。その具体的な利点(1)〜(3)を、
図4及び図5を参照しつつ説明する。なお、図4はプロ
グラム例1を示すフローチャート、図5はプログラム例
2を示すフローチャートである。
構により、プログラムのチューニングを効率よく行うこ
とが可能である。その具体的な利点(1)〜(3)を、
図4及び図5を参照しつつ説明する。なお、図4はプロ
グラム例1を示すフローチャート、図5はプログラム例
2を示すフローチャートである。
【0021】(1) 領域指定ができることによる利点 図4に示すプログラム例1において、func −1,…,
func −nは関数とする。このプログラム例1で関数f
unc −2をチューニングする場合を考える。関数f
unc −2の命令列がロードされている領域を、領域上限
指定レジスタ11及び領域下限指定レジスタ12からな
る領域指定レジスタで指定することにより、領域外(チ
ューニングの対象とする関数以外)でトレース例外が発
生することがなくなる。そのため、大変効率がよい。
func −nは関数とする。このプログラム例1で関数f
unc −2をチューニングする場合を考える。関数f
unc −2の命令列がロードされている領域を、領域上限
指定レジスタ11及び領域下限指定レジスタ12からな
る領域指定レジスタで指定することにより、領域外(チ
ューニングの対象とする関数以外)でトレース例外が発
生することがなくなる。そのため、大変効率がよい。
【0022】(2) 分岐命令の種類毎にトレース例外
の発生の可否を指定できるこによる利点 図5のプログラム例2は、ある条件が満足するときに処
理Aを行い、不満足のときに処理Bを行うフローチャー
トであるが、ここで処理Aをチューニングする場合を考
える。トレース例外発生条件指定レジスタ31により、
if文の条件が真であったときのみ例外が発生するよう
に指定すると、処理Bに制御が移った場合、トレース例
外が発生しないので、大変効率がよい。
の発生の可否を指定できるこによる利点 図5のプログラム例2は、ある条件が満足するときに処
理Aを行い、不満足のときに処理Bを行うフローチャー
トであるが、ここで処理Aをチューニングする場合を考
える。トレース例外発生条件指定レジスタ31により、
if文の条件が真であったときのみ例外が発生するよう
に指定すると、処理Bに制御が移った場合、トレース例
外が発生しないので、大変効率がよい。
【0023】(3) その他の利点 トレース例外発生条件指定レジスタ31により、プログ
ラム例1でサブルーチン分岐命令の実行のときにだけト
レース例外が発生するようにすると、各関数f
unc −1,…,func −nの実行時間を最小のオーバー
ヘッドで測定できるので、チューニングの効率が上が
る。
ラム例1でサブルーチン分岐命令の実行のときにだけト
レース例外が発生するようにすると、各関数f
unc −1,…,func −nの実行時間を最小のオーバー
ヘッドで測定できるので、チューニングの効率が上が
る。
【0024】なお、本発明は、上記実施例に限定され
ず、種々の変形が可能である。例えば、図1において、
領域上限指定レジスタ11及び領域下限指定レジスタ1
2からなる領域指定レジスタを、他の構成の領域指定手
段で構成することも可能である。また、トレース例外発
生条件指定レジスタ31は、他の記憶手段を用いたブラ
ンチトレース指定手段で構成してもよい。さらに、デバ
ッグ支援効率を向上させるための機能ブロック等を図1
に設けてもよい。
ず、種々の変形が可能である。例えば、図1において、
領域上限指定レジスタ11及び領域下限指定レジスタ1
2からなる領域指定レジスタを、他の構成の領域指定手
段で構成することも可能である。また、トレース例外発
生条件指定レジスタ31は、他の記憶手段を用いたブラ
ンチトレース指定手段で構成してもよい。さらに、デバ
ッグ支援効率を向上させるための機能ブロック等を図1
に設けてもよい。
【0025】
【発明の効果】以上詳細に説明したように、本発明によ
れば、ブランチトレース指定手段及び領域指定手段を設
けたので、ブランチトレース手段により、分岐命令の種
類毎にブランチトレースを行うか否かの指定ができ、さ
らに分岐命令が条件付きであるときには条件の真偽の指
定も行える。その上、領域指定手段により、特定の領域
の命令だけを対象としたブランチトレースが行える。こ
れにより、ブレーク数が減少してオーバーヘッドが小さ
くなるばかりか、プログラムのチューニング効率がより
向上する。
れば、ブランチトレース指定手段及び領域指定手段を設
けたので、ブランチトレース手段により、分岐命令の種
類毎にブランチトレースを行うか否かの指定ができ、さ
らに分岐命令が条件付きであるときには条件の真偽の指
定も行える。その上、領域指定手段により、特定の領域
の命令だけを対象としたブランチトレースが行える。こ
れにより、ブレーク数が減少してオーバーヘッドが小さ
くなるばかりか、プログラムのチューニング効率がより
向上する。
【図1】本発明の実施例を示すデバッグ支援機構の要部
構成図である。
構成図である。
【図2】CPUで定義されている分岐命令の一覧を示す
図である。
図である。
【図3】トレース例外検出回路の論理を示す図である。
【図4】プログラム例1を示すフローチャートである。
【図5】プログラム例2を示すフローチャートである。
1 CPU 10 領域判定回路 11 領域上限指定レジスタ 12 領域下限指定レジスタ 20 命令解読回路 30 トレース例外検出回路 31 トレース例外発生条件指定レジスタ 32 トレース例外検出回路
フロントページの続き (72)発明者 加藤 研児 東京都港区虎ノ門1丁目7番12号 沖電気 工業株式会社内
Claims (1)
- 【請求項1】 中央処理装置で実行するプログラムのエ
ラーの検出とそのエラーの是正を支援するデバッグ支援
機構において、 前記中央処理装置で定義されている分岐命令の種類毎に
ブランチトレースを行うか否かの指定を行い、該分岐命
令が条件付きのときにはその条件の真偽の指定も行うブ
ランチトレース指定手段と、 特定の領域の命令だけを対象としたブランチトレースを
行うための領域指定を行う領域指定手段とを、 備えたことを特徴とするデバッグ支援機構。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3262053A JPH05100902A (ja) | 1991-10-09 | 1991-10-09 | デバツグ支援機構 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3262053A JPH05100902A (ja) | 1991-10-09 | 1991-10-09 | デバツグ支援機構 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05100902A true JPH05100902A (ja) | 1993-04-23 |
Family
ID=17370382
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3262053A Withdrawn JPH05100902A (ja) | 1991-10-09 | 1991-10-09 | デバツグ支援機構 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05100902A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5901283A (en) * | 1996-09-04 | 1999-05-04 | Mitsubishi Electric Semiconductor Software Co., Ltd | Microcomputer |
| JP2012190137A (ja) * | 2011-03-09 | 2012-10-04 | Lapis Semiconductor Co Ltd | エミュレータ装置 |
-
1991
- 1991-10-09 JP JP3262053A patent/JPH05100902A/ja not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5901283A (en) * | 1996-09-04 | 1999-05-04 | Mitsubishi Electric Semiconductor Software Co., Ltd | Microcomputer |
| JP2012190137A (ja) * | 2011-03-09 | 2012-10-04 | Lapis Semiconductor Co Ltd | エミュレータ装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5386565A (en) | Method and system for controlling/monitoring computer system having plural operating systems to run thereon | |
| US5142679A (en) | Method and apparatus for collecting execution status data of structured program | |
| JP2005317023A (ja) | データ処理装置のブレークポイント論理ユニット、デバッグ論理、およびブレークポイントの方法 | |
| US6611909B1 (en) | Method and apparatus for dynamically translating program instructions to microcode instructions | |
| US4742466A (en) | System for measuring path coverage represented by the degree of passage of execution paths in a program | |
| US7376820B2 (en) | Information processing unit, and exception processing method for specific application-purpose operation instruction | |
| US7620802B2 (en) | Instruction execution device, debugging method, debugging device, and debugging program | |
| US6654877B1 (en) | System and method for selectively executing computer code | |
| US6643769B1 (en) | System and method for enabling selective execution of computer code | |
| CN101187858A (zh) | 一种risc处理器装置及其多模式下数据处理方法 | |
| JPH05100902A (ja) | デバツグ支援機構 | |
| US20060041788A1 (en) | Protecting code from breakpoints | |
| US20050050524A1 (en) | Generating software test information | |
| US7631166B1 (en) | Processing instruction without operand by inferring related operation and operand address from previous instruction for extended precision computation | |
| US20030084272A1 (en) | Handling problematic events in a data processing apparatus | |
| JP2525492B2 (ja) | プログラマブルコントロ―ラ | |
| EP0569987A1 (en) | Microprocessor incorporating cache memory enabling efficient debugging | |
| JP2581565B2 (ja) | ガード付命令を実行するデータ処理装置 | |
| JP2646957B2 (ja) | キャッシュ内蔵マイクロプロセッサ及びそのトレースシステム | |
| JPH04145544A (ja) | デバッグ装置 | |
| JP3068578B2 (ja) | インサーキットエミュレータおよび飽和演算処理方法 | |
| JPH05100896A (ja) | デバツグ支援機構 | |
| JP3114909B2 (ja) | プログラマブルコントローラの演算エラー処理方法 | |
| JPH01231126A (ja) | 情報処理装置 | |
| JPH08241225A (ja) | 評価装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990107 |