JPH0250228A - デバッグ処理装置 - Google Patents

デバッグ処理装置

Info

Publication number
JPH0250228A
JPH0250228A JP63200471A JP20047188A JPH0250228A JP H0250228 A JPH0250228 A JP H0250228A JP 63200471 A JP63200471 A JP 63200471A JP 20047188 A JP20047188 A JP 20047188A JP H0250228 A JPH0250228 A JP H0250228A
Authority
JP
Japan
Prior art keywords
program
instruction
debugged
instructions
reverse
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
JP63200471A
Other languages
English (en)
Inventor
Mitsuo Fujitake
藤武 三夫
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 JP63200471A priority Critical patent/JPH0250228A/ja
Publication of JPH0250228A publication Critical patent/JPH0250228A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 プログラムのデバッグ処理装置に関し、プログラムのデ
バッグを効率的かつ容易に行えるようにすることを目的
とし、 デバッグ対象となる被デバッグプログラムの命令を記述
順に順次解読して実行するとともに、命令の実行にあた
って破壊されることになるデータ情報をメモリ手段に格
納するよう処理する機能プログラムと、被デバッグプロ
グラムに記述されることになる命令と、その命令の逆処
理を行うことになる逆命令との対応関係をとる命令対応
テーブルとを備え、この機能プログラムが、逆方向走行
モードに指定されたときには、被デバッグプログラムの
命令を記述順の逆方向に順次解読して、この解読された
命令の逆命令を命令対応テーブルを参照することで特定
していくとともに、メモリ手段に格納されているデータ
情報を使って、この特定された逆命令を実行するよう構
成する。
〔産業上の利用分野〕
本発明は、効率的かつ容易にプログラムのデバッグが実
行できるようにするためのデバッグ処理装置に関するも
のである。
プログラムのデバッグ処理は、プログラムの開発にあた
って不可欠のものであり、そして、プログラムを開発す
るプログラマにとって、最も負担の大きい作業の1つで
もある。このようなデバッグ処理を効率的かつ容易に行
えるようにすることは、プログラム開発の効率を上げる
ばかりでなく、作成されたプログラムの信鯨性を高める
ことにもなる。これから、プログラムのデバッグが、効
率的かつ容易に実行できるようになるデバッグ処理装置
の提供が望まれているのである。
〔従来技術〕
従来、プログラムのデバッグは、ダンプリストを用いて
行うのが最も一般的である。また、プログラムが通信制
御に係る場合には、併せてトレースリストが用いられる
ことになる。ここで、このダンプリストとは、メモリ上
の状態を例えばDASD上に複写したりして、障害の状
態を把握できるようにしたリストをいい、トレースリス
トとは、プログラムの実行過程の履歴情報を収集して、
障害の状態を把握できるようにしたリストをいう。
従来では、プログラマが、このようなダンプリストやト
レースリストを用いて、エラーの発生原因を突き止める
よう処理していた。そして、必要に応じて、デバッガ等
も用いていたのである。
〔発明が解決しようとする課題〕
しかしながら、ダンプリストやトレースリストを追うこ
とでデバッグを実行してい(ためには、これらのリスト
の見方に熟知していなければならないという問題点があ
った。しかも、リストの見方に熟知していても、これら
のリストでは、プログラムの流れに沿ったデータや状態
を知ることに対して十分でなく、従ってデバッグの実行
が技術的に困難なときや、デバッグに時間がかかり過ぎ
てしまうことがあるという問題点があった。そして、デ
バッガを用いても、このプログラムの流れに沿ったデー
タや状態を知ることが難しいという欠点は、残されたま
まである。
本発明はかかる事情に鑑みてなされたものであって、プ
ログラムの流れに沿ったデータや状態を知ることができ
るデバッグ処理装置を提供することで、プログラムのデ
バッグを、効率的かつ容易に実現できるようにすること
を目的とするものである。
〔課題を解決するための手段〕
第1図は本発明の原理構成図である。
図中、IOは被デバッグプログラムであって、デバッグ
対象となるプログラムであるもの、20は機能プログラ
ムであって、被デバッグプログラム10を実行するもの
、30は命令対応テーブルであって、被デバッグプログ
ラム10に記述されることになる命令と、その命令の逆
処理を行うことになる逆命令との対応関係をとるもの、
40はメモリ手段であって、例えばDASDのようなも
の、50はモード指定手段であって、機能プログラム2
0の走行方向を指定するものである。
機能プログラム20は、走行方向設定部21、命令解読
部22、実行命令指定部23、データ退避部24及び命
令実行部25を備える。この走行方向設定部21は、モ
ード指定手段50の指定に従って、被デバッグプログラ
ム10の実行を記述順に実行する順方向走行モードか記
述順の逆に実行する逆方向走行モードかのいずれかに設
定し、命令解読部22は、走行方向設定部21の設定に
従って、被デバッグプログラム10に記述されている命
令を順次解読し、実行命令指定部23は、走行方向設定
部21が順方向走行モードを設定しているときには、命
令解読部22が解読した命令を実行命令として指定する
とともに、走行方向設定部21が逆方向走行モードを設
定しているときには、命令解読部22が解読した命令と
対となる命令対応テーブル30の逆命令を実行命令とし
て指定し、データ退避部24は、実行命令指定部23が
順方向走行モードの実行命令を指定しているとき、命令
の実行にあたって破壊されることになるデータ情報をメ
モリ手段40に格納し、命令実行部25は、実行命令指
定部23が順方向走行モードの実行命令を指定している
ときには、そのまま命令を実行するとともに、実行命令
指定部23が逆方向走行モードの実行命令を指定してい
るときには、メモリ手段40に格納されているデータ情
報を使って命令を実行するよう処理する。
〔作用〕
本発明では、命令実行部25が被デバッグプログラム1
0の命令を記述順に実行していくことで、被デバッグプ
ログラム10にバグがあることが判明すると、走行方向
設定部21は、それまで設定していた順方向走行モード
を逆方向走行モードに切り換え、それから以降、命令実
行部25は、メモリ手段40に格納されているデータ情
報を使っ°ζ、被デバッグプログラムIOの命令を記述
順の逆に実行していくことで、被デバッグプログラムI
Oの任意の地点のデータや状態を復元していく処理を実
行する。
このように、本発明によれば、被デバッグプログラム1
0の走行方向を随時変えることができることになり、被
デバッグプログラム10の任意の地点のデータや状態を
復元できるので、被デバッグプログラム10のバグの原
因が容易に突き止められることになる。
〔実施例] 以下、実施例に従って本発明の詳細な説明する。
第2図に本発明の実施例構成図を示す。図中、第1図で
説明したものと同じのものは、同一の記号で示してあり
、60は被デバッグプログラム1Oから呼び出される被
デバッグプログラム、70は機能プログラム20により
生成消去される子タスクである。
この実施例では、被デバッグプログラムlOのプログラ
ムとして、 を例示している。ここで、“STビは、12番レジスタ
の内容から20番地離れた領域の内容を、1番レジスタ
にロードしろという命令を表し、“ST2″は、2番レ
ジスタと13番レジスタの内容の和から12番地離れた
領域に、1番レジスタの内容をストアしろという命令を
表し、“”STi”は、“O”でないならば、10番レ
ジスタの内容から36番地離れた領域にブランチしろと
いう命令を表し、“STj″は、5VC42のスーパバ
イザコール命令(タスクの生成命令)のプログラムを実
行しろという命令を表す。
本発明が具備する命令対応テーブル30は、第3図に示
すように、被デバッグプログラム10に記述されること
になる命令と、その命令の逆処理を行うことになる逆命
令との対応関係をとるものである。ここで、逆命令とは
、それを実行すれば、元となる命令の実行前の状態に戻
れる命令をいうものである。従って、この命令対応テー
ブル30を参照することで求まる逆命令を実行すること
で、命令実行前の状態を復元できることになる。この逆
命令は、既存の命令そのもの若しくはその組み合わせで
実現できるものであれば、それを用いることが好ましい
、第3図に示す命令対応テーブル30では、ロード命令
の逆命令としてロード命令が対応し、ストア命令の逆命
令として(ロード命令+ストア命令)が対応し、SvC
命令のファイルオープン命令(SVC19)の逆命令と
してファイルクローズ命令(SVC20)が対応するこ
と等を例示している。一方、このような既存の命令等で
逆命令を実現できないときには、予め逆命令のサブルー
チンを用意しておくことになる。
次に、第2図に従って、本発明のデバッグ処理装置の処
理内容について説明する。
機能プログラム20は、図示しないデイスプレィ装置等
を介して、プログラマから順方向走行モードの指定を受
けると、被デバッグプログラム10の命令を記述順に従
って解読し、実行していくよう処理する。すなわち、第
2図の例で具体的に説明するならば、STI”のプログ
ラムステップを参照し、これがロード命令であることを
識別すると、オペランドの指定に従ってロード処理を実
行する。続いて、“ST2’のプログラムステップを参
照し、これがストア命令であることを識別すると、オペ
ランドの指定に従ってストア処理を実行する。以下同様
に、STi″のプログラムステップを参照し、これがブ
ランチ命令であることを識別すると、オペランドの指定
に従ってブランチ処理を実行し、” S T j ”の
プログラムステップを参照し、これがタスク生成のSv
C命令であることを識別すると、そのSVC命令を実行
して子タスク70を生成する。
この順方向走行モードの実行の際、機能プログラム20
は、命令の実行前の状態を復元するために必要となるデ
ータ情報を、メモリ手段40に退避していくよう処理す
る0例えば、“STI″のロード命令では、実行される
ロード処理により1番レジスタの内容が破壊されてしま
うので、実行前の1番レジスタの内容を退避する。また
、“5Tinのブランチ命令では、ブランチ元に戻れる
ようにするために、ブランチ元の番地を退避することに
なる。
このように、機能プログラム20は、順方向走行モード
に設定されているときには、被デバッグプログラム10
の命令を記述順に「参照」して解読し、そしてその解読
結果に従って必要なデータを「退避」させてから、解読
した命令を「実行」するよう処理するのである。被デバ
ッグプログラムlOから呼び出される被デバッグプログ
ラム60についても、同様である。なお、図中にも示す
ように、ロード命令等の一般命令は、イグゼキュート(
EX)で実行し、SVC命令は、そのまま発行して実行
することになる。但し、コンテンツスーパバイザ系のS
vC命令は、機能プログラム20が対象とする処理を施
した後に実行することになる。
一方、機能プログラム20は、図示しないデイスプレィ
装置等を介して、プログラマから逆方向走行モードの指
定を受けると、被デバッグプログラムIOの命令を記述
順の逆に従って解読していくとともに、命令対応テーブ
ル30を参照して解読した命令の逆命令を求めるよう処
理する。そして、メモリ手段40に退避されであるデー
タ情報を使って、この求められた逆命令を実行していく
ことで、順方向走行モードの命令の実行前の状態を復元
していくよう処理することになる。すなわち、第2図の
例で具体的に説明するならば、“ST j ”のプログ
ラムステップを参照し、これがタスク生成のSVC命令
であることを識別すると、命令対応テーブル30を参照
して逆命令のタスク消去のSVC命令を求め、続いて求
められたタスク消去のSvC命令を実行することで、生
成されている子タスク70を消去して元の状態に戻すよ
う処理する。同様に、”STi″のプログラムステップ
を参照し、これがブランチ命令であることを識別すると
、命令対応テーブル30により求められる逆命令とメモ
リ手段40に退避させであるブランチ元の番地から、ブ
ランチ命令の実行前の状態に戻し、以下、“ST2”の
プログラムステップ、” S T l ”のプログラム
ステップというように戻していくことになる。
このように、機能プログラム20は、逆方向走行モード
に設定されているときには、被デバッグプログラムIO
の命令を記述順の逆に「参照」して解読し、命令対応テ
ーブル30を参照することで逆命令を特定していくとと
もに、メモリ手段40を「参照」して逆命令の実行のた
めに必要となるデータ情報を得て、逆命令を「実行」す
るのである。
次に、第4図に従って、本発明のデバッグ処理装置を用
いて、被デバッグプログラム10をデバッグする場合の
処理について具体的に説明する。
なお、この第4図に示す機能プログラム20は、機能マ
スクプログラム20aと機能サブプログラム20bとい
う階層的な構成を採るもので示しである。
被デバッグプログラムlOのデバッグを行うプログラマ
は、(a)で示すように、端末より被デバッグプログラ
ム名を指定して起動コマンドを入力し、初期化処理の実
行後に、順方向走行モードに設定して機能プログラム2
0を介して被デバッグプログラム10の実行に入ること
になる。このようにして、順方向走行モードによる被デ
バッグプログラム10の実行により、(b)で示すよう
に、エラーの発生を検出すると、機能プログラム20は
、被デバッグプログラム10の実行を停止して端末に異
常メツセージを表示するよう処理する。この異常メソセ
ージを確認すると、プログラマは、エラーの発生原因を
調べるために、(C)で示すように、逆方向走行モード
の設定と戻るべきプログラム状態である中断点の指定を
して、被デバッグプログラム10の逆処理に入ることに
なる。
この逆方向走行モードによる被デバッグプログラム10
の実行により、(d)で示すように、プログラムの状態
が中断点にまで戻ったことを確認すると、機能プログラ
ム20は、被デバッグプログラム10の実行を停止して
端末に停止メツセージを表示するよう処理する。続いて
、プログラマは、(e)で示すように、コマンドを入力
していくことで、データやレジスタの内容を参照するこ
とでエラー原因の追求を行う。そして、プログラマは、
データやレジスタの内容を変更した後、(f)で示すよ
うに、再び順方向走行モードに設定して被デバッ・グプ
ログラム10の実行に入ることになる。このようにして
、プログラマは、中断点を随時指定しながら被デバッグ
プログラムIOのプログラム状態を復元して、エラー原
因の追求を実現できるようになる。
第5図及び第6図に、主要SvC命令の逆処理の説明図
を示す。第5図は、rSVC6j命令に係る逆処理の説
明図であり、第6図は、rsvc7J命令に係る逆処理
の説明図である。
以上、図示実施例について説明したが、本発明はこれに
限定されるものではない。例えば、被デバッグプログラ
ムの逆処理の開始は、エラー発生が条件になるものでは
ない。また、メモリ手段はDASDに限られるものでも
ない。
〔発明の効果〕
このように、本発明によれば、被デバッグプログラムの
走行方向を随時変えることで被デバッグプログラムの任
意の地点のデータや状態を復元できることになるので、
被デバッグプログラムのバグの原因が容易に突き止めら
れることになる。そして、本発明によれば、ダンプリス
トやトレースリストと異なり、プログラムの流れに沿っ
たデータや状態を知ることができるので、被デバッグプ
ログラムのバグの原因が効率的に突き止められることに
なる。
【図面の簡単な説明】
第1図は本発明の原理構成図、 第2図は本発明の実施例構成図、 第3図は命令対応テーブルの説明図、 第4図はデバッグ処理の説明図、 第5図及び第6図は主要SVC命令の逆処理の説明図で
ある。 図中、10は被デバッグプログラム、20は機能プログ
ラム、21は走行方向設定部、22は命令解読部、23
は実行命令措定部、24はデータ退避部、25は命令実
行部、30は命令対応テーブル、40はメモリ手段、5
0はモード指定手段である。

