(57)【特許請求の範囲】
【請求項１】
作成されたプログラムを構成する各ステップの命令を、ワークメモリに一時記憶された一つ前のステップで実行された命令の実行結果を用いて実行し、この実行結果を前記ワークメモリの前記一つ前の実行結果に上書きすると共に、必要に応じてこの実行結果を出力するプログラムデバッグ装置において、
前記各ステップの命令が実行される毎に、該当命令の実行順に、前記ワークメモリに書込まれた該当命令の実行結果を実行番号及びステップ番号と共にトレースファイルに記憶保持していく手段と、
ステップ番号を指定したデバッグ再実行指令に応動して、前記トレースファイルに記憶された該当ステップ番号の一つ前に実行された命令のステップ番号を前記実行番号を用いて求め、このステップ番号の実行結果を抽出して前記ワークメモリに書込む手段と、
この手段にて前記ワークメモリに実行結果が書込まれた後に、前記指定されたステップ番号の命令を実行する手段と
を備えたプログラムデバッグ装置。
【請求項２】
請求項１に記載されたプログラムデバッグ装置としてコンピュータを機能させるためのプログラムを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、作成されたプログラムをデバッグするプログラムデバッグ装置、及びこのプログラムデバッグ装置に組込まれ、プログラムデバッグを行うためのプログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
作成されたプログラムをデバッグするプログラムデバッグ装置は例えば図５に示すように構成されている。
作成されたプログラム１においては、各ステップ番号２に対して命令３が書き込まれている。プログラムカウンタ４はステップ番号を計数する。プログラム実行部５は、プログラムカウンタ４のカウント値（計数値）が指定するステップ番号２の命令３を実行し、その実行結果をワークメモリ６へ書込む。この場合、一つ前に実行された命令３の実行結果を用いて次の命令３を実行する場合が多々ある。ワークメモリ５は各命令３の実行結果を一時的に記憶する機能を有しているので、新たな命令３の実行結果が生じると、この実行結果は先に実行された命令の実行結果に上書きされる。
【０００３】
また、プログラム実行部５は、各ステップの命令３を実行する過程で、入出力Ｉ／Ｏ７を介して、外部メモリ８へデータを書込んだり、外部メモリ８からデータを取込む。
【０００４】
さらに、操作部９を介して、操作者が指定したステップ番号２でプログラムカウンタ４の計数動作を一時停止させて、そのステップ番号２の命令３の実行結果を表示部１０に表示させることができる。
【０００５】
このように、操作者は、作成されたプログラム１におけるデバッグ動作において、任意のステップ番号２で、デバッグ動作を一時停止させて、その時点での命令３の実行結果を表示部１０で確認できる。
【０００６】
【発明が解決しようとする課題】
しかしながら、図５に示したプログラムデバッグ装置においても、まだ改良すべき次のような課題があった。
【０００７】
すなわち、操作者は、プログラム１のデバッグ動作過程における任意位置での実行結果を確認することができる。しかし、このデバッグ動作はプログラム１におけるステップ番号の若い順に各命令３が実行されていくので、未実行の命令３のステップ番号２を指定して、この命令３の実行結果を確認することが可能である。
【０００８】
しかし、実行済みのステップ番号における命令３の実行結果を表示させることができない。この理由は、各ステップにおける各命令３の実行結果はワークメモリ６に一旦、記憶されるが、次のステップの命令３が実行されると、その実行結果により上書きされ、ワークメモリ６上から消去されるから、たとえ、ステップ番号２で命令３を指定しても、該当命令３の一つ前の命令３の実行結果が不明であるので、該当命令３を実行できないからである。
【０００９】
したがって、作成済みのプログラムに対する１回目のデバック処理の終了後、このデバッグ実行結果に異常点が発見された場合、その異常原因を究明するために、ステップ番号を指定して、該当位置の命令を再実行させる必要がある。このような場合、プログラム１のデバッグ動作をステップ番号２の先頭から再度やり直す必要がある。
【００１０】
そのため、デバッグ対象のプログラムが長い場合、その都度、プログラムの最初からデバッグ動作を実行すると、デバッグ作業に多大の手間と作業時間が必要となり、このプログラムデバッグ装置を用いたプログラムに対するデバッグ作業能率が大幅に低下する。
【００１１】
なお、ワープロソフトにおいては、オペレータが誤ってキー操作した場合において、この誤ったキー操作をキャンセルするために、プログラムの実行状態を一つ前のキー操作状態に戻す「ＵＮＤＯ」機能が組込まれている。
【００１２】
しかし、この「ＵＮＤＯ」機能においては、キー入力単位で、過去の実行状態をメモリに記憶保持している。一つのキー操作で複数の命令が実行されることは頻繁に発生するので、たとえこの「ＵＮＤＯ」機能をプログラムデバッグ装置に組込んだとしても、操作者は、各命令毎の実行結果を得ることができない。
【００１３】
さらに、この「ＵＮＤＯ」機能においては、実行されたキー操作を、キー操作一つ一つ順番に遡って行くので、１回の操作で目標のキー操作の実行状態を再現できない。
【００１４】
本発明はこのような事情に鑑みてなされたものであり、各ステップの命令の実行結果を記憶保持することによって、デバッグ実行済みのプログラムにおける任意位置の命令を単独で実行させることができ、プログラムにおけるデバッグ作業能率を大幅に向上できるプログラムデバッグ装置及びプログラムデバッグを行うためのプログラムを記録した記録媒体を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明は、作成されたプログラムを構成する各ステップの命令を、ワークメモリに一時記憶された一つ前のステップで実行された命令の実行結果を用いて実行し、この実行結果をワークメモリの一つ前の実行結果に上書きすると共に、必要に応じてこの実行結果を出力するプログラムデバッグ装置に適用される。
【００１６】
そして、上記課題を解消するために、本発明のプログラムデバッグ装置においては、各ステップの命令が実行される毎に、該当命令の実行順に、ワークメモリに書込まれた該当命令の実行結果を実行番号及びステップ番号と共にトレースファイルに記憶保持していく手段と、ステップ番号を指定したデバッグ再実行指令に応動して、トレースファイルに記憶された該当ステップ番号の一つ前に実行された命令のステップ番号を実行番号を用いて求め、このステップ番号の実行結果を抽出してワークメモリに書込む手段と、この手段にてワークメモリに実行結果が書込まれた後に、指定されたステップ番号の命令を実行する手段とを備えている。
【００１７】
このように構成されたプログラムデバック装置においては、作成されたプログラムにおける各ステップの命令が実行される毎に、該当命令の実行順に、ワークメモリに書込まれた該当命令の実行結果を実行番号及びステップ番号と共にトレースファイルに記憶保持される。
【００１８】
このように、実行済みの各命令の実行結果が破棄されずに、トレースファイルに記憶保持されていることは、任意位置の命令における一つ前の命令に対する実行結果も記憶保持されていることになる。その結果、任意位置の命令を一つ前の命令に対する実行結果を用いて即座に実行することができる。
【００１９】
よって、デバッグ済みのプログラムにおける任意位置の命令に対するデバッグが再実行可能となり、作成済みのプログラムに対する１回目のデバッグ処理の終了後、このデバッグ実行結果に異常点が発見された場合における異常原因究明作業の能率を向上できる。
【００２３】
さらに別の発明は、上述した発明のプログラムデバッグ装置としてコンピュータを機能させるためのプログラムを記憶したコンピュータ読み取り可能な記録媒体である。
【００２４】
そして、この記録媒体に記憶されたプログラムは、プログラムデバッグ装置としてコンピユータに、各ステップの命令が実行される毎に、該当命令の実行順に、ワークメモリに書込まれた該当命令の実行結果を実行番号及びステップ番号と共にトレースファイルに記憶保持させ、ステップ番号を指定したデバッグ再実行指令に応動して、トレースファイルに記憶された該当ステップ番号の一つ前に実行された命令のステップ番号を実行番号を用いて求め、このステップ番号の実行結果を抽出してワークメモリに書込ませ、ワークメモリに実行結果が書込まれた後に、指定されたステップ番号の命令を実行させるようにしている。
【００２５】
【発明の実施の形態】
以下、本発明の一実施形態を図面を用いて説明する。
図１は実施形態に係るプログラムデバッグ装置の概略構成を示すブロック図である。図５に示す従来のプログラムデバッグ装置と同一部分には同一符号を付して重複する部分の詳細説明を省略する。
【００２６】
作成されたプログラム１においては、各ステップ番号２に対して命令３が書き込まれている。プログラムカウンタ４はステップ番号を計数する。プログラム実行部５は、プログラムカウンタ４のカウント値（計数値）ＣＮが指定するステップ番号２の命令３を実行し、その実行結果をワークメモリ６へ書込む。ワークメモリ５は各命令３の実行結果を一時的に記憶する機能を有し、新たな命令３の実行結果が生じると、この実行結果はワークメモリ６に記憶された先に実行された命令の実行結果に上書きされる。
【００２７】
また、プログラム実行部５は、各ステップの命令３を実行する過程で、入出力Ｉ／Ｏ７を介して、外部メモリ８へデータを書込んだり、外部メモリ８からデータを取込む。
【００２８】
さらに、操作部９を介して、操作者が指定したステップ番号２でプログラムカウンタ４の計数動作を一時停止させて、そのステップ番号２の命令３の実行結果を表示部１０に表示させることができる。
【００２９】
さらに、この実施形態のプログラムデバッグ装置においては、データ取込部１１、実行結果バッファ１２、実行結果書込部１３、トレースファイル１４、戻り位置指定部１５、実行結果抽出部１６が設けられている。
【００３０】
このプログラム実行部５、データ取込部１１、実行結果書込部１３、実行結果抽出部１６は、ＲＡＭやＲＯＭ等の記憶媒体に記録されたプログラムで実現される。
【００３１】
トレースファイル１４内には、図２に示すように、プログラム実行部５における命令３の実行番号１７順に、該当プログラム実行部５で実行したプログラム１の各命令３、各ステップ番号２，各実行結果１８が書込まれる。なお、実行番号１７とステップ番号２とが一致しないのは、命令３が分岐命令等で、次に実行する命令３が必ずしも次のステップ番号２の命令３であるとは限らないからである。
【００３２】
データ取込部１１は、プログラム実行部５が実行してワークメモリ６に書込まれた各実行結果１８を、実行番号１７、ステップ番号２、命令３と共に取込んで実行結果バッファ１２へ書込む。
【００３３】
実行結果書込部１３は、実行結果バッファ１２が、実行結果１８で満杯になると実行結果バッファ１２に記憶された実行結果１８をトレースファイル１４へ移動させる。
【００３４】
戻り位置指定部１５は、操作者からステップ番号２又は命令３を指定したデバッグ再実行指令が入力されると、入力されたステップ番号２又は命令３をプログラム実行部５及び実行結果抽出部１６へ送出すると共に、入力されたステップ番号２をプログラムカウンタ４の計数値ＣＮに設定する。
【００３５】
実行結果抽出部１６は、戻り位置指定部１５から指定されたステップ番号２又は命令３の一つ前（直前）に実行された命令３の実行結果１８をワークメモリ６へ書込む。
【００３６】
このような構成のプログラムデバック装置は図３に示す流れ図に従って作成されたプログラム１に対する１回目のデバック処理動作を実行する。
【００３７】
まず、プログラムカウンタ４の計数値ＣＮを「０」の初期値に設定する（Ｓ１）。次に、プログラム実行部５が起動してプログラムカウンタ４の計数値ＣＮが示すステップ番号２の命令３を読出して実行する（Ｓ２）。そして、その実行結果１８を実行番号１７，ステップ番号２、該当命令３と共にワークメモリ６へ書込む（Ｓ３）。この命令３の実行過程で、必要ならば、ワークメモリ６に記憶されている一つ前に実行された命令３の実行結果を用いる。
【００３８】
次に、データ取込部１１が起動して、ワークメモリ６に今回書込まれた実行結果１８を実行番号１７、ステップ番号２、命令３と共に、実行結果バッファ１２へ書込む（Ｓ４）。
【００３９】
実行結果バッファ１２が満杯になると（Ｓ５）、実行結果書込部１３が起動して、実行結果バッファ１２に記憶された実行結果１８を読出して図２に示すトレースファイル１４へ追加書込する（Ｓ６）。
その後、プログラムカウンタ４の計数値ＣＮを１だけ更新する（Ｓ７）。
【００４０】
ＣＮ＝ＣＮ＋１
更新後の計数値ＣＮがプログラム１の最終のステップ数で定まる最大値ＣＮmaxを超えていないことを確認すると（Ｓ８）、Ｓ２へ戻り、次のステップ番号の命令３を読出して実行する。
【００４１】
更新後の計数値ＣＮが最大値ＣＮmaxを超えると、作成されたプログラム１に対する１回目のデバック処理動作を終了する。
【００４２】
なお、図３の流れ図においては、作成されたプログラム１の各命令３に分岐条件が含まれない場合を示したが、分岐命令が含まれる場合は、分岐命令の実行結果に基づいて、プログラムカウンタ４の計数値ＣＮが分岐先のステップ番号に移行する。しかし、たとえステップ番号２が不連続に移動したとしても、プログラム実行部５が行う各命令３の実行番号１７は一連の続き番号を維持する。
【００４３】
また、作成されたプログラム１に対する１回目のデバック処理動作が終了した後に、操作者が戻り位置指定部１５からステップ番号２を指定したデバッグ再実行指令が入力されると、図４に示す流れ図に従って、デバッグ再実行処理を実行する。
【００４４】
ステップ番号２を指定したデバッグ再実行指令が入力されると（Ｑ１）、実行結果抽出部１６が起動して、戻り位置指定部１５から指定されたステップ番号（ＣＮａ）の一つ前（直前）ステップ番号（ＣＮａ−１）の命令３の実行結果１８をトレースメモリ１４から読出して（Ｑ２）、ワークメモリ６へ書込む（Ｑ３）。次に、プログラムカウンタ４の計数値ＣＮを指定ステップ番号ＣＮａに一致させる（Ｑ４）。
【００４５】
ＣＮ＝ＣＮａ
そして、プログラム実行部５を起動して、プログラムカウンタ４の計数値ＣＮが指定するステップ番号２の命令３を読出して実行する。この場合、必要ならば、ワークメモリ６に実行結果抽出部１６にて書込まれた一つ前に実行された命令の実行結果を用いる（Ｑ５）。そして、今回の新たな実行結果１８をワークメモリ６へ書込む（Ｑ６）。その後、今回の実行結果１８を表示部１０に表示出力する（Ｑ７）。
【００４６】
そして、操作部９からデバッグの継続実行指示が入力されなければ、所定の終了処理を実行して（Ｑ９）、今回のデバッグ再実行処理を終了する。
【００４７】
また、操作部９からデバッグの継続実行指示が入力されると、図３のＳ７へ移行して、プログラムカウンタ４の計数値ＣＮを１だけ更新した後、Ｓ２へ戻り、次のステップ番号２の命令３を読出して実行する。すなわち、指定されたステップ番号からプログラム１のデバッグ処理動作を開始する。
【００４８】
このように構成されたプログラムデバッグ装置においては、作成されたプログラム１に対する１回目のデバッグ処理動作過程において、各ステップ番号２の命令３がプログラム実行部５で実行される毎に、ワークメモリ６に書込まれた該当命令３の実行結果１８が実行番号１７、ステップ番号２、該当命令３と共にトレースファイル１４に時系列的に記憶保持されて行く。
【００４９】
そして、作成されたプログラム１に対する１回目のデバッグ処理動作が終了した後に、デバッグ実行結果に異常点が発見された場合に、ステップ番号２を指定してデバッグ再実行指令を入力すると、ステップ番号２の命令３一つ前の命令３に対する実行結果を用いて即座に実行される。
【００５０】
よって、デバッグ済みのプログラム１における任意位置の命令３に対するデバッグが再実行可能となり、作成済みのプログラム１に対する１回目のデバッグ処理の終了後、このデバッグ実行結果に異常点が発見された場合における異常原因究明作業の能率を向上できる。
【００５１】
なお、本発明は上述した実施形態に限定されるものではない。実施形態装置においては、ステップ番号で再度デバッグする命令３を指定した。しかし、命令３とステップ番号２とは対応しているので、直接命令３を指定することも可能である。
【００５２】
また、上述した実施形態に説明した装置は、記録媒体に格納したプログラムをコンピュータに読み込ませることで実現させることができる。
【００５３】
ここで本発明における記録媒体としては、磁気ディスク、フロッピーディスク、ハードディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリ等、プログラムを記録でき、かつコンピュータが読み取り可能な記録媒体であれば、その記録形式は何れの形態であってもよい。
【００５４】
また、記録媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。
【００５５】
さらに、本発明における記録媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記録又は一時記録した記録媒体も含まれる。
【００５６】
また、記録媒体は１つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記録媒体に含まれ、媒体構成は何らの構成であってもよい。
【００５７】
なお、本発明におけるコンピュータは、記録媒体に記録されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
【００５８】
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
【００５９】
【発明の効果】
以上説明したように、本発明のプログラムデバッグ装置及びログラムを記録した記録媒体においては、作成されたプログラムに対する１回目のデバッグ処理動作過程において、各ステップの命令の実行結果をトレースファイルに記憶保持している。
【００６０】
その結果、一つ前の命令の実行結果が既知となるので、デバッグ実行済みのプログラムにおける任意位置の命令を単独で実行させることができ、プログラムにおけるデバッグ作業能率を大幅に向上できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係わるプログラムデバッグ装置の概略構成を示すブロック図
【図２】同プログラムデバッグ装置内に形成されたトレースファイルの記憶内容を示す図
【図３】同プログラムデバッグ装置が行うプログラムに対する１回目のデバック処理動作を示す流れ図
【図４】同プログラムデバッグ装置が行うプログラムに対するデバッグ再実行処理動作を示す流れ図
【図５】従来のプログラムデバッグ装置の概略構成を示すブロック図
【符号の説明】
１…プログラム
２…ステップ番号
３…命令
４…プログラムカウンタ
５…プログラム実行部
６…ワークメモリ
ｙ…入出力Ｉ／Ｆ
８…外部メモリ
９…操作部
１０…表示部
１１…データ取込部
１２…実行結果バッファ
１３…実行結果書込部
１４…トレースファイル
１５…戻り位置指定部
１６…実行結果抽出部
１７…実行番号
１８…実行結果
【図１】
0003645452.tif 000002
【図２】
0003645452.tif 000003
【図３】
0003645452.tif 000004
【図４】
0003645452.tif 000005
【図５】
0003645452.tif 000006