JPH1091479A - プログラム・デバッグ・システム、プログラム・デバッグ方法およびデバッグ用プログラムを記憶した記憶媒体 - Google Patents

プログラム・デバッグ・システム、プログラム・デバッグ方法およびデバッグ用プログラムを記憶した記憶媒体

Info

Publication number
JPH1091479A
JPH1091479A JP8241969A JP24196996A JPH1091479A JP H1091479 A JPH1091479 A JP H1091479A JP 8241969 A JP8241969 A JP 8241969A JP 24196996 A JP24196996 A JP 24196996A JP H1091479 A JPH1091479 A JP H1091479A
Authority
JP
Japan
Prior art keywords
program
data
output
file
result
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
JP8241969A
Other languages
English (en)
Inventor
Noboru Higuchi
登 樋口
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP8241969A priority Critical patent/JPH1091479A/ja
Publication of JPH1091479A publication Critical patent/JPH1091479A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 プログラムが正しく実行したときに出力され
るファイルが既に存在する場合に、そのプログラムの実
行結果が不正になる箇所を突き止めるまでの時間を短縮
する。 【解決手段】 プログラムが正しく動作したときの結果
ファイル名およびプログラムの実行によって出力される
ファイル名をファイル名取得手段1により取得し、その
ファイルに対する出力をファイル出力監視手段4で認識
し、出力されるデータと正しいデータを出力結果比較手
段5で比較する。その結果、不正なデータの出力の場合
には、デバッガ7がメッセージを出力し、ユーザからの
デバッグコマンドの入力を可能にする。デバッガ7がフ
ァイルに対する出力部分に内部的なブレークポイントを
設定して監視するので、プログラムの不正箇所がわから
なくても、不正なデータを出力しようとした時点でデバ
ッグができる。

Description

