(57)【要約】【課題】ソースプログラムの構造を複雑にすることなく、且つソースプログラムのデバッグにかかる手間を抑え、プログラムの開発コストを十分に安価にできるデバッグ装置を提供する。【解決手段】デバッグ装置１は、ソースプログラムにコメントで記述されているデバッグ情報を読み出し、これを用いてソースプログラムをステップ実行する。実行するステップに与える入力値、このときの期待値とを対応付けた情報がデバッグ情報としてソースプログラムに記述されている。このため、ソースプログラムが複雑な構造にならず、ソースプログラムの作成時や修正時における手間も殆ど増加しない。また、デバッグ情報とする入力値については、コメント内に複数記述できるので、入力値を多く記述するだけで、信頼性の高いデバッグが簡単に行える。したがって、プログラムの開発コストを十分に安価にできる。【選択図】図１
2004070561.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ情報が埋め込まれたソースプログラムを、該デバッグ情報を用いてステップ実行し、その結果を出力するデバッグ装置において、
上記ソースプログラムにコメントで記述されている入力値、および該入力値に対する期待値を含む上記デバッグ情報を読み出すデバッグ情報読出手段と、
上記デバッグ情報読出手段が上記デバッグ情報として上記ソースプログラムにコメントで記述されている複数の入力値毎に、上記ソースプログラムに与えたときの出力値と該当する入力値に対する期待値とを比較する比較手段と、
上記比較手段により得た比較結果を出力する比較結果出力手段と、を備え、
上記比較結果出力手段は、上記比較手段において得られた出力値と、このときの入力値に対する上記期待値とが一致していた場合と、不一致であった場合とで、比較結果を異なる形態で出力するデバッグ装置。
【請求項２】
デバッグ情報が埋め込まれたソースプログラムを、該デバッグ情報を用いてステップ実行し、その結果を出力するデバッグ装置において、
上記ソースプログラムにコメントで記述されている入力値、および該入力値に対する期待値を含む上記デバッグ情報を読み出すデバッグ情報読出手段と、
上記デバッグ情報読出手段が読み出した入力値を上記ソースプログラムに与えたときの出力値と、このときの入力値に対する上記期待値と、を比較する比較手段と、
上記比較手段により得た比較結果を出力する比較結果出力手段と、を備えたデバッグ装置。
【請求項３】
上記比較手段は、上記デバッグ情報として上記ソースプログラムにコメントで記述されている複数の入力値毎に、上記ソースプログラムに与えたときの出力値と該当する入力値に対する期待値との比較を実行し、
上記比較結果出力手段は、入力値毎に比較結果を出力する請求項２に記載のデバッグ装置。
【請求項４】
上記比較結果出力手段は、上記比較手段において得られた出力値と、このときの入力値に対する上記期待値とが一致していた場合と、不一致であった場合とで、比較結果を異なる形態で出力する請求項２または３に記載のデバッグ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ソースプログラムをステップ実行し、このソースプログラムの誤り、所謂バグ、を検査するデバッグ装置に関する。
【０００２】
【従来の技術】
従来、作成したソースプログラムにおけるバグの検査に、ソースプログラムをステップ実行するデバッグ装置を利用し、オペレータがソースプログラムに与える入力値をデバッグ装置に入力しながら、該ソースプログラムをステップ実行していた。デバッグ装置は、オペレータが入力した入力値に対する出力値を出力する。オペレータは、出力された出力値と、期待値（ソースプログラムにバグがない場合に返ってくる値）とが一致しているかどうか（出力値が適正であるかどうか）を確認し、一致していればバグがないと判断し、反対に一致していなければバグがあると判断する。
【０００３】
オペレータは、ソースプログラムにバグがあることを確認すると、ソースプログラムを修正し、修正したソースプログラムについてデバッグ装置で上記バグの検査を行う。
【０００４】
なお、ソースプログラムのバグを修正した場合、今回の修正が他の箇所に影響を及ぼすことがあるので、修正前のソースプログラムにおいて入力値に対する出力値が適正であることを確認したステップについても、再度入力値に対する出力値が適正であるかどうかを確認する。
【０００５】
このように、デバッグ作業は、デバッグ装置にステップ実行させているソースプログラムに与える入力値を入力しながら、そのときのソースプログラムの出力値を確認するという作業の繰り返しであり、手間と時間のかかる作業であり、プログラムの開発コストが高価であり、デバッグ作業にかかる手間を削減し、プログラムの開発コストを安価にできるデバッグ装置が要望されている。この要望に対して、ソフト処理でソースプログラムに入力値を与え、そのときの期待値と実際の出力値との比較結果を出力するデバッグ装置が、特開平１１−２５９３３４号や、特開２００１−４３１１０等で提案されている。
【０００６】
【発明が解決しようとする課題】
しかしながら、特開平１１−２５９３３４号は、ソースプログラムに検査項目特定用の識別子を付けた比較割り込み命令を記述し、デバッグ装置がソースプログラムのステップ実行時に上記比較割り込み命令があれば、該命令にしたがってバグを検査する構成であった。このため、プログラム本体と、デバッグ装置にバグを検査させるための上記比較割り込み命令と、を一体的に記述したソースプログラムを作成しなければならず、ソースプログラムの構造が複雑になり、プログラムの作成にかかる手間が増大し、プログラムの開発コストを十分に安価にできないという問題があった。
【０００７】
また、特開２００１−４３１１０は、ソースプログラムとは別に、デバッグ装置がソースプログラムのバグを検査する際に使用するシミュレーションファイルを別に設ける構成であったので、シミュレーションファイルの作成に手間がかかるとともに、デバッグ完了後にシミュレーションファイルをソースプログラム本体から外してコンパイルするという新たな作業が生じ、結果的にプログラムの開発コストを十分に安価にできないという問題があった。
【０００８】
この発明の目的は、ソースプログラムの構造を複雑にすることなく、且つソースプログラムのデバッグにかかる手間および時間を抑え、プログラムの開発コストを十分に安価にできるデバッグ装置を提供することにある。
【０００９】
【課題を解決するための手段】
この発明のデバッグ装置は上記課題を解決するために以下の構成を備えている。
【００１０】
（１）デバッグ情報が埋め込まれたソースプログラムを、該デバッグ情報を用いてステップ実行し、その結果を出力するデバッグ装置において、
上記ソースプログラムにコメントで記述されている入力値、および該入力値に対する期待値を含む上記デバッグ情報を読み出すデバッグ情報読出手段と、
上記デバッグ情報読出手段が読み出した入力値を上記ソースプログラムに与えたときの出力値と、このときの入力値に対する上記期待値と、を比較する比較手段と、
上記比較手段により得た比較結果を出力する比較結果出力手段と、を備えている。
【００１１】
この構成では、デバッグ情報読出手段がソースプログラムにコメントで記述されている入力値、およびこの入力値に対する期待値を読み出し、比較手段が上記デバッグ情報読出手段が読み出した入力値を上記ソースプログラムに与えてステップ実行し、得られた出力値と、このときの入力値に対する上記期待値と、を比較する。比較結果出力手段が、比較手段における比較結果を出力する。
【００１２】
したがって、ソースプログラムのデバッグが出力された比較結果を確認するだけで行え、デバッグにかかる手間を大幅に削減することができる。
【００１３】
また、デバッグ情報がソースプログラムにコメントで記述されるので、ソースプログラムの構造が複雑にならず、ソースプログラムの作成にかかる手間の増加も抑えられる。さらに、デバッグ情報がコメントで記述されているので、ソースプログラムをそのままコンパイルするだけでよい。したがって、プログラムの開発コストを十分に安価にできる。
【００１４】
（２）上記比較手段は、上記デバッグ情報として上記ソースプログラムにコメントで記述されている複数の入力値毎に、上記ソースプログラムに与えたときの出力値と該当する入力値に対する期待値との比較を実行し、
上記比較結果出力手段は、入力値毎に比較結果を出力する。
【００１５】
この構成では、ソースプログラムにコメントで記述されている、複数の入力値毎に、上記ソースプログラムに与えてステップ実行したときに得られた出力値と、このときの入力値に対する上記期待値と、を比較した比較結果が出力されるので、コメントで記述する入力値と、この入力値に対する期待値との組み合わせ総数を多くするだけで、信頼性の高いデバッグが行える。
【００１６】
（３）上記比較結果出力手段は、上記比較手段において得られた出力値と、このときの入力値に対する上記期待値とが一致していた場合と、不一致であった場合とで、比較結果を異なる形態で出力する。
【００１７】
この構成では、上記比較手段において得られた出力値と、このときの入力値に対する上記期待値とが一致していた場合と、不一致であった場合とで、比較結果を異なる形態で出力するので、入力に対する出力が適正でなかったことをオペレータが見落とすのを防止できる。
【００１８】
【発明の実施の形態】
以下、この発明の実施形態であるデバッグ装置について説明する。
【００１９】
図１は、この発明の実施形態であるデバッグ装置の構成を示すブロック図である。この実施形態のデバッグ装置１は、本体の動作を制御する制御部２と、入力操作を行う操作部３と、デバッグ対象のソースプログラムを記憶する記憶部４と、記憶部４に記憶されているソースプログラムについてのデバッグ結果を表示する表示部５と、を備えている。このデバッグ装置１は、所謂パーソナルコンピュータ（ＰＣ）にソースプログラムをステップ実行するデバッガをインストールしたものである。このデバッガの処理については後述する。操作部３は、キーボードやマウス等、公知の入力デバイスで構成される。記憶部４は、デバッグするソースプログラムを記憶するメモリ（ＲＡＭ）である。
【００２０】
なお、記憶部４に記憶するソースプログラムは、本体に内蔵されているハードディスク等の記憶媒体（不図示）から読み出したものであってもよいし、本体にセットされたフロッピィディスク等の記憶媒体（不図示）から読み出したものであってもよい。
【００２１】
ここで、この実施形態のデバッグ装置１でデバッグされるソースプログラムについて説明する。このソースプログラムには、以下に示すようにデバッグ情報が埋め込まれている。ソースプログラムの言語については特に限定されないが、ここではＣ言語で作成されたソースプログラムを例にして説明する。
【００２２】
図２は、この実施形態のデバッグ装置でデバッグされるソースプログラムにおける１ステップを示す図である。図２に示すステップは、入力Ｘに対して、その絶対値を返す処理を行う。
【００２３】
また、図２示すようにデバッグ情報はコメントで記述されている。デバッグ情報は、２つのコメントで構成されている。具体的には、ソースプログラムに与える入力値を示すコメントと、その期待値を示すコメントである。コメント内に記述する入力値は１つであってもよいし複数（図では２つ）であってもよい。期待を記述する側のコメントにおいては、各入力値に対する期待値が順番に記述される。
【００２４】
以下、この実施形態にかかるデバッグ装置１の動作について説明する。図３はこの実施形態のデバッグ装置の動作、ずなわち上記デバッガの処理、を示すフローチャートである。
【００２５】
この実施形態のデバッグ装置１は、操作部３においてソースプログラムのデバッグの実行の入力操作が行われると本処理を実行する。
【００２６】
デバッグ装置１は、記憶部４にデバッグするソースプログラムを記憶する（ｓ１）。ｓ１は、オペレータが操作部３で入力指定したソースプログラムを本体に内蔵しているハードディスク等の記憶媒体、または本体にセットされたフロッピィディスク等の記憶媒体から読み出し、記憶部４のメモリに記憶する処理である。
【００２７】
デバッグ装置１は、記憶部４に記憶したソースプログラムのステップ実行を開始する（ｓ２）。デバッグ装置１は、ソースプログラムから１ステップ分の内容を読み出し、コメントが含まれているかどうかを判断する（ｓ３）。ｓ３でコメントが含まれていると、このコメントがデバッグ情報であるかどうかを判断する（ｓ４）。デバッグ装置１は、ｓ３コメントが含まれていない、またはデバッグ情報でないと（通常のコメントであると）判断すると、該当ステップを実行し（ｓ５）、ソースプログラムのデバッグが完了したかどうかを判断する（ｓ６）。ｓ６では、ソースプログラムにおいて未実行のステップがあるかどうかを判断している。デバッグ装置１は、ｓ６でソースプログラムのデバッグが完了していないと判断すると、今回実行したステップの次のステップについてｓ３以降の処理を実行する。
【００２８】
デバッグ装置１は、ｓ４でコメントがデバッグ情報であると判断すると、Ｎを初期値１に設定し（ｓ７）、コメントで記述されているデバッグ情報において、Ｎ番目に記述されている入力値を読み出す（ｓ８）。デバッグ装置１は、ｓ８で読み出した入力値をソースプログラムに与え、該当するステップを実行する（ｓ９）。デバッグ装置１は、コメントで記述されているデバッグ情報において、Ｎ番目に記述されている期待値を読み出し（ｓ１０）、ｓ９の該当ステップの実行により得られた出力値と、ｓ９で読み出した期待値とが一致しているかどうかを判断する（ｓ１１）。デバッグ装置１は、ｓ１１で一致していると判断すると、今回の入力値について出力値と期待値とが一致していた旨を表示部５に表示し（ｓ１２）、ｓ１１で一致していないと判断すると、今回の入力値について出力値と期待値とが一致していない旨を表示部５に表示する（ｓ１３）。
【００２９】
具体的には、デバッグ装置１は、ｓ１２では結果を通常表示し、ｓ１２では結果を反転表示する。このように、デバッグ装置１は、入力値について出力値と期待値とが一致していた場合と、一致していなかった場合とで、表示形態を異ならせて表示部５に表示するので、今回の入力値について出力値と期待値とが一致していたかどうか、すなわち今回実行したステップにバグがあるかどうかを、オペレータに視覚的に判断させることができる。
【００３０】
なお、表示部５における表示形態の詳細については後述する。
【００３１】
デバッグ装置１は、ｓ１２またはｓ１３の処理が完了すると、Ｎを１カウントアップし（Ｎ＝Ｎ＋１）（ｓ１４）、コメントにＮ番目の入力値が記述されているかどうかを判断する（ｓ１５）。ｓ１５でＮ番目の入力値が記述されていると判断すると、上記ｓ８に戻って上記処理を繰り返す。反対に、ｓ１５でＮ番目の入力値が記述されていないと判断すると、ｓ６に戻って上記処理を繰り返す。
【００３２】
したがって、コメントで記述したデバッグ情報における入力値の個数を多くするだけで、該当ステップの検査回数を増加させて、信頼性の高いプログラムの開発が行える。
【００３３】
図２に示したステップに対する表示部５の表示例を図４（Ａ）に示す。また、図２に示したステップに図５に示すバグがあった場合における表示部５の表示例図４（Ｂ）にを示す。図４（Ａ）、（Ｂ）に示すように、ソースプログラムにバグが無かった場合と、あった場合とで、表示部５における表示形態を異ならせたので、オペレータにおけるソースプログラムのデバッグ結果の確認ミスが防止できる。
【００３４】
また、デバッグ情報はソースプログラムにコメントで記述するので、ソースプログラムが複雑な構造にならず、ソースプログラムの作成時や修正時における手間も殆ど増加しない。また、デバッグ情報とする入力値については、コメント内に複数記述できるので、入力値を多く記述するだけで、信頼性の高いデバッグが簡単に行える。さらに、デバッグ情報はソースプログラムにコメントで記述されているので、コンパイル時における手間も増加しない。
【００３５】
このように、ソースプログラムの構造を複雑にすることなく、且つソースプログラムのデバッグにかかる手間および時間を抑えることができるので、信頼性の高いプログラムを安価に開発することができる。
【００３６】
なお、上記実施形態では、ソースプログラムのデバッグ結果を表示部５に表示するとしたが、プリンタ等の印字装置で印字出力してもよい。この場合も、出力値と期待値との一致、不一致に応じて印字形態を異ならせればよい。
【００３７】
【発明の効果】
以上のように、この発明によれば、ソースプログラムの構造を複雑にすることなく、且つソースプログラムのデバッグにかかる手間および時間を抑えることができるので、信頼性の高いプログラムを安価に開発することができる。
【図面の簡単な説明】
【図１】この発明の実施形態であるデバッグ装置の構成を示すブロック図である。
【図２】この発明の実施形態であるデバッグ装置でデバッグされるソースプログラムの例を示す図である。
【図３】この発明の実施形態であるデバッグ装置の動作を示すフローチャートである。
【図４】この発明の実施形態であるデバッグ装置の表示部における画面表示例を示す図である。
【図５】この発明の実施形態であるデバッグ装置でデバッグされるソースプログラムの例を示す図である。
【符号の説明】
１−デバッグ装置
２−制御部
３−操作部
４−記憶部
５−表示部
【図１】
2004070561.tif 000003
【図２】
2004070561.tif 000004
【図３】
2004070561.tif 000005
【図４】
2004070561.tif 000006
【図５】
2004070561.tif 000007