JPH0253146A - プログラム・トレース方法 - Google Patents

プログラム・トレース方法

Info

Publication number
JPH0253146A
JPH0253146A JP63203148A JP20314888A JPH0253146A JP H0253146 A JPH0253146 A JP H0253146A JP 63203148 A JP63203148 A JP 63203148A JP 20314888 A JP20314888 A JP 20314888A JP H0253146 A JPH0253146 A JP H0253146A
Authority
JP
Japan
Prior art keywords
frame pointer
program
register
user program
debugger
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.)
Pending
Application number
JP63203148A
Other languages
English (en)
Inventor
Hiroshi Yasunaga
安永 洋
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 JP63203148A priority Critical patent/JPH0253146A/ja
Publication of JPH0253146A publication Critical patent/JPH0253146A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) この発明は、コンピュータ・プログラムのトレース方法
に関し、特にユーザー・プログラムに含まれている関数
の処理の終了をプログラム開発支援ツールとして用いら
れているデバッガが速やかに認識できるようにするプロ
グラム・トレース方法に関する。
(従来の技術) 従来、ユーザー・プログラムに含まれている関数の処理
が終了したことをデバッガが認識できるようにするため
のプログラム・トレース方法として、その第1のものは
、注目する関数を呼び出す機械語命令の次の命令位置、
即ち注目する前記関数の呼び出しがあり、次いでその関
数の処理が終了して制御が戻されたときに、最初に実行
される命令位置にデバッガの呼び出し命令(ここでは、
擬似命令という、)を予め組み込む方法である。
その第2の方法は、注目する関数を呼び出す機械語命令
からトレースを開始する共に、その時点のユーザー・プ
ログラムのフレーム・ポインタ・レジスタの内容(FP
、)を第2図に示すように、中央処理装置10に接続さ
れているメモリ20のスタック領域のに設けられたフレ
ーム・ポインタ領に記憶する。この中央処理装置10及
びメモリ20は、当該ユーザー・プログラムを実行する
データ処理装置を構成しているものである。以後、この
データ処理装置では、ユーザー・プログラムの一機械語
の命令を実行する度にフレーム・ポインタ領域のフレー
ム・ポインタ・レジスタの内容(FPO)と、フレーム
・ポインタ・レジスタの現在値(FPn) とを比較し
、FP、≧FP、の条件が満足されたときに、前記関数
の処理が終了したと判断するものである。
この場合に、前記スタック領域は、第2図に示すように
、FP値が先頭から順次太き(なるように設定され、前
記第2の方法の実行によりフレーム・ポインタ・レジス
タの内容が書込まれる1024バイトのフレーム・ポイ
ンタ領域と、プログラムを実行する中央処理装置に設け
られているレジスタ(図示なし)の内容を退避させる領
域及び関数のパラメータ領域とからなる。
(発明が解決しようとする課題) しかし、従来のプログラム・トレース方法において、第
1の方法は、プログラムの制御が関数の呼び出し元に戻
らずに、先のアドレスにジャンプすることもあるので、
このような場合は、その関数の処理の終了をデバッガが
捕捉できないという問題点があり、また第2の方法は第
1の方法のような問題は発生しないが、各命令毎にプロ
グラム・トレースの処理が実行されるので、デバッガの
処理速度がかなり遅くなるという問題点があった。
この発明は、前述のような従来技術の問題点を除去する
ためになされたものであり、デバッガが注目する関数の
処理の終了を確実に補足することができ、かつ処理速度
を高めることができるプログラム・トレース方法を提供
することを目的とする。
(課題を解決するための手段) この発明のプログラム・トレース方法は、中央処理装置
により実行されるユーザー・プログラムに含まれている
特定の処理の終了をトレースするものであって、 前記ユーザー・プログラムのフレーム・ポインタを更新
するときに、その更新を前記中央処理装置の管理プログ
ラムに通知するように設定する第1の処理と、 前記関数を呼び出す命令を直前におけるフレーム・ポイ
ンタの内容を保存する第2の処理と、前記ユーザー・プ
ログラムを実行し、フレーム・ポインタを更新するとき
に、他の処理に制御を戻す第3の処理と、 現在フレーム・ポインタの内容が前記第2の処理により
保存した前記フレーム・ポインタの内容以上であるか否
かを調べる第4の処理と、前記第4の処理により肯定的
な結果が得られたときは、前記第1の処理による設定を
解除する第5の処理と を有するものである。
(作用) 前記構成によるこの発明のプログラム・トレース方法に
よれば、ユーザー・プログラムを実行中にフレーム・ポ
インタが更新されると、前記管理プログラムに割り込み
を発生するので、この割り込みからユーザー・プログラ
ム内の前記特定のプログラムが終了したことを認識する
ことができる。
(実施例) 実施例について図面を参照して説明する。第1図は、こ
の発明のプログラム・トレース方法を示すフローチャー
トである。また、第3図は第1図のプログラム・トレー
ス方法を実現するデータ処理システムのブロック図であ
る。第3図から説明する。
第3図において、lOは中央処理装置である。中央処理
装置10は、32ビツトからなり、データ処理システム
が実行するプログラムの実行環境を制御するために用い
られる環境レジスタ1aと、32ビツトからなるフレー
ム・ポインタ・レジスタ1bとを備えている。フレーム
・ポインタ・レジスタ1bは、通常、中央処理装置10
に備えられている汎用レジスタの1つが割り付けられた
ものでよい。
第3図では、説明を簡単にするために、一つの環境レジ
スタ1aのみが示されているが、中央処理装置lOを稼
動させている管理プログラムによって管理されている各
タスクに一つ付与することができるものである。
20は中央処理装置10に接続され、プログラムの実行
に必要な種々のデータを記憶する記憶装置、30は中央
処理装置10及び記憶袋M20に接続され、これらの間
でデータの授受をする入出力装置である。
第4図は環境レジスタla及びフレーム・ポインタ・レ
ジスタlbの詳細な構成を示す図である。第4図aに示
すように、環境レジスタ1aは32ビツトからなり、0
〜29ビツトは環境制御用のデータ、30ビツトはフレ
ーム・トレースの保留を表示するフレーム・トレース(
FTP)フラグ、31ビツトはフレーム・トレースのマ
スクを表示するフレーム・トレース・マスク(FTRC
)フラグに割り付けられている。環境レジスタ1aは、
ハードウェアとして1つ存在するが、管理プログラムが
管理しているタスク側から見ると、各タスクに1つ与え
られているように見える。
フレーム・ポインタ・レジスタ1bは第4図すに示すよ
うに、フレーム・ポインタを記憶する32ビツトからな
る。環境レジスタ1aのFTRCフラグが1にセットさ
れているときに、プログラムの進行によりフレーム・ポ
インタ・レジスタ1bの更新が発生すると、管理プログ
ラムに対して割り込みを発生させる。
第5図はこの発明によるプログラム・トレース方法を示
すフローチャートである。処理P51では機械語命令の
実行を開始する。
処理P52では、第4図aに示す環境レジスタ1aのF
TRCフラグが1にセットされているか否かを判断する
。イエスであれば、処理P53を実行し、FTPフラグ
を1セクトする。ノーであれば、処理P54に進む。
処理P55では機械語命令の実行が終了したか否かを判
断し、ノーであればイエスとなるまで処理P54を反復
する。これがイエスとなると、処理P55により FT
Pフラグが1、かつフレーム・ポインタ・レジスタ1b
の値が更新されたか否かを調べる。ノーのときは処理P
51に戻り、イエスのときは処理P56に進む。
処理P56では、フレーム・ポインタ・レジスタ1bが
更新されたことを通知するために割り込みを発生してF
TPフラグを0にセットし、処理P51に戻る。
この発明では、関数の呼び出し命令を実行したときにの
み、フレーム・ポインタ・レジスタ1bの更新が実行さ
れ、プログラム・トレースの確実性を確保している。し
かし、従来技術では、フレーム・ポインタ・レジスタ1
bの書き換え命令を実行したときにも、その更新を実行
していたものである。
次に、第1図のフローチャートを参照してこの発明によ
るデバッガの処理を説明する。
処理P1では、ユーザー・プログラムのフレーム・ポイ
ンタを更新するときに、その通知をするという宣言をす
る。この宣言は、第4図のFTRCフラグを1にセット
することにより、中央処理装置10の管理プログラムに
対して行なうものである。
処理P2では、デバッガが注目している関数を呼び出す
直前のユーザー・プログラムのフレーム・ポインタの内
容をフレーム・ポインタ・レジスタ1bの現在値(FP
O)として保存する。
処理P3では、制御がユーザー・プログラムに渡される
。デバッガは、ユーザー・プログラムが使用しているフ
レーム・ポインタ・レジスタ比の値が更新されたときに
発生する割り込みにより、その旨の通知を受は取る。
処理P4ではフレーム・ポインタ・レジスタlbの現在
値FPnと、処理P2において記憶したフレ−ム・ポイ
ンタ・レジスタの値FPOとを比較し、FPn≧FPO
の条件が満足されるか否かを調べる。
ノーのときは、注目する関数の処理が未だ終了していな
いことを表わしているものであり、処理P3に戻る。一
方、FPn≧FPOの条件が満足され、イエスとなった
ときは、注目する関数の処理が終了したことを表わして
おり、処理P5に進む。
処理P5では、処理P1により実行したフレーム・ポイ
ンタのトレースの宣言を解除して処理の終了となる。
(発明の効果) この発明は、以上詳細に説明したように、プログラムの
実行中にフレーム・ポインタの値が更新されたときに、
割り込みを発生するように構成したので、デバッガが注
目しているユーザー・プログラム内の関数の処理が終了
したことを確実、かつ高速に認識することができる効果
がある。
【図面の簡単な説明】
第1図はこの発明のプログラム・トレース方法を示すフ
ローチャート、 第2図はスタック領域の構成を示すブロック図、 第3図はこの発明のプログラム・トレース方法を実行す
るデータ処理システムのブロック図、第4図は環境レジ
スタのビット割り付はフレーム・ポインタ・レジスタの
ビット構成を示す図、第5図はプログラム・トレース方
法を示すフローチャートである。 1a・・・環境レジスタ、 lb・・・フレーム・ポインタ・レジスタ、10・・・
中央処理装置、 20・・・記憶装置、 30・・・入出力装置。

Claims (1)

  1. 【特許請求の範囲】  中央処理装置により実行されるユーザー・プログラム
    に含まれている特定の処理の終了をトレースするプログ
    ラム・トレース方法において、前記ユーザー・プログラ
    ムのフレーム・ポインタを更新するときに、その更新を
    前記中央処理装置の管理プログラムに通知するように設
    定する第1の処理と、 前記関数を呼び出す命令の直前におけるフレーム・ポイ
    ンタの内容を保存する第2の処理と、前記ユーザー・プ
    ログラムを実行し、フレーム・ポインタを更新するとき
    に、前記管理プログラムに制御を戻す第3の処理と、 現在フレーム・ポインタの内容が前記第2の処理により
    保存した前記フレーム・ポインタの内容以上であるか否
    かを調べる第4の処理と、 前記第4の処理により肯定的な結果が得られたときは、
    前記第1の処理による設定を解除する第5の処理と を有することを特徴とするプログラム・トレース方法。
JP63203148A 1988-08-17 1988-08-17 プログラム・トレース方法 Pending JPH0253146A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63203148A JPH0253146A (ja) 1988-08-17 1988-08-17 プログラム・トレース方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63203148A JPH0253146A (ja) 1988-08-17 1988-08-17 プログラム・トレース方法

Publications (1)

Publication Number Publication Date
JPH0253146A true JPH0253146A (ja) 1990-02-22

Family

ID=16469220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63203148A Pending JPH0253146A (ja) 1988-08-17 1988-08-17 プログラム・トレース方法

Country Status (1)

Country Link
JP (1) JPH0253146A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271415A (ja) * 2002-03-13 2003-09-26 Denso Corp 実行履歴記録装置、ブレーク命令設定装置、及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271415A (ja) * 2002-03-13 2003-09-26 Denso Corp 実行履歴記録装置、ブレーク命令設定装置、及びプログラム

Similar Documents

Publication Publication Date Title
US6735774B1 (en) Method and apparatus for system call management
JPH0253146A (ja) プログラム・トレース方法
JPH0581070A (ja) プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法
JPH03105503A (ja) プログラマブルコントローラ
JP3085309B2 (ja) デバッグシステム
JPH04280328A (ja) プログラム実行アドレストレース方法
JP3341061B2 (ja) プログラマブルコントローラ
JPH1165884A (ja) マイクロコンピュータ及びそのデバッグ方法
JPH05108404A (ja) デバツガシステム
JPS6142301B2 (ja)
JPH0283634A (ja) プログラムデバッグ方式
JPS63249206A (ja) プログラマブルコントロ−ラ
JP2573391B2 (ja) プログラマブルコントローラ
JP2000242524A (ja) プロセッサのソフトウエアシミュレータ
JPH04256031A (ja) プログラミング言語における例外処理方法
JPS63223930A (ja) 専用プロセツサのプログラムのシミユレ−シヨン方式
JPH01140239A (ja) 命令実行アドレス保存処理方式
JPS62274303A (ja) シ−ケンス制御方法
JPH03139703A (ja) プログラマブルコントローラのタイマ命令処理方式
JPH0136127B2 (ja)
JPH01121950A (ja) トレース機能付マイクロプロセッサ
JPH02109146A (ja) プログラムデバツグ装置
JPH02146625A (ja) レジスタ個数の拡張方式
JPS6311703B2 (ja)
JPH03290739A (ja) プログラムの動的解析方式