【発明の詳細な説明】
【発明の属する技術分野】本発明はプログラム・デバッ
グ・システム、プログラム・デバッグ方法およびデバッ
グ用プログラムを記憶した記憶媒体に関する。
【0001】
【従来の技術】一般に、プログラムデバッグは、プログ
ラムの実行結果が、そのプログラムを実行するマシンに
より異なった場合や、ソースプログラムをコンパイルす
るときに指定するオプションにより異なった場合に、そ
のプログラムの動作不正の原因究明のために行われてい
る。
【0002】従来のプログラムデバッグ方法の一例が特
開平7−271631号公報に記載されている。この公
報に記載されたプログラムデバッグ方法は、ソースプロ
グラムに所定パターンを埋め込んでコンパイルし、実行
マシンやオプションが異なる2つの実行プログラムを並
行してデバッグし、実行結果の異なる部分を検出するも
のである。ユーザ入出力管理部、2つのデバッグ制御
部、コマンド解析部および中間データ比較部から構成さ
れている。
【0003】2つのデバッグ制御部のそれぞれは、1つ
の対話型デバッガを制御する。対話型デバッガはデバッ
グ対象である実行プログラムをデバッグする。中間デー
タ比較部は、2つのデバッグ対象である実行プログラム
の実行途中結果を比較し、一致するか否かを判別する。
実行途中結果が一致しない場合は、一致しないデータを
表示する。表示されたデータを参照して実行プログラム
のデバッグが行われる。
【0004】
【発明が解決しようとする課題】従来の方法では、不正
箇所に至るまでの途中でのプログラムの停止やそのとき
のデータの表示をユーザデバッグコマンドを入力するこ
とによって行っているため、プログラムの実行結果が不
正になる箇所がわかっていない場合、不正箇所の特定に
時間がかかるという欠点がある。アプリケーションプロ
グラムの中には、同一処理を繰り返し実行するものが多
いが、繰り返し処理の中で結果が不正になっている場合
には、繰り返しごとにデータを比較する必要があり、不
正な結果を生じるまでに数多くのコマンドを実行しなけ
ればならない。
【0005】さらに、従来の方法では、2つの対話型デ
バッガを用いて2つのプログラムを同時にデバッグして
いるため、デバッグに多くの資源を要するという欠点も
ある。すなわち、異なるマシンでの結果を比較する場
合、比較しようとしている2つのマシン資源が同時に利
用できなければならない。また、その2つのマシンがネ
ットワーク資源等で接続されていなければならない。
【0006】また、同じマシン上でコンパイル時に指定
されたオプションが異なる2つのプログラムをデバッグ
する場合には、2つのプログラムと2つの対話型デバッ
ガが動作できるだけの記憶領域が存在しなければならな
い。
【0007】さらに、従来の方法では、異なるマシンで
プログラムを実行したり、プログラムをコンパイルする
ときに指定するオプションの違い等によって、プログラ
ムの実行結果、特に浮動小数点演算の結果には誤差が発
生する場合があるが、この演算誤差を考慮できないとい
う欠点もある。
【0008】これは、2つのデバッガで実行されたコマ
ンドの結果を比較する場合、両者の結果が一致するかど
うかで正しく実行できたかを判断しているためである。
【0009】本発明の目的は、正しい結果がわかってい
るプログラムの開発および保守時に正しい結果と異なる
出力結果が生じた時点でデバッグモード(ユーザからの
デバッグコマンド入力待ちの状態)に移行できるデバッ
グ・システムを提供することにある。
【0010】本発明の他の目的は、正しい結果とデバッ
グ中のプログラムの結果が異なる場合、マシンアーキテ
クチャやコンパイラの機能差を考慮し、演算の誤差を加
味して結果の比較を行うことができるデバッグ・システ
ムを提供することにある。
【0011】
【課題を解決するための手段】本発明の第1のプログラ
ム・デバッグ方法は、プログラムの出力が正しい結果と
異なった時点で、デバッグモードに移行し、プログラム
のデバッグができる。より具体的には、正しい結果が格
納されたファイル名とプログラムの出力ファイル名を取
得するファイル名取得手段(図1の1)と、プログラム
がファイルに出力を行う場合に、出力先のファイルが結
果の比較対象になっているかどうかを確認するファイル
出力監視手段(図1の4)と、正しい結果とプログラム
が出力しようとしているデータを比較する出力結果比較
手段(図1の5)と、正しい結果との比較が指定された
とき、ファイル名取得手段を呼び出し、さらにプログラ
ム内のファイルへの出力部分にブレークポイントを設定
し、その設定されたブレークポイントでプログラムの実
行が停止した場合にファイル出力監視手段を呼び出し、
不正なデータの出力が検出された場合には、その旨を示
すメッセージを出力し、ユーザからのデバッグコマンド
を入力するデバッガとを有する。
【0012】また、本発明の第2のプログラム・デバッ
グ方法は、演算の誤差を考慮してプログラムの出力デー
タが正しいかどうかを判定する。具体的には許される誤
差の範囲を取得する誤差範囲取得手段(図7の3)と、
正しい結果に対してプログラムが出力しようとしている
データが指定された誤差範囲に入っているかどうかを判
定する出力結果判定手段(図7の6)とを有する。
【0013】さらに、本発明の第3のプログラム・デバ
ッグ方法は、出力ファイルごとに許される誤差の範囲が
設定できる。具体的には、正しい結果が格納されている
ファイル名、プログラムが出力するファイル名、および
出力するファイルごとの許される誤差の範囲を取得する
ファイル情報取得手段(図13の2)を有する。
【0014】本発明の第1のプログラム・デバッグ・シ
ステムは、正しいデータを予め格納した第1の格納手段
と、第2の格納手段と、前記第2の格納手段へのデータ
の出力を指示するデータ出力指示部分にブレークポイン
トが設定されたデバッグ対象プログラムを実行し、該プ
ログラムの実行が前記ブレークポイントで停止した場合
に、前記データ出力指示部分の指示により前記第2の格
納手段に出力されるデータと該データに対応する前記第
1の格納手段内の正しいデータとを比較し、前記プログ
ラムの検査を行うデバッグ手段とを備える。
【0015】本発明の第2のプログラム・デバッグ・シ
ステムは、正しいデータを予め格納した第1の格納手段
と、第2の格納手段と、誤差許容範囲を示す許容値を格
納した第3の格納手段と、前記第2の格納手段へのデー
タの出力を指示するデータ出力指示部分にブレークポイ
ントが設定されたデバッグ対象プログラムを実行し、該
プログラムの実行が前記ブレークポイントで停止した場
合に、前記データ出力指示部分の指示により前記第2の
格納手段に出力されるデータと該データに対応する前記
第1の格納手段内の正しいデータとの差を求め、該差が
前記第3の格納手段に格納された前記許容値の示す許容
範囲内であるか否かを調べ、前記プログラムの検査を行
うデバッグ手段とを備える。
【0016】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0017】図1を参照すると、本発明の第1の実施の
形態は、キーボード等の入力装置16と、ディスプレイ
装置等の出力装置15と、プログラムの実行を制御する
制御部17と、プログラムの実行に必要な情報を記憶す
るメモリ18と、プログラムの出力結果等を記憶する外
部記憶装置19とを備えている。
【0018】制御部17は、デバッガ7と、デバッグ対
象であるプログラム8とを含む。
【0019】デバッガ7は、ファイル名取得手段1と、
ファイル出力監視手段4と、出力結果比較手段5とを備
えている。デバッガ7は外部記憶装置19内の出力ファ
イル13と結果ファイル14とを比較することが入力装
置16から指定されている場合、ファイル名取得手段1
を起動し、プログラム8内にある、ファイルへの出力部
分にブレークポイントを設定し、プログラムを実行す
る。設定したブレークポイントによりプログラム8の実
行が停止した場合には、ファイル出力監視手段4が起動
される。もし、出力ファイル13に出力しようとしてい
る出力バッファ12内のデータと結果ファイル14内の
対応するデータとが一致しないと判断された場合には、
その旨が出力装置15に出力され、デバッグモードに移
行して、入力装置16からデバッグコマンドが受け付け
られる。出力バッファ12内のデータと結果ファイル1
4内の対応するデータとが一致しているか、または、比
較する対象のファイルへの出力ではない場合には、次の
ブレークポイントまでプログラム8の実行を継続する。
【0020】ファイル名取得手段1は、入力装置16か
ら入力された結果ファイル14の名前(結果ファイル
名)および出力ファイル13の名前(出力ファイル名)
を取得して、メモリ18上にファイル対応表9の領域を
確保し、ファイル対応表9に、取得した結果ファイル名
と出力ファイル名とを格納する。
【0021】ファイル出力監視手段4は、プログラム8
が出力バッファ12の内容を出力しようとしているファ
イルの名前がファイル対応表9内の出力ファイル名のい
ずれかと一致する場合に、出力結果比較手段5を起動す
る。
【0022】出力結果比較手段5は、出力バッファ12
内のデータとそれに対応する結果ファイル14内のデー
タとを比較し、それらが一致するかどうかを判断する。
【0023】プログラム8はデバッガ7がデバッグ対象
とするプログラムである。
【0024】メモリ18は、ファイル対応表9と、出力
バッファ12とを備えている。
【0025】ファイル対応表9は、プログラム8が出力
する出力ファイル13の名前すなわち出力ファイル名
と、プログラム8が正しく動作した場合に出力されるデ
ータを格納すべき結果ファイル14の名前すなわち結果
ファイル名とを対にして格納している。プログラム8が
実行中に出力するファイルが複数あり、それぞれに対応
する正しいデータが格納されたファイルが比較対象とし
て指定されている場合は、対応表9には複数のファイル
名の対が格納される。
【0026】出力バッファ12は、プログラム8がファ
イルに出力するデータを一時的に格納する領域、あるい
は、プログラム8がファイルに出力しようとするデータ
が一時的に格納されている領域である。
【0027】外部記憶装置19は、出力ファイル13と
結果ファイル14とを備えている。
【0028】出力ファイル13は、プログラム8がデー
タを出力するファイルである。
【0029】結果ファイル14は、プログラム8が正し
く動作した場合に出力ファイル13に出力されるはずで
あるデータが格納されているファイルである。
【0030】次に、図1から図5を参照して、本発明の
第1の実施の形態の動作について説明する。
【0031】プログラム8のソースプログラムを他のマ
シンでコンパイルおよび実行させたり、あるいは、同じ
マシン上で他のオプションによってコンパイルし、実行
させた等により、既にプログラム8の正しい出力結果が
得られている場合、そのファイル名とプログラム8の実
行によって出力されるファイル名を対にした情報を入力
装置16から、ユーザが予め入力する。
【0032】デバッガ7は、この比較対象のファイルの
対が入力されているかどうかを判断し(図2のステップ
701)、入力されている(比較ファイルが指定されて
いる)場合には、ファイル名取得手段1を起動する(図
2のステップ702)。
【0033】ファイル名取得手段1は、指定されている
比較ファイルの対の数およびファイル名の長さ等を考慮
し、メモリ上に正しい結果が格納されているファイル
(結果ファイル14)の名前(結果ファイル名)とプロ
グラム8の実行によって出力されるファイル(出力ファ
イル13)の名前(出力ファイル名)が格納できるだけ
の領域(ファイル対応表9)を確保し(図3のステップ
101)、結果ファイル名および出力ファイル名をファ
イル対応表9に格納する(図3のステップ102)。比
較ファイルの対が複数ある場合には、それら全てをファ
イル対応表9に格納する。
【0034】ファイル名取得手段1の処理が終了した
後、デバッガ7はプログラム8内の、ファイルに対する
出力部分にブレークポイントを設定する(図2のステッ
プ705)。
【0035】ブレークポイントの設定後、あるいは比較
対象ファイルの対が指定されていない場合には、入力装
置16からユーザがデバッグコマンドを入力するのを待
つ(図2のステップ706)。
【0036】ユーザがデバッグコマンドを入力した場
合、それが終了コマンドであれば、デバッガ7はその動
作を終了する(図2のステップ707)。
【0037】入力されたデバッグコマンドが終了コマン
ドでなければ、指定されたデバッグコマンドの処理を行
う(図2のステップ708)。
【0038】指定されたデバッグコマンドがプログラム
8の実行であり、かつ、プログラム8の実行がブレーク
ポイントで停止した場合、停止したブレークポイントが
ステップ705で設定したブレークポイントかどうかを
判断し(ステップ709)、ステップ705で設定した
ブレークポイントでの停止の場合には、ファイル出力監
視手段4を起動する(ステップ710)。
【0039】ファイル出力監視手段4はプログラム8が
出力しようとしているファイルの名前がファイル対応表
9内の出力ファイル名と一致するかどうかを判断する
(図4のステップ401)。もし、ファイル対応表9内
に複数の出力ファイル名がある場合には、その中のいず
れかと一致するかどうかを判断する。そして、ファイル
対応表9内の出力ファイル名に一致するものがあった場
合のみ、出力結果比較手段5を起動する(図4のステッ
プ402)。
【0040】出力結果比較手段5は、対応する結果ファ
イル14がオープンされているかどうかを判断し(図5
のステップ501)、オープンされていない場合には結
果ファイルをオープンする(図5のステップ502)。
続いて、出力バッファ12にデータが格納されているか
どうかを判断し(図5のステップ503)、データが格
納されていない場合には、ファイル出力監視手段4に不
一致データがなかったことを示す戻り値を返す(図5の
ステップ509)。出力バッファ12にデータがある場
合には、結果ファイルからデータを入力し(図5のステ
ップ504)、出力バッファ12からもデータを1つ入
力し(図5のステップ505)、両者を比較する(図5
のステップ507)。両者が一致していない場合には、
不正なデータの出力であることを示す戻り値をファイル
出力監視手段4に返す(図5のステップ508)。2つ
のデータが一致している場合には、さらに出力バッファ
12内の次のデータについて同様の処理(図5のステッ
プ503からステップ507)を繰り返す。
【0041】ファイル出力監視手段4は出力結果比較手
段5の戻り値をそのままデバッガ7に戻す。
【0042】デバッガ7はファイル出力監視手段4から
の戻り値によって不正なデータの出力かどうかを判断し
(図2のステップ711)、不正なデータの出力の場合
には出力しようとしているデータが正しい結果と一致し
ない旨のメッセージを出力装置15に出力し(図2のス
テップ713)、次のデバッグコマンドの入力を待つ
(図2のステップ706)。不正なデータの出力ではな
い場合には、次のブレークポイントまでプログラム8を
実行する(図2のステップ714)。
【0043】上述した本発明の第1の実施の形態は、フ
ァイルに出力されるデータが不正な場合には、不正が発
生する部分がどこであるか、あるいは、どのデータが不
正になるか、といった情報がなくてもデバッグでき、こ
のため、デバッガの操作性が向上し、デバッグ作業の効
率も向上するという効果を奏する。
【0044】次に、本発明の第1の実施の形態の一実施
例の動作を詳細に説明する。
【0045】図6を参照すると、ユーザは比較対象ファ
イルの対として、RESULT1とOUTPUT1とを
環境変数CMPFILE1に指定したとする。また、デ
バッグ対象のプログラム8の名前がa.out、デバッ
ガ7を起動するコマンドをdebugとする。
【0046】“debug a.out”によってデバ
ッガ7が起動されると、比較対象ファイルが指定されて
いるので、ファイル名取得手段1が起動され(図2のス
テップ702)、ファイル対応表9を作成する(図3の
ステップ101)。すなわち、ファイル対応表9の中に
は、結果ファイル名としてのRESULT1と、プログ
ラム8(a.out)の出力ファイル名としてのOUT
PUT1とが格納される(図3のステップ102)。
【0047】また、デバッガ7によって、プログラム8
(a.out)の、ファイルへの出力部分に対してブレ
ークポイントが設定される(図2のステップ705)。
【0048】プログラム8(a.out)の実行を指示
するデバッグコマンドrunが入力されると、プログラ
ム8(a.out)が実行される(図2のステップ70
8)。途中、出力ファイル(OUTPUT1)への出力
のたびに、図2のステップ705で設定したブレークポ
イントでプログラム8(a.out)の実行が停止し、
ファイル出力監視手段4が起動され(図2のステップ7
10)、さらに出力結果比較手段5が起動される(図4
のステップ402)。
【0049】出力結果比較手段5では、最初のうちは、
図6の例では、出力ファイル(RESULT1)内のデ
ータと一致したデータが出力ファイル(OUTPUT
1)に出力されているので、戻り値として0を返す(図
5のステップ509)。そのため、不正なデータの出力
がなかったと判断され(図2のステップ711)、次の
ブレークポイントまでプログラム8(a.out)の実
行が継続される(図2のステップ714)。しかし、図
6に示されるように、出力バッファ12に“31”が格
納されたとき、対応する結果ファイル(RESULT
1)内のデータの値は“1362”であり、両者は一致
しない。そのため、出力結果比較手段5から不正なデー
タ出力を示す戻り値1が返却される(図5のステップ5
08)。
【0050】これにより、デバッガ7は不正なデータが
出力されたと判断し(図2のステップ711)、不正な
データが出力されたことを示すメッセージを出力装置1
5に表示し(図2のステップ713)、ユーザからのデ
バッグコマンド入力待ち状態になる(図2のステップ7
06)。
【0051】次に、本発明の第2の実施の形態について
図面を参照して詳細に説明する。
【0052】図7を参照すると、本発明の第2の実施の
形態は、図1に示された第1の実施の形態における構成
に加え、誤差範囲取得手段3と、誤差許容範囲格納手段
10とを有し、出力結果比較手段5の代わりに出力結果
判定手段6を有する点で異なる。
【0053】誤差範囲取得手段3は、入力装置16から
出力ファイル1(13a)、出力ファイル2(13b)
および出力ファイル3(13c)に対して許される誤差
の範囲が入力されている場合に、その値を誤差許容範囲
格納手段10に格納する。
【0054】出力結果判定手段6は、プログラム8が出
力ファイル1(13a)、出力ファイル2(13b)お
よび出力ファイル3(13c)に対して出力しようとす
るデータと、それぞれの出力ファイルに対応して正しい
結果が格納されている結果ファイル1(14a)、結果
ファイル2(14b)および結果ファイル3(14c)
内の対応するデータとの誤差が、誤差許容範囲格納手段
10に格納されている誤差の範囲内にあるかどうかを判
定する。
【0055】誤差許容範囲格納手段10には、各結果フ
ァイル1,2および3(14a,14bおよび14c)
と各出力ファイル1,2および3(13a,13bおよ
び13c)とのそれぞれ対応するデータ間で許される誤
差の値が誤差範囲取得手段3により格納されている。
【0056】次に、本発明の第2の実施の形態の動作を
図7から図11を参照して詳細に説明する。
【0057】デバッガ7がファイル名取得手段1を起動
し(図8のステップ702)、ファイル名取得手段1の
処理が終了するまでは、第1の実施の形態の動作と同一
であるため説明は省略する。その後、デバッガ7は誤差
範囲取得手段3を起動する(図8のステップ703)。
【0058】誤差範囲取得手段3は、誤差範囲が指定さ
れているかどうかを判断し(図9のステップ301)、
指定されている場合には、指定された値を取得し(図9
のステップ302)、その値を誤差許容範囲格納手段1
0に格納する(図9のステップ303)。誤差範囲が指
定されていない場合には、誤差許容範囲格納手段10に
値0を格納する(図9のステップ304)。
【0059】誤差範囲取得手段3を起動した後に、デバ
ッガ7がプログラム8内の、ファイルに対する出力部分
にブレークポイントを設定する処理(図8のステップ7
05)から、ファイル出力監視手段4がプログラム8が
出力しようとしているファイル名がファイル対応表9内
の出力ファイル名のいずれかと一致するかどうかを判断
する処理(図10のステップ401)までは、第1の実
施の形態の動作と同一であるので、説明は省略する。
【0060】プログラム8が出力しようとしているファ
イルがファイル対応表9内の出力ファイル名のいずれか
と一致した場合には、ファイル出力監視手段4は、出力
結果判定手段6を起動する(図10のステップ40
3)。
【0061】出力結果判定手段6は、プログラム8が出
力しようとしているファイル(出力ファイル)に対応す
る正しい結果が格納されているファイル(結果ファイ
ル)が既にオープンされているかどうかを判断し(図1
1のステップ601)、オープンされていなければオー
プンする(図11のステップ602)。次に、出力バッ
ファ12にデータが格納されているかどうかを判断し
(図11のステップ603)、データが格納されていな
ければファイル出力監視手段4に不正なデータがなかっ
たことを示す値を返す(図11のステップ609)。出
力バッファ12にデータが格納されている場合、結果フ
ァイルからデータを1つ入力し(図11のステップ60
4)、出力ファイル12からもデータを1つ入力し(図
11のステップ605)、両者の相対誤差を計算する
(図11のステップ606)。計算した相対誤差と誤差
許容範囲格納手段10に格納されている値とを比較する
(図11のステップ607)。計算した相対誤差の方が
大きければ不正なデータの出力を示す戻り値をファイル
出力監視手段4に返す(図11のステップ608)。一
方、計算した相対誤差が、誤差許容範囲格納手段10に
格納されている値以下の場合には、出力バッファ12内
の次のデータについて同様の処理(図11のステップ6
03からステップ607)を繰り返す。
【0062】ファイル出力監視手段4は、出力結果判定
手段6の戻り値をそのままデバッガ7に戻す。
【0063】ファイル出力監視手段4の処理が終了した
後のデバッガ7の処理は、第1の実施の形態の動作と同
一であるので説明は省略する。
【0064】上述した本発明の第2の実施の形態は、プ
ログラム8が出力するデータと正しい結果のデータとの
比較において、マシンアーキテクチャやプログラムをコ
ンパイルするときのオプションの差等によって生じる演
算誤差を考慮することができ、演算誤差のために正しい
結果と僅かの違いが生じたために不正なデータの出力で
あることを示すメッセージが表示されるのを抑止するこ
とができる。このため、表示されたメッセージが演算誤
差によるものかどうかをユーザが確認する必要がなくな
り、デバッグ作業の効率が向上するという効果を奏す
る。
【0065】次に、本発明の第2の実施の形態の一実施
例の動作を詳細に説明する。
【0066】図12を参照すると、ユーザは比較対象フ
ァイルの対として、RESULT1とOUTPUT1と
を環境変数CMPFILE1に、RESULT2とOU
TPUT2とを環境変数CMPFILE2に、RESU
LT3とOUTPUT3とを環境変数CMPFILE3
に、それぞれ指定したとする。また、許される誤差の範
囲として環境変数CMPERRORに値0.0001が
指定されたとする。さらに、デバッグ対象のプログラム
8の名前がa.out、デバッガ7を起動するコマンド
をdebugとする。
【0067】“debug a.out”によってデバ
ッガが起動されると、比較対象ファイルが指定されてい
るので、ファイル名取得手段1が起動され(図8のステ
ップ702)、ファイル対応表9を作成する(図3のス
テップ101)。ファイル対応表9の中には、結果ファ
イル名としてのRESULT1、RESULT2および
RESULT3と、プログラム8(a.out)の出力
ファイル名としてのOUTPUT1、OUTPUT2お
よびOUTPUT3とがそれぞれ対になって格納される
(図3のステップ102)。
【0068】また、デバッガによって、プログラム8
(a.out)の、ファイルへの出力部分に対してブレ
ークポイントが設定される(図8のステップ705)。
【0069】プログラム8(a.out)の実行を指示
するデバッグコマンドrunが入力されると、プログラ
ム8(a.out)が実行される(図8のステップ70
8)。途中、ファイル名がOUTPUT1またはOUT
PUT2またはOUTPUT3のファイルへの出力が生
じると、そのたびに図8のステップ705で設定したブ
レークポイントでプログラム8(a.out)の実行が
停止し、ファイル出力監視手段4が起動され(図2のス
テップ710)、さらに出力結果判定手段6が起動され
る(図10のステップ403)。
【0070】出力結果判定手段6では、出力ファイル
(OUTPUT1)に出力するデータに対しては結果フ
ァイル(RESULT1)、出力ファイル(OUTPU
T2)に出力するデータに対しては結果ファイル(RE
SULT2)、出力ファイル(OUTPUT3)に出力
するデータに対しては結果ファイル(RESULT3)
内のそれぞれ対応するデータとの相対誤差を計算する
(図11のステップ606)。プログラム8(a.ou
t)が出力するデータを出力データ、対応する正しい結
果のデータを結果データとすると、相対誤差は{(結果
データ−出力データ)/結果データ}の値であるが、出
力結果判定手段6で誤差許容範囲かどうかを判断する場
合(図11のステップ606)では、この相対誤差の絶
対値と誤差許容範囲格納手段10の値を比較する(図1
1のステップ607)。
【0071】図12の例では、最初のうちは、出力ファ
イル(OUTPUT1,2および3)のどのファイルに
対しても相対誤差が誤差許容範囲であるため、出力結果
判定手段6からは、0が返され(図11のステップ60
9)、不正データの出力を示すメッセージは表示されな
い。しかし、出力ファイル(OUTPUT2)に対する
出力で、出力バッファ12にデータ“2862.43
2”が格納されたとき、そのデータに対する結果ファイ
ル(RESULT2)内のデータは“8692.93
5”であり、このときの相対誤差は“0.6707”と
なり誤差許容範囲格納手段10に格納されている値
“0.0001”を越えてしまう。したがって、出力結
果判定手段6は戻り値として1を返す(図11のステッ
プ608)。
【0072】ファイル出力監視手段4も1を返すため、
デバッガ7は、不正なデータの出力であることを示すメ
ッセージを出力し(図8のステップ713)、ユーザか
らのデバッグコマンド入力待ち状態になる(図8のステ
ップ706)。
【0073】次に、本発明の第3の実施の形態について
図面を参照して詳細に説明する。
【0074】図13を参照すると、本発明の第3の実施
の形態は、図7に示された第2の実施の形態における構
成に対して、ファイル名取得手段1と誤差範囲取得手段
3に代えてファイル情報取得手段2を有し、ファイル対
応表9と誤差許容範囲格納手段10に代えてファイル情
報領域11を有する点で異なる。
【0075】ファイル情報取得手段2は、入力装置16
から結果ファイル名および出力ファイル名が入力されて
いる場合に、結果ファイル名、出力ファイル名およびそ
の出力ファイルに対する誤差許容範囲を格納する領域す
なわちファイル情報領域11をメモリ上に確保し、結果
ファイル名および出力ファイル名をファイル情報領域1
1に格納し、さらにその出力ファイルに対して許される
誤差の範囲が指定されている場合には、その値をファイ
ル情報領域11に格納する。結果ファイル名、出力ファ
イル名および誤差許容範囲が複数入力されている場合に
は、それら全てをファイル情報領域11に格納する。
【0076】ファイル情報領域11には、ファイル情報
取得手段2によって、結果ファイル名、出力ファイル
名、誤差許容範囲の組が格納される。結果ファイル名、
出力ファイル名が複数指定されている場合には、それら
の組が全て格納される。
【0077】次に、本発明の第3の実施の形態の動作を
図13から図15を参照して詳細に説明する。
【0078】ユーザは、プログラム8を別のマシンでの
実行あるいは別のオプションを指定してコンパイルし、
実行した場合などにより、既に正しい結果のファイルが
存在する場合、そのファイル(結果ファイル)の名前
と、プログラム8の実行によって出力されるファイル
(出力ファイル)の名前と、2つのファイル内のデータ
間で許される誤差の範囲を入力装置16から入力する。
【0079】デバッガ7は、結果ファイルおよび出力フ
ァイルの情報が入力されているかどうかを判断し(図1
4のステップ701)、入力されている場合にはファイ
ル情報取得手段2を起動する(図14のステップ70
4)。
【0080】ファイル情報取得手段2は、入力された情
報の数やファイル名の長さ等を考慮し、ファイル情報1
1の領域をメモリ上に確保し(図15のステップ20
1)入力された結果ファイル名、出力ファイル名をファ
イル情報領域11に格納し(図15のステップ20
2)、その出力ファイルに対して許される誤差の範囲が
指定されていればその値を取得し(図15のステップ2
04)、ファイル情報領域11に格納する(図15のス
テップ206)。一方、許される誤差の範囲の指定がな
ければ、値0をファイル情報領域11に格納する(図1
5のステップ205)。ユーザが入力した結果ファイル
および出力ファイル全てに対して、上記処理(図15の
ステップ202からステップ206)を繰り返した後、
デバッガ7に制御を戻す(図15のステップ208)。
【0081】デバッガ7は、ファイル情報取得手段2を
起動した後で、プログラム8内の、ファイルに対する出
力部分にブレークポイントを設定し(図14のステップ
705)、ユーザからのデバッグコマンドの入力を待つ
(図14のステップ706)。
【0082】結果ファイルおよび出力ファイルに関する
情報が入力されていない場合にも、ユーザからのデバッ
グコマンドの入力を待つ(図14のステップ706)。
【0083】これ(図14のステップ706)以降の処
理については、第2の実施の形態の動作が、各比較対象
ファイル全てに対して同じ誤差許容範囲格納手段10に
格納された値に基づいて不正なデータかどうかの判定を
行っているのに対し、本実施の形態では、各ファイルご
とにファイル情報領域11に格納された値を用いること
を除いて、第2の実施の形態の動作と同一である。
【0084】上述した第3の実施の形態は、プログラム
8が出力するファイルごとに、出力するデータに許され
る誤差の範囲を指定できるため、より細かな誤差の考慮
ができる。すなわち、プログラム8が出力するファイル
によってデータの演算誤差が異なる場合や、特に高精度
な結果の出力が要求されるファイルがある場合など、他
のファイルと同一の誤差で処理できない場合に有効であ
る。たとえば、許される誤差の値として最も大きな値に
よって全てのファイルを処理してしまうと、不正なデー
タの出力やデータの精度の低下などを見逃してしまう恐
れがあり、逆に、最も小さな値によって全てのファイル
を処理してしまうと、許される誤差に対しても不正なデ
ータの出力を示すメッセージが表示されてしまう場合が
ある。本発明の第3の実施の形態では、このような不都
合を抑止することができる。このため、デバッグ作業の
効率がさらに向上する。
【0085】
【発明の効果】第1の効果は、ファイルに出力されるデ
ータが不正な場合に、不正が発生する部分がどこである
か、あるいは、どのデータが不正になるか、といった情
報がなくてもデバッグできることにある。この結果、デ
バッガの操作性が向上し、デバッグ作業の効率(生産性
および保守性)も向上する。
【0086】これは、ファイルへの出力部分にブレーク
ポイントを設定し、そのブレークポイントでプログラム
の実行が停止した場合に、出力するデータと正しいデー
タを比較するためである。
【0087】第2の効果は、プログラムを実行するマシ
ンのアーキテクチャや、プログラムをコンパイルすると
きに指定するオプションの差による演算誤差を無視でき
ることにある。この結果、出力されるメッセージに対す
る余分な確認作業が不要になり、デバッグ作業の効率が
向上する。
【0088】これは、ファイルに出力するデータと正し
いデータを比較する場合に、両者の差が許される誤差の
範囲内であれば、正しいデータの出力と判定するためで
ある。
【0089】第3の効果は、出力するファイルごとに許
される誤差の範囲を変えることができることにある。こ
の結果、不必要なメッセージの出力をさらに抑止するこ
とができ、デバッグ作業の効率がより向上する。
【0090】これは、プログラムが実行中に出力するフ
ァイルごとに許される誤差の範囲を設定できるためであ
る。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態を示すブロック図で
ある。
【図2】本発明の第1の実施の形態におけるデバッガの
動作を示す流れ図である。
【図3】本発明の第1の実施の形態におけるファイル名
取得手段の動作を示す流れ図である。
【図4】本発明の第1の実施の形態におけるファイル出
力監視手段の動作を示す流れ図である。
【図5】本発明の第1の実施の形態における出力結果比
較手段の動作を示す流れ図である。
【図6】本発明の第1の実施の形態の一実施例を示す説
明図である。
【図7】本発明の第2の実施の形態を示すブロック図で
ある。
【図8】本発明の第2の実施の形態におけるデバッガの
動作を示す流れ図である。
【図9】本発明の第2の実施の形態における誤差範囲取
得手段の動作を示す流れ図である。
【図10】本発明の第2の実施の形態におけるファイル
出力監視手段の動作を示す流れ図である。
【図11】本発明の第2の実施の形態における出力結果
判定手段の動作を示す流れ図である。
【図12】本発明の第2の実施の形態における一実施例
を示す説明図である。
【図13】本発明の第3の実施の形態を示すブロック図
である。
【図14】本発明の第3の実施の形態におけるデバッガ
の動作を示す流れ図である。
【図15】本発明の第3の実施の形態におけるファイル
情報取得手段の動作を示す流れ図である。
【図16】本発明の第3の実施の形態の一実施例を示す
説明図である。
【符号の説明】 1 ファイル名取得手段 2 ファイル情報取得手段 3 誤差範囲取得手段 4 ファイル出力監視手段 5 出力結果比較手段 6 出力結果判定手段 7 デバッガ 8 プログラム 9 ファイル対応表 10 誤差許容範囲格納手段 11 ファイル情報 12 出力バッファ 13 出力ファイル 14 結果ファイル 15 出力装置 16 入力装置 17 制御部 18 メモリ 19 外部記憶装置

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 正しいデータを予め格納した第1の格納
    手段と、 第2の格納手段と、 前記第2の格納手段へのデータの出力を指示するデータ
    出力指示部分にブレークポイントが設定されたデバッグ
    対象プログラムを実行し、該プログラムの実行が前記ブ
    レークポイントで停止した場合に、前記データ出力指示
    部分の指示により前記第2の格納手段に出力されるデー
    タと該データに対応する前記第1の格納手段内の正しい
    データとを比較し、前記プログラムの検査を行うデバッ
    グ手段とを備えたことを特徴とするプログラム・デバッ
    グ・システム。
  2. 【請求項2】 正しいデータを予め格納した第1の格納
    手段と、 第2の格納手段と、 誤差許容範囲を示す許容値を格納した第3の格納手段
    と、 前記第2の格納手段へのデータの出力を指示するデータ
    出力指示部分にブレークポイントが設定されたデバッグ
    対象プログラムを実行し、該プログラムの実行が前記ブ
    レークポイントで停止した場合に、前記データ出力指示
    部分の指示により前記第2の格納手段に出力されるデー
    タと該データに対応する前記第1の格納手段内の正しい
    データとの差を求め、該差が前記第3の格納手段に格納
    された前記許容値の示す許容範囲内であるか否かを調
    べ、前記プログラムの検査を行うデバッグ手段とを備え
    たことを特徴とするプログラム・デバッグ・システム。
  3. 【請求項3】 ユーザから指定されるデータ特定情報に
    基づき、前記プログラム中の該当する前記データ出力指
    示部分にブレークポイントを設定する設定手段を含むこ
    とを特徴とする請求項1または2記載のプログラム・デ
    バッグ・システム。
  4. 【請求項4】 デバッグ対象プログラムの実行において
    正しい結果のファイルとの比較が指定された場合に、前
    記プログラム内のファイルに対する出力部分にブレーク
    ポイントを設定する第1のステップと、該ブレークポイ
    ントでプログラムの実行が停止した場合に、比較対象の
    ファイルに対する出力であるならば、正しい結果のファ
    イルの該当するデータと前記プログラムが出力しようと
    しているデータとを比較する第2のステップと、該第2
    のステップで両データが一致しない場合にはメッセージ
    を出力し、デバッグコマンドの入力を可能にする第3の
    ステップとを含むことを特徴とするプログラム・デバッ
    グ方法。
  5. 【請求項5】 正しいデータと前記プログラムが出力し
    ようとするデータとの間の差が許される誤差の範囲内で
    あれば、正しいデータの出力と判定する第4のステップ
    を含むことを特徴とする請求項4記載のプログラム・デ
    バッグ方法。
  6. 【請求項6】 前記許される誤差の範囲を前記プログラ
    ムが出力するファイルごとに設定する第5のステップを
    含むことを特徴とする請求項5記載のプログラム・デバ
    ッグ方法。
  7. 【請求項7】 第1の格納手段へのデータの出力を指示
    するデータ出力指示部分にブレークポイントが設定され
    たデバッグ対象プログラムの実行を制御する第1の処理
    と、 前記プログラムの実行が前記ブレークポイントで停止し
    た場合に、前記データ出力指示部分の指示により前記第
    1の格納手段に出力されるデータと該データに対応する
    第1の格納手段内の正しいデータとを比較し、前記プロ
    グラムの検査を行う第2の処理とをコンピュータに実行
    させることを特徴とするプログラム・デバッグ用プログ
    ラムを記憶した記憶媒体。
  8. 【請求項8】 第1の格納手段へのデータの出力を指示
    するデータ出力指示部分にブレークポイントが設定され
    たデバッグ対象プログラムの実行を制御する第1の処理
    と、 前記プログラムの実行が前記ブレークポイントで停止し
    た場合に、前記データ出力指示部分の指示により前記第
    1の格納手段に出力されるデータと該データに対応する
    第2の格納手段内の正しいデータとの差を求め、誤差が
    第3の格納手段に格納された許容値の示す許容範囲内で
    あるか否かを調べ、前記プログラムの検査を行う第2の
    処理とをコンピュータに実行させることを特徴とするプ
    ログラム・デバッグ用プログラムを記憶した記憶媒体。
  9. 【請求項9】 ユーザから指定されるデータ特定情報に
    基づき、前記プログラム中の該当する前記データ出力指
    示部分にブレークポイントを設定する第3の処理とをコ
    ンピュータに実行させることを特徴とする請求項7また
    は8記載のプログラム・デバッグ用プログラムを記憶し
    た記憶媒体。
