JPH05100896A - デバツグ支援機構 - Google Patents

デバツグ支援機構

Info

Publication number
JPH05100896A
JPH05100896A JP3259464A JP25946491A JPH05100896A JP H05100896 A JPH05100896 A JP H05100896A JP 3259464 A JP3259464 A JP 3259464A JP 25946491 A JP25946491 A JP 25946491A JP H05100896 A JPH05100896 A JP H05100896A
Authority
JP
Japan
Prior art keywords
procedure
exception
trace
trace exception
instruction
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
JP3259464A
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 JP3259464A priority Critical patent/JPH05100896A/ja
Publication of JPH05100896A publication Critical patent/JPH05100896A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 プログラムのネックポイントとなる手続き呼
び出しの実行時間を効率よく測定する。 【構成】 手続きネストカウンタ21は、手続き呼び出
しの深さを計測し、その計測結果を零検出器22を介し
てトレース例外検出回路24へ送る。トレース例外発生
条件指定レジスタ23は、検出回路24に対してトレー
ス例外を発生させる条件を指定する。すると、検出回路
24は、手続き呼び出しあるいは戻り命令実行時に、カ
ウンタ21で測定された呼び出しの深さによってトレー
ス例外発生の可否を決める。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、中央処理装置(CP
U)で実行するプログラムのエラーの検出とそのエラー
の是正を支援するデバッグ支援機構に関するものであ
る。
【0002】
【従来の技術】従来、このような分野の技術としては、
例えば次のような文献に記載されるものがあった。情報
処理学会第33回全国大会集(昭61年)河合他「SI
MPOSのプログラミング環境−コールカウンター」
P.417−418 前記文献に記載されているように、デバッグ中のプログ
ラムにおいては、一部の手続き呼び出しが頻繁に呼ば
れ、性能向上のネックポイントとなっていることが少な
くない。このため、プログラムの実行中にどの手続きが
どのくらいの頻度で呼び出されるかを計測することがで
きれば、プログラムのチューニング(高速化)に役立て
ることができる。そのため、前記文献の技術では、プロ
グラムの中間表現の中にコールカウンタ用のフラグを設
けることにより、手続きの呼び出し頻度を計測するよう
にしていた。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
デバッグ支援機構では、手続き呼び出しのコールカウン
タをソフトウエアによって実現しており、呼び出し回数
を計測するためには、専用のユーティリティルーチン
(動作支援用のルーチン)を必要とする。そのため、次
のような問題が生じる。
【0004】(a)コールカウンタ操作のためのコード
が増加するうえ、その手続きが呼び出される度にそれが
実行されるため、オーバーヘッド(必要動作時間)が大
きい。
【0005】(b)機械語など低レベルのデバッグには
適用できないため、その適用範囲が限定される。従っ
て、手続き呼び出しの実行時間を効率よく測定すること
が、困難であった。
【0006】本発明は、前記従来技術が持っていた課題
として、手続き呼び出しの実行時間を効率よく測定する
ことが困難な点について解決したデバッグ支援機構を提
供するものである。
【0007】
【課題を解決するための手段】本発明は、CPUで実行
するプログラムのエラーの検出とそのエラーの是正を支
援するデバッグ支援機構において、手続き呼び出しの深
さを計測する手続きネストカウンタと、トレース例外を
発生させる条件を指定するトレース例外発生条件指定手
段と、前記手続きネストカウンタ及びトレース例外発生
条件指定手段の出力に基づき、手続き呼び出しあるいは
戻り命令実行時に呼び出しの深さによってトレース例外
発生の可否を決めるトレース例外検出手段とを、備えて
いる。
【0008】
【作用】本発明によれば、以上のようにデバッグ支援機
構を構成したので、手続き呼び出し命令の実行回数、及
び呼び出された手続きの実行時間を測定するために、手
続きネストカウンタは、手続き呼び出しの深さを計測し
てその計測結果をトレース例外検出手段へ送る。更に、
トレース例外発生条件指定手段は、トレース例外検出手
段に対してトレース例外を発生させる条件を指定する。
すると、トレース例外検出手段は、手続き呼び出しある
いは戻り命令実行時に、呼び出しの深さによってトレー
ス例外発生の可否を決める。これにより、手続き呼び出
しの実行時間の効率のよい測定が行える。従って、前記
課題を解決できるのである。
【0009】
【実施例】図1は、本発明の実施例を示すデバッグ支援
機構における要部構成図である。このデバッグ支援機構
は、CPU1で実行するプログラムのエラーの検出とそ
のエラーの是正を支援するものであり、命令解読回路1
0及び例外検出回路20を備えている。
【0010】命令解読回路10は、CPU1が実行する
プログラムを解読してその解読結果を例外検出回路20
等へ与える回路であり、実行中の命令を保持する命令保
持レジスタ(CODEREG)11と、該命令保持レジ
スタ11の内容を解読して制御信号INSTBSR,
INSTBSRCC,INSTRETを例外検出回
路20へ与える命令解読器12とを、備えている。
【0011】例外検出回路20は、命令解読器12の出
力等に基づき、手続き呼び出しあるいは戻り命令実行時
に、呼び出しの深さによってトレース例外発生の可否を
決める回路である。この例外検出回路20には、手続き
呼び出しの深さを計測するためのインクリメント/デク
リメントが可能な32ビットの手続きネストカウンタ
(SRNC)21を備え、その出力側には零検出器22
が接続されている。零検出器22は、手続きネストカウ
ンタ21の0検出を行い、それに応じた信号SRNCZ
ERO(=1)を出力する回路である。
【0012】また、この例外検出回路20には、トレー
ス例外を発生させる条件を指定するトレース例外発生条
件指定手段、例えば32ビットのトレース例外発生条件
指定レジスタ(TECR)23が設けられている。零検
出器22及びトレース例外発生条件指定レジスタ23の
出力側には、トレース例外検出手段であるトレース例外
検出回路24が接続されている。トレース例外検出回路
24は、零検出器22の出力信号SRNCZERO、ト
レース例外発生条件指定レジスタ23の出力信号、命令
解読器12の出力制御信号INSTBSR,INST
BSRCC,INSTRET、演算の結果定まる条
件コードCCに基づき、トレース例外を発生させるか否
かを決定し、それに応じた信号ERCEXPを出力する
回路である。
【0013】次に、図1のデバッグ支援機構の動作を、
図2及び図3を参照しつつ説明する。図2は、CPU1
で定義されている手続き呼び出し、戻り命令の一覧を示
す図である。図3は、トレース例外検出回路24の論理
状態を示す図である。
【0014】このデバッグ支援機構は、CPU1で実行
するプログラムのデバッグを支援する動作を行う。ここ
で、CPU1で定義されている手続き呼び出し、戻り命
令は、図2(1)〜(3)に示すような内容になってい
る。
【0015】即ち、図2(1)は、無条件に手続き呼び
出しを実行する命令BSR、同図(2)は条件が満たさ
れたときに手続き呼び出しを実行する命令BSRCC、
及び同図(3)は呼び出された手続きから呼び出された
場所へ戻る命令RETである。
【0016】このような命令は、命令解読回路10内の
命令保持レジスタ11に保持され、そのレジスタ11の
内容が命令解読器12で解読され、該命令解読器12が
次の3つの制御信号INSTBSR,INSTBS
RCC,INSTRETをトレース例外検出回路24
へ出力する。 (i)命令が無条件手続き呼び出し命令である場合、制
御信号INSTBSRを1にする。 (ii)命令が条件付き手続き呼び出し命令である場合、
制御信号INSTBSRCCを1にする。 (iii) 命令が手続き戻り命令である場合、制御信号IN
STRETを1にする。
【0017】例外検出回路20において、手続きネスト
カウンタ21、及びトレース例外発生条件指定レジスタ
23は、特殊レジスタであり、そのうち手続きネストカ
ウンタ21は、命令BSRCCを実行し、条件が真であ
った場合、または命令BSRを実行した場合にインクリ
メント(+1増分)される。命令RETを実行したとき
には、デクリメント(−1減分)される。この手続きネ
ストカウンタ21の0状態は、零検出器22で検出さ
れ、その検出信号SRNCZERO(=1)がトレース
例外検出回路24へ与えられる。
【0018】一方、トレース例外発生条件指定レジスタ
23は、32ビットのレジスタであり、その各ビット
が、次の(a)〜(e)のように割当てられる。なお、
このレジスタ23の5〜31ビットは未使用状態であ
る。
【0019】(a)ビット0 1;無条件手続き呼び出し命令BSRを実行したときに
例外を発生する。 0;無条件手続き呼び出し命令BSRを実行しても例外
を発生させない。 (b)ビット1 1;条件付き手続き呼び出し命令BSRCCを実行し、
かつ条件が真であったときに例外を発生する。 0;条件付き手続き呼び出し命令BSRCCを実行し、
かつ条件が真であっても例外を発生させない。
【0020】(c)ビット2 1;条件付き手続き呼び出し命令BSRCCを実行し、
かつ条件が偽であったときに例外を発生する。 0;条件付き手続き呼び出し命令BSRCCを実行し、
かつ条件が偽であっても例外を発生させない。
【0021】(d)ビット3 1;手続き戻り命令RETを実行したときに例外を発生
する。 0;手続き戻り命令RETを実行しても例外を発生させ
ない。 以下に示すビットは、ビット0から3までの付加条件と
なる。
【0022】(e)ビット4 1;手続きネストカウンタの値が0になったとき例外を
発生させる。 0;手続きネストカウンタの値のいかんによらず例外を
発生させない。 例えば、ビット4とビット3がセットされていた場合、
例外の発生条件は“手続き戻り命令を実行し”かつ“手
続きネストカウンタの値が0”となる。
【0023】このレジスタ23の出力がトレース例外検
出回路24へ与えられる。トレース例外検出回路24
は、図3に示すような論理図に従い、TERC<4>が
1の場合と0の場合、例外を発生させるかどうかを決定
し、例外を発生させる場合は出力信号ERCEXPを1
にする。
【0024】以上のように、本実施例の計測機構を活用
することにより、プログラムのネックポイントを効率よ
く検出することが可能となる。例えば、あるプログラム
で最も頻繁に呼ばれている手続き呼び出し(サブルーチ
ン)を検出するためには、手続き呼び出し命令実行時
に、トレース例外検出回路24から例外を発生させ、呼
び出された回数を計測すればよい。
【0025】また、手続きの実行時間を計測する場合
は、サブルーチンネストカウンタを使用することによ
り、効率よく行える。ある手続きが呼び出され、トレー
ス例外が発生したとき、サブルーチンネストカウンタに
1をセットする。トレース例外発生条件指定レジスタ2
3のビット3とビット4に1をセットし、他のビットに
は0をセットする。これにより、トレース例外検出回路
24からトレース例外が発生する条件は、“手続き戻り
命令を実行し”かつ“手続きネストカウンタ21の値が
0になったとき”となる。そのため、この手続きを呼び
出したルーチンへ戻る命令を実行するまで、トレース例
外検出回路24からトレース例外が発生しない。従っ
て、何等のオーバーヘッドもなく、手続き呼び出しの実
行時間を効率よく計測することができる。
【0026】なお、本発明は上記実施例に限定されず、
種々の変形が可能である。例えば、図1において、手続
きネストカウンタ21及びトレース例外発生条件指定レ
ジスタ23のビット数を任意のビット数にしたり、その
レジスタ23を他の回路のトレース例外発生条件指定手
段で構成してもよい。また、トレース例外検出回路24
は、個別回路で構成する以外に、CPU1のプログラム
制御等といった他のトレース例外検出手段で構成しても
よい。更に、計測機構の高精度化を図るために、他のレ
ジスタやフラグ等といった種々の回路を図1のデバッグ
支援機構に付加することも可能である。
【0027】
【発明の効果】以上詳細に説明したように、本発明によ
れば、手続きネストカウンタ、トレース例外発生条件指
定手段、及びトレース例外検出手段を設けたので、手続
き呼び出しの深さによって例外発生の可否を制御でき、
それによって手続き呼び出し命令の実行回数、及び呼び
出された手続きの実行時間を測定できる。従って、プロ
グラムのネックポイントである手続き呼び出しの実行時
間を効率よく測定できる。
【図面の簡単な説明】
【図1】本発明の実施例を示すデバッグ支援機構の要部
構成図である。
【図2】CPUで定義されている手続き呼び出し、戻り
命令の一覧を示す図である。
【図3】トレース例外検出回路の論理状態を示す図であ
る。
【符号の説明】
1 CPU 10 命令解読回路 20 例外検出回路 21 手続きネストカウカタ 23 トレース例外発生条件指定レジスタ 24 トレース例外検出回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 加藤 研児 東京都港区虎ノ門1丁目7番12号 沖電気 工業株式会社内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置で実行するプログラムのエ
    ラーの検出とそのエラーの是正を支援するデバッグ支援
    機構において、 手続き呼び出しの深さを計測する手続きネストカウンタ
    と、トレース例外を発生させる条件を指定するトレース
    例外発生条件指定手段と、前記手続きネストカウンタ及
    びトレース例外発生条件指定手段の出力に基づき、手続
    き呼び出しあるいは戻り命令実行時に呼び出しの深さに
    よってトレース例外発生の可否を決めるトレース例外検
    出手段とを、備えたことを特徴とするデバッグ支援機
    構。