Claims (1)

  1. 【特許請求の範囲】 作成されたプログラムのデバッグ処理を実行するための
    デバッグ処理装置において、 デバッグ対象となる被デバッグプログラム(10)の命
    令を記述順に順次解読して実行するとともに、命令の実
    行にあたって破壊されることになるデータ情報をメモリ
    手段(40)に格納するよう処理する機能プログラム(
    20)と、 上記被デバッグプログラム(10)に記述されることに
    なる命令と、その命令の逆処理を行うことになる逆命令
    との対応関係をとる命令対応テーブル(30)とを備え
    、 上記機能プログラム(20)が、逆方向走行モードに指
    定されたときには、上記被デバッグプログラム(10)
    の命令を記述順の逆方向に順次解読して、この解読され
    た命令の逆命令を上記命令対応テーブル(30)を参照
    することで特定していくとともに、上記メモリ手段(4
    0)に格納されているデータ情報を使って、この特定さ
    れた逆命令を実行するよう処理していくことで、プログ
    ラムのデバッグ処理を実現したことを特徴とするデバッ
    グ処理装置。
JP63200471A 1988-08-11 1988-08-11 デバッグ処理装置 Pending JPH0250228A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63200471A JPH0250228A (ja) 1988-08-11 1988-08-11 デバッグ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63200471A JPH0250228A (ja) 1988-08-11 1988-08-11 デバッグ処理装置