JP8241969A 1996-09-12 1996-09-12 プログラム・デバッグ・システム、プログラム・デバッグ方法およびデバッグ用プログラムを記憶した記憶媒体 Pending JPH1091479A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8241969A JPH1091479A (ja) 1996-09-12 1996-09-12 プログラム・デバッグ・システム、プログラム・デバッグ方法およびデバッグ用プログラムを記憶した記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8241969A JPH1091479A (ja) 1996-09-12 1996-09-12 プログラム・デバッグ・システム、プログラム・デバッグ方法およびデバッグ用プログラムを記憶した記憶媒体

Publications (1)

Publication Number Publication Date
JPH1091479A true JPH1091479A (ja) 1998-04-10

Family

ID=17082284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8241969A Pending JPH1091479A (ja) 1996-09-12 1996-09-12 プログラム・デバッグ・システム、プログラム・デバッグ方法およびデバッグ用プログラムを記憶した記憶媒体

Country Status (1)

Country Link
JP (1) JPH1091479A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018018121A (ja) * 2016-07-25 2018-02-01 富士通株式会社 データベース制御プログラム、データベース制御方法及びデータベース制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018018121A (ja) * 2016-07-25 2018-02-01 富士通株式会社 データベース制御プログラム、データベース制御方法及びデータベース制御装置