JP3259464A 1991-10-07 1991-10-07 デバツグ支援機構 Withdrawn JPH05100896A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3259464A JPH05100896A (ja) 1991-10-07 1991-10-07 デバツグ支援機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3259464A JPH05100896A (ja) 1991-10-07 1991-10-07 デバツグ支援機構

Publications (1)

Publication Number Publication Date
JPH05100896A true JPH05100896A (ja) 1993-04-23

Family

ID=17334438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3259464A Withdrawn JPH05100896A (ja) 1991-10-07 1991-10-07 デバツグ支援機構

Country Status (1)

Country Link
JP (1) JPH05100896A (ja)

Similar Documents

Publication Publication Date Title
US6681280B1 (en) Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
US5717851A (en) Breakpoint detection circuit in a data processor and method therefor
US7376820B2 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
KR100267410B1 (ko) 정보 처리 장치 및 이의 인터럽트 신호 발생 방법
US6654877B1 (en) System and method for selectively executing computer code
US7620802B2 (en) Instruction execution device, debugging method, debugging device, and debugging program
US20090013313A1 (en) Debug device, debug method, and program
JPH05100896A (ja) デバツグ支援機構
US20050050524A1 (en) Generating software test information
JPH05100902A (ja) デバツグ支援機構
JP2525492B2 (ja) プログラマブルコントロ―ラ
US9600284B2 (en) Computer program instruction analysis
JP2646957B2 (ja) キャッシュ内蔵マイクロプロセッサ及びそのトレースシステム
JP2616542B2 (ja) 疑似障害発生システム
JPH0283749A (ja) マイクロプロセッサの内部割込み制御方式
JPH02191046A (ja) プログラムの追跡方式
JP3068578B2 (ja) インサーキットエミュレータおよび飽和演算処理方法
JPS63104151A (ja) トレ−ス機能付きマイクロプロセサ
JPH0512005A (ja) 情報処理装置
JPH02126341A (ja) 中央処理装置
JPH03262039A (ja) 例外処理回路
JPH04306741A (ja) 未定義変数検出装置
JPH0546434A (ja) プログラムデバツグ方式
JPH10320231A (ja) デバッグ装置
JPH11242613A (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