Publications (1)

Publication Number Publication Date
JPH0250228A true JPH0250228A (ja) 1990-02-20

Family

ID=16424870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63200471A Pending JPH0250228A (ja) 1988-08-11 1988-08-11 デバッグ処理装置

Country Status (1)

Country Link
JP (1) JPH0250228A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191875A (ja) * 1993-12-27 1995-07-28 Nec Corp デバッガー
US5469550A (en) * 1992-01-28 1995-11-21 Cezzar; Ruknet Reversible computer apparatus and methods of constructing and utilizing same
JPH08320813A (ja) * 1995-05-26 1996-12-03 Nec Corp プログラムシミュレータ装置及びプログラムデバッグ方法
JP2003122595A (ja) * 2001-10-11 2003-04-25 Mitsubishi Electric Corp ソフトウェア障害解析方法及び装置
JP2016173799A (ja) * 2015-03-18 2016-09-29 日本電気株式会社 デバッグ支援装置及びデバッグ支援方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6324424A (ja) * 1986-07-17 1988-02-01 Mitsubishi Electric Corp プログラムデバツグ方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6324424A (ja) * 1986-07-17 1988-02-01 Mitsubishi Electric Corp プログラムデバツグ方式

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469550A (en) * 1992-01-28 1995-11-21 Cezzar; Ruknet Reversible computer apparatus and methods of constructing and utilizing same
JPH07191875A (ja) * 1993-12-27 1995-07-28 Nec Corp デバッガー
JPH08320813A (ja) * 1995-05-26 1996-12-03 Nec Corp プログラムシミュレータ装置及びプログラムデバッグ方法
JP2003122595A (ja) * 2001-10-11 2003-04-25 Mitsubishi Electric Corp ソフトウェア障害解析方法及び装置
JP2016173799A (ja) * 2015-03-18 2016-09-29 日本電気株式会社 デバッグ支援装置及びデバッグ支援方法

