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
Application number
JP3262053A
Other languages
English (en)
Inventor
Rimiko Iwanaga
理美子 岩永
Teruhiko Ohara
輝彦 大原
Koichi Takeda
浩一 武田
Kenji Katou
研児 加藤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP3262053A priority Critical patent/JPH05100902A/ja
Publication of JPH05100902A publication Critical patent/JPH05100902A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 ブランチトレース機構が持つ全ての分岐命令
でブレークするためにオーバーヘッドが大きくなるとい
う欠点を解決し、さらにチューニングの効率化を図る。 【構成】 トレース例外発生条件指定レジスタ31によ
り、CPU1で定義されている分岐命令の種類毎にブラ
ンチトレースを行うか否かの指定を行い、該分岐命令が
条件付きのときにはその条件の真偽の指定も行う。さら
に、領域上限指定レジスタ11及び領域下限指定レジス
タ12により、特定の領域の命令だけを対象としたブラ
ンチトレースを行うための領域指定を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、中央処理装置(CP
U)で実行するプログラムのエラーの検出とそのエラー
の是正を支援するデバッグ支援機構に関するものであ
る。
【0002】
【従来の技術】従来、このような分野の技術としては、
例えば次のような文献に記載されるものがあった。 飯塚・田中 共著「ソフトウエア指向アーキテクチャ」
(1985)オーム社、P.205−216 前記文献に記載されているように、プログラムのデバッ
グ作業は、大きく2つの段階に分けることができる。プ
ログラムの論理的な動作を検証する論理デバッグと、チ
ューニング(高速化)である。これらを支援する機構と
して (a) 命令トレース機構 (b) ブレークポイント機構 (c) ブランチトレース機構 等が用いられている。
【0003】(a)は、機械命令を1つつづ実行して実
行時の情報を収集分析する方法であり、1命令毎に例外
を発生させることによって実現されていることが多い。 (b)は、プログラムの中断点(ブレークポイント)を
設定し、そこでプログラム実行を中断してその時点の状
態を調べたり、変更したりすることを可能とした方法で
ある。ブレークポイントアドレスを格納するレジスタを
用いた方式や、中断点の命令を別の命令に置き換えて例
外を発生させる方式が一般的である。 (c)は、分岐命令の履歴をとることにより、分岐判定
ミス、飛び先アドレスの指定ミス等のデバッグを支援す
るものである。ブランチトレースの実現方法としては、
ブランチ命令でブランチ成功時に例外を発生する機能を
設けたり、ブランチ系命令でブランチ成功時の命令アド
レスをレジスタに記憶しておき、異常を検出した時、プ
ログラムが読み出せたり、例外発生時に報告させたりす
る方法がある。
【0004】
【発明が解決しようとする課題】しかしながら、従来の
デバッグ支援機構では、次のような課題があった。プロ
グラムのチューニングを行う場合、プログラム実行のネ
ックとなるポイントを検出することが重要である。この
ネックポイント検出を支援する機構として、従来技術の
前記(a)〜(c)を適用した場合、次のような問題が
生じる。即ち、前記(a)では、1命令を実行する度に
ブレークするので、オーバーヘッド(必要動作時間)が
大きい。前記(b)では、複数のブレークポイントを設
定した場合、オーバーヘッドが大きくなる。さらに、前
記(c)では、CPUで定義されている全ての分岐命令
でブレークするため、オーバーヘッドが大きい。従っ
て、未だ技術的に充分満足のゆくデバッグ支援機構を提
供することが困難であった。
【0005】本発明は、前記従来技術が持っていた課題
として、論理デバッグのチューニングを支援するための
従来のブランチトレース機構が持つ、オーバーヘッドが
大きいという点について解決したデバッグ支援機構を提
供するものである。
【0006】
【課題を解決するための手段】本発明は、前記課題を解
決するために、CPUで実行するプログラムのエラーの
検出とそのエラーの是正を支援するデバッグ支援機構に
おいて、前記CPUで定義されている分岐命令の種類毎
にブランチトレースを行うか否かの指定を行い、該分岐
命令が条件付きのときにはその条件の真偽の指定も行う
ブランチトレース指定手段と、特定の領域の命令だけを
対象としたブランチトレースを行うための領域指定を行
う領域指定手段とを、備えている。
【0007】
【作用】本発明によれば、以上のようにデバッグ支援機
構を構成したので、ブランチトレース指定手段では、C
PUで定義されている命令実行の種類毎にブランチトレ
ースを行うか否かの指定が行え、さらに分岐命令が条件
付きであるときには条件の指定も行える。また、領域指
定手段では、特定の領域の命令だけを対象としたブラン
チトレースを行うための領域指定が行え、それによって
チューニングの効率化が図れる。従って、前記課題を解
決できるのである。
【0008】
【実施例】図1は、本発明の実施例を示すデバッグ支援
機構の要部構成図である。このデバッグ支援機構は、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へ入力される。
【0010】命令解読回路20は、CPU1で実行する
命令の解読を行い、その解読結果をトレース例外検出回
路30へ与える回路であり、実行中の命令を保持する命
令保持レジスタ(CODEREG)21と、該レジスタ
21の内容を解読して各種の制御信号INSTBR
A,INSTBRACC,INSTJMP,INS
JMPCC,INSTBSR,INSTRET
をトレース例外検出回路30へ与える命令解読器22と
で、構成されている。
【0011】トレース例外検出回路30は、領域判定回
路10及び命令解読回路20の出力信号に基づき、命令
領域の検出及び指定を行う回路であり、トレース例外を
発生させる条件を指定する32ビットのトレース例外発
生条件指定レジスタ(TECR)31と、トレース例外
検出回路32とで、構成されている。トレース例外検出
回路32は、トレース例外発生条件指定レジスタ31、
領域判定回路10の出力、命令解読回路20の出力、及
び条件付き分岐命令における条件の真偽を示す制御信号
CCに基づき、トレース例外を発生させるか否かを決定
し、その決定結果に応じた信号TREXCPを出力する
回路である。
【0012】領域上限指定レジスタ11、領域下限指定
レジスタ12、及びトレース例外発生条件指定レジスタ
31は特種レジスタである。その内、領域上限指定レジ
スタ11及び領域下限指定レジスタ12は、領域指定レ
ジスタ、つまり領域指定手段としての機能を有してい
る。さらに、トレース例外発生条件指定レジスタ31
は、ブランチトレース指定手段としての機能を有してい
る。
【0013】次に、図1におけるデバッグ支援機構の動
作を、図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(呼)側へ戻
る命令である。
【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へ与えられる。
【0016】命令解読回路20において、命令解読器2
2は、命令保持レジスタ21の内容を解読し、各種の制
御信号INSTBRA,INSTBRACC,IN
STJMP,INSTJMPCC,INSTBS
R,INSTRETをトレース例外検出回路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:領域指定を無効とする。
【0018】なお、レジスタ31中のビット8はビット
0から7までの付加条件となる。例えば、ビット8とビ
ット0がセットされていた場合、例外発生の条件は“無
条件相対分岐命令を実行し”、かつ“その命令が領域下
限指定レジスタ12と領域上限指定レジスタ11で指定
された領域にあった”場合となる。
【0019】トレース例外検出回路32では、図3に示
す論理に従い、トレース例外発生条件指定レジスタ31
の8番目のビットが1の場合と0の場合とに場合分け
し、トレース例外を発生させるかどうかを決定し、その
決定結果の信号TREXCPを出力する。トレース例外
を発生させる場合は、信号TREXCPを1にする。こ
れにより、CPU1で定義されている分岐命令の内、必
要な分岐命令のみでブレークする。そのため、オーバー
ヘッドが小さくなる。
【0020】以上のように、本実施例のデバッグ支援機
構により、プログラムのチューニングを効率よく行うこ
とが可能である。その具体的な利点(1)〜(3)を、
図4及び図5を参照しつつ説明する。なお、図4はプロ
グラム例1を示すフローチャート、図5はプログラム例
2を示すフローチャートである。
【0021】(1) 領域指定ができることによる利点 図4に示すプログラム例1において、func −1,…,
unc −nは関数とする。このプログラム例1で関数f
unc −2をチューニングする場合を考える。関数f
unc −2の命令列がロードされている領域を、領域上限
指定レジスタ11及び領域下限指定レジスタ12からな
る領域指定レジスタで指定することにより、領域外(チ
ューニングの対象とする関数以外)でトレース例外が発
生することがなくなる。そのため、大変効率がよい。
【0022】(2) 分岐命令の種類毎にトレース例外
の発生の可否を指定できるこによる利点 図5のプログラム例2は、ある条件が満足するときに処
理Aを行い、不満足のときに処理Bを行うフローチャー
トであるが、ここで処理Aをチューニングする場合を考
える。トレース例外発生条件指定レジスタ31により、
if文の条件が真であったときのみ例外が発生するよう
に指定すると、処理Bに制御が移った場合、トレース例
外が発生しないので、大変効率がよい。
【0023】(3) その他の利点 トレース例外発生条件指定レジスタ31により、プログ
ラム例1でサブルーチン分岐命令の実行のときにだけト
レース例外が発生するようにすると、各関数f
unc −1,…,func −nの実行時間を最小のオーバー
ヘッドで測定できるので、チューニングの効率が上が
る。
【0024】なお、本発明は、上記実施例に限定され
ず、種々の変形が可能である。例えば、図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. 【請求項1】 中央処理装置で実行するプログラムのエ
    ラーの検出とそのエラーの是正を支援するデバッグ支援
    機構において、 前記中央処理装置で定義されている分岐命令の種類毎に
    ブランチトレースを行うか否かの指定を行い、該分岐命
    令が条件付きのときにはその条件の真偽の指定も行うブ
    ランチトレース指定手段と、 特定の領域の命令だけを対象としたブランチトレースを
    行うための領域指定を行う領域指定手段とを、 備えたことを特徴とするデバッグ支援機構。
JP3262053A 1991-10-09 1991-10-09 デバツグ支援機構 Withdrawn JPH05100902A (ja)

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)

* Cited by examiner, † Cited by third party
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 エミュレータ装置

Cited By (2)

* Cited by examiner, † Cited by third party
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