Similar Documents

Publication Publication Date Title
US7016807B2 (en) Device and method for monitoring a program execution
US5361352A (en) Method for debugging in a parallel computer system and system for the same
US20030204641A1 (en) Programming model for concurrent programs
US7721250B2 (en) System and method for interactive and integrated software development process and phases
CN114564394B (zh) 一种测试用例确定方法、系统及相关组件
JPH1091479A (ja) プログラム・デバッグ・システム、プログラム・デバッグ方法およびデバッグ用プログラムを記憶した記憶媒体
JP2765549B2 (ja) コンピュータシステムにおける動作評価システム
EP0801348A1 (en) Method of monitoring the operation of a computer
JPH11224211A (ja) ソフトウェア検査支援装置
JP2006155047A (ja) 検証システム及び検証方法
JPH01177165A (ja) 配列の定義/引用関係検査方式
JP2743889B2 (ja) プログラム評価の方法および装置
KR100538282B1 (ko) 체크 포인트를 이용한 실시간 병렬 프로그램 디버깅 방법
WO2022249421A1 (ja) コード実装漏れ検出装置、コード実装漏れ検出方法、及びプログラム
JPH06274370A (ja) デバッガ装置
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts
JP2746180B2 (ja) プログラムテスト支援管理装置及びプログラムテスト支援管理方法
JP2002116926A (ja) プログラム処理装置およびプログラム処理方法
JPS63174130A (ja) 値が未設定の変数名の検出方式
JPH08137714A (ja) マルチタスクプログラムのデバッグ方法およびデバッグシステム
JPH11191072A (ja) デバッグのブレイク処理方法及びデバッグ処理装置
JPH09265385A (ja) ソフトウェア整合性管理方法
WO2022249420A1 (ja) テスト生成装置、テスト生成方法、及びプログラム
JPH01205348A (ja) プログラムデバッグ方式
JPH0695910A (ja) 異常処理のための対話型デバッグ制御方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19991102