Similar Documents

Publication Publication Date Title
US6988264B2 (en) Debugging multiple threads or processes
US7836430B2 (en) Reversing execution of instructions in a debugger
JPH0250228A (ja) デバッグ処理装置
CN102662845B (zh) 一种实现经过性数据断点的方法、装置及系统
JPH076055A (ja) オペレーティングシステムのデバッギング用ツール
JPH02135545A (ja) デバッガの実行制御処理方式
JP2570593B2 (ja) デバッグ装置
JP2788353B2 (ja) タスクトレース方法
JPH0561717A (ja) プログラムデバツグ装置
JPS61210440A (ja) レベルトレ−ス装置
JPH1049401A (ja) プログラムのデバッグ方法
JP3029355B2 (ja) 命令のシングルステップ実行方式
JP2653411B2 (ja) ブレークポイント設定方法
JP2783275B2 (ja) 分散並列処理プログラムデバッグ方式
JPH05108404A (ja) デバツガシステム
JPH01274253A (ja) ソフトウェアブレーク方式
JPS61138361A (ja) 並列処理システム
JPS6155749A (ja) 情報処理装置
JP2697230B2 (ja) デバッグ支援装置
JPS59202550A (ja) デバツグ装置
JPS62290942A (ja) デバツガ起動方式
JPS5968066A (ja) デバツガ起動方式
JPS6282438A (ja) 情報処理装置におけるデバツグ割込み制御方式
JPH05241896A (ja) ソフトウェアデバッグ装置
KR20020049789A (ko) 파워피시 마이크로프로세서에서 실행되는 병행 프로그램디버깅을 위한 스태핑 제어방법