(57)【要約】【課題】  ソフトウエアの試行、デバッグ作業の効率向上と、適用対象の拡大のため、モニタやデバッガを必要とせずに、試行中のプログラムのステップ実行を、簡易かつ低コストで提供する。【解決手段】  ソースプログラム上のステップ実行をさせたい処理区間に対応する、実行プログラムの実行処理単位の複数あるいは全てに、ステップ実行活性化フラグの状態に応じてブレーク要求の要否を決めるコードを、実行プログラムに挿入する。ステップ実行活性化フラグが活性化状態ならば実行プログラム内のブレーク要求を検出し、ブレーク要求を、標準入力待ちコードなどに置き換えて（読み替えて）、ブレーク機能と、変数値の更新機能、再実行開始を行うことで選択的にステップ実行を実現する。【選択図】  図１
2007004516.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ対象の実行プログラム、当該実行プログラムのソースコードファイルを参照可能に接続され、デバッグ対象の実行プログラムの実行状態で、当該実行プログラム内にブレーク要求が記述されているか否かを検出する機能、及び、ブレーク要求が記述されていたならば、実行中のプログラムを停止させるコードと読み替えて実行する機能、を備えた演算処理部の制御方法であって、当該実行プログラムの起動が未然の段階で、当該実行プログラムの連続あるいは不連続に存在する２つ以上の処理の直前あるいは直後の地点に対して、ブレーク要求コードを挿入する機能を有し、その挿入された状態の当該実行プログラムを実行することで、ステップ実行を実現することを特徴とする演算処理部の制御方法。
【請求項２】
請求項１記載の演算処理部の制御方法において、ステップ実行活性化フラグを当該演算処理部に参照させるコードの挿入機能を有し、当該演算処理部は、前記挿入したコードが実行された際にステップ実行活性化フラグが活性化状態であれば、請求項１記載のブレーク要求コードを実行して前記実行プログラムの一時停止を実現する一方で、ステップ実行活性化フラグが非活性化状態であれば請求項１記載のブレーク要求コードを実行せずに前記実行プログラムの一時停止を回避することによって、ステップ実行を選択的に実現することを特徴とする演算処理部の制御方法。
【請求項３】
請求項１ないしは請求項２記載の演算処理部の制御方法において、ステップ実行によって一時停止した状態で、標準入力からの入力を識別し、当該入力に応じて、所定の変数値を表示し、又は、更新する演算処理部の制御方法。
【請求項４】
請求項１ないしは請求項２記載の演算処理部の制御方法において、
ステップ実行によって一時停止した状態で、標準入力からの入力を識別し、当該入力に応じて、所定のソースコードの一部を表示する演算処理部の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込みシステムにおけるプログラムのデバッグ方法に係り、特に、デバッグ中にプログラムの実行を中断させる、ブレークポイントの設定に関する。
【背景技術】
【０００２】
プログラム開発においては、コンピュータ上でプログラムがどのように振る舞うか、実行時の監視が必須である。このような監視を行う基本的方法として、例えば、ソースプログラムにログの出力コードを埋め込み、これをコンパイルし、コンパイル後のモジュールを実行することで、実行中のログを得て、監視を行うことが知られている。
そして、プログラムを実行させながら、その実行状態を表示する機能を持つ、デバッガが一般的に用いられている。デバッガは、開発者が作成したプログラムコードにバグがないかを検証するために使われるツールである。
デバッガを用いれば、ソースコード（ソースプログラム）を表示した上で、操作者がそのコード中のどのポイントでどのような情報を表示するのか指定でき、この結果、そのソースコードを実行しながら、動的な情報（変数、引数、レジスタの値の変化）を表示できるから、デバッグ対象のプログラム又はコードの健全性をチェックできる。
従来のデバッガでは、ソフトウェア割込みを発生させる命令自体を、直接、デバッグ対象のプログラムに埋め込むことを要し、その割込み命令が実行され、割込みが発生して、対象プラグラムを中断（ブレーク）させていた。デバッガは、このほかに、中断時に、変数、メモリ領域、レジスタの値を参照する機能、これらの値を設定する機能、中断したプログラムの実行を再開する機能を有している。
【０００３】
また、デバッガは、中断点を細かく設けて、中断と再開を繰り返すことで、ステップ実行という機能を有することが多い。この機能によると、プログラムの実行挙動を細かく把握しやすくなる。公知のステップ実行の実現方法として典型的な実施の形態は、デバッガが、コードの行ごとに次の命令にブレークポイントを挿入し、プロセスを動作させ、関連する例外をキャッチし、および命令ポインタを検査して、事前に構成されたステップポイントに達したかどうかを判定する（または、デバッガが手動で停止されるまでこれらを行う）。
【０００４】
メモリー、ＣＰＵパワーその他の計算機資源を豊富に有する上記のシステムとは異なり、各種の機器に組み込まれて、マイクロプロセッサによりその制御を行う、機器組込み制御システム（組込みシステム）が普及している。
組込みシステムに搭載されるプログラムをデバッグするに際しては、１）組込みシステムでは、汎用のＯＳを搭載できない、２）メモリ容量の制約が厳しい等の理由により、機器の実動作環境下で従来のデバッガを使用できないという課題があった。
そのため、対象プログラムの変数の値を表示装置やファイルに出力する、又は、内部メモリに書き込む、といったデバッグ機能を、各種の機器の開発者自らが開発しなければならなかった。つまり対象プログラム中に自作のソフトウエアを組み込んで、アセンブル／コンパイルした後に実行し、組込みシステムが処理するデータの変化を追跡することが必要であった。このようなデバッグ機能は、製品をリリースするときには削除されるか、コンパイルフラグで切換えられるようにし、最終的な製品（オブジェクトコード）からは除かれていた（特許文献１）。 
組込みシステムにおいては、リモートデバッグと呼ばれる、比較的高機能なデバッグが行われることがある（特許文献２）。一般に次のような手法である（図１１）。
デバッグの対象である、ターゲットシステム２３のＲＯＭ２６に、モニタープログラム２５を組み込む。ホストコンピュータ２２上のデバッガ２１は、モニタープログラム２５とインターフェース２９を介して通信する。ＣＰＵ２４は、組込みシステムにおけるマイクロコンピュータ内の中央演算ユニットである。ここで、ユーザプログラム２７はＲＡＭ２８に格納されている。
ホストコンピュータ２２は、モニタープログラム２５に対してコマンドを送信し、モニタープログラム２５はそのコマンドを受信し、ブレーク、トレースその他の処理を実行する。モニタープログラム２５は、ブレークコマンドに対しては、ブレークポイントのアドレスをレジスタに格納してＣＰＵ２４にアドレス一致例外を発生させ、ユーザプログラム２７からモニタープログラム２５に制御を移し、ブレーク処理を行う（ハードウェアブレーク）。
ハードウエアブレークの機能がないマイクロコンピュータにおいては、モニタープログラム２５がブレークポイントに例外を発生させるトラップ命令を、ユーザプログラム２７中に書き込み、ユーザプログラム２７に例外を発生させてモニタープログラム２５に制御を移し、ブレーク処理を行い、同処理が終了した後、前記トラップ命令を元の命令に戻す（ソフトウェアブレーク）。
モニタープログラム２５は、トレースコマンドに対しては、マイクロコンピュータが有しているトレース機能を使うため、ＣＰＵ２４をトレースモードに遷移させ、ユーザプログラム２７を対象として、トレース実行させる。トレースモードがないマイクロコンピュータ対しては、ソフトウエアブレークで説明した方法により、１命令先のアドレスにブレークポイントを設定して、ユーザプログラム２７が１命令実行した時点で例外を発生させ、これを繰り返すことにより、ユーザプログラム２７を対象として、トレース実行させる。
【０００５】
従来のリモートデバッグは、実行時に、デバッグ対象システム上のモニタープログラム又はホストコンピュータ上のデバッガが、ブレークポイントに例外を発生させるトラップ命令を、ＲＡＭ上に展開されたユーザプログラムに書き込んでいる。従って、ＲＯＭ上でユーザプログラムを動作させる組込みシステムには適用できない。ＲＯＭには書き込みができないためである。
この課題に対して、特許文献２では、ＲＯＭ化前に、ソースコードの翻訳時にトラップ命令を埋め込み、ＲＯＭに格納し、そのままＲＯＭ上で実行させるとしている。
【０００６】
ＲＡＭへの展開前に、トラップ命令等の埋め込み操作を行うことは、例えば、特許文献３にも記載されている。ここでは、ブレークポイントの適切な指定位置情報を容易に把握するため、デバッガの機能を使わずに、実行プログラムのソースコード又はソースコードに関連する情報を、実行プログラムの実行時に連動して表示し、実行プログラムの意味等の把握を容易にすることができる、ソースコード表示システム及びプログラムを提供している。
【０００７】
【特許文献１】特開２００１−２２２４４７号
【特許文献２】特開２００４−０１３８８０号
【特許文献３】特開２００４−１３９３１３号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献２では、デバッガと組み合わせて実行させるので、表示・参照機能の制約は少ない。しかしデバッガを用いる点で、計算機資源を要し、動作環境上の制約が大きくなり、組み込み機器への適用が制限される。
【０００９】
一方、特許文献３では、デバッガを必要しない点で広範に適用できるが、表示機能のみであり、パラメータの変更、変数値の更新ができない。また、特許文献３では、ステップ実行の実現を想定していないと判断できる。
【００１０】
本発明は、専用のモニタープログラムやデバッガの追加を必要とせずに、ステップ実行機能を提供することを目的とする。
【課題を解決するための手段】
【００１１】
デバッグ対象の実行プログラムの実行状態で、当該実行プログラム内にブレーク要求が記述されているか否かを検出する機能、及び、ブレーク要求が記述されていたならば、実行中のプログラムの停止を実現するコードと読み替えて実行する演算処理部では、ブレーク要求コードの読み替えで標準入力待ちコード（標準入力待ち命令）に対応づけると、簡便でかつデバッガの設置を伴わずに、ブレーク機能を備えた制御方法を実現できる。このような制御方法において、さらに、当該実行プログラムの連続あるいは不連続に存在する２つ以上の処理の直前あるいは直後の地点に対して、ブレーク要求コードを挿入する機能を設ける。すると、小刻みにプログラムが一時停止する中断点を設けることと等価になり、デバッガの設置を伴わずにステップ実行機能を備えることが可能になる。なお、ブレーク要求コードの読み替え内容として標準入力待ちコードとして記載していくが、プログラムが一時停止する機能を実現するならば、これに限定するものではない。
【００１２】
この機能の実行により、ステップ実行においても標準入力待ち（一時停止）状態となり、ユーザからの入力を受付るので、かかる入力を識別するコマンド識別手段と、識別したコマンドを実行する手段、例えば、実行プログラムのソースコード、変数、その他実行プログラムの関連情報を取得する情報取得手段と、関連情報の一部または全部を表示する表示手段と、変数の格納している値を更新する更新手段とを備える。
【００１３】
ここで、ブレーク要求の存在は、ブレークメソッドの呼び出しコードの存在と同義としてもよい。その場合は、ブレークメソッドの定義部分に標準入力待ち関数の呼び出しを記述しておけば、ブレークメソッドの呼び出しに連動して、標準入力待ちが実行されることになる。結果として、デバッグ対象の実行プログラムの実行における、前記一時停止あるいはステップ実行と同等なステップが実現できる。
【００１４】
さらに、デバッグ対象の実行プログラムの実行状態で、当該実行プログラム内にステップ実行用ブレーク要求が記述されているか否かを検出する機能、およびステップ実行用ブレーク要求が挿入されていたならば、ステップ実行活性化フラグが活性化状態（オン）のときのみ標準入力待ちコードなど、実行中のプログラムの停止を可能にする（オフならば停止させない）コードに読み替えて実行する機能を設ける。
なお、標準入力とは、キーボードからの入力を行う標準ライブラリ関数であり、例えば、Ｃ言語の標準入力ライブラリの存在するscanf関数が該当する。
【発明の効果】
【００１５】
従来のデバッガを必要とせずに、プログラムの実行を簡便に一時停止させ、ソースコード（全部又は一部）、用いられている変数値、その他ソースコードに関連する情報の表示、更新及びプログラムの再実行のみならずステップ実行が可能となる。
【発明を実施するための最良の形態】
【００１６】
本発明における、プログラム実行部は、実行プログラムの実行機能、その実行過程においてブレーク要求が出現した場合に標準入力待ちコードを実行する機能を有する。標準入力待ちコードは、標準入力制御部を呼び出す。
標準入力制御部は、プログラムの実行を一時停止する。また、プログラムの実行状態を表示する。さらに、ユーザへの入力待ち画面の表示を表示情報制御部に依頼する。
【００１７】
標準入力制御部は、入力待ち画面に対してユーザが入力する、標準入力制御用コマンドを読み込んで解釈する。つまり、ユーザが入力したコマンドを、標準入力制御用コマンドライブラリから呼び出す。必要な実行を行う。標準入力制御用コマンドライブラリから返ってきた処理結果を、表示情報制御部に転送する。このような表示情報生成処理依頼機能を備えている。
【００１８】
なお、実行中のプログラムの停止を可能にするコードの実施の形態として、標準入力待ちコードで例を示していくが、実行中のプログラムの停止を可能にするものであれば、これに限定するものではない。
【００１９】
そして、本発明における実施の形態として特徴的な構成要素として、ステップ実行を可能にするために、ブレーク要求コードが、プログラムの実行単位（行）の複数箇所に一括して埋め込まれることを特徴とする。ここでソースレベルデバッグを行う場合には、実行単位とはソースプログラムの一行に対応する処理内容を意味する。
また、これらブレーク要求コードには、第一のブレーク要求、第二のブレーク要求の２種類のコードを設ける。第一のブレーク要求は、ステップ実行の要否に関わらずブレークをさせるために存在し、第二のブレーク要求は、ステップ実行のために追加的に存在する。
【００２０】
このような実施の形態においては、これら２種類のブレーク要求で、ステップ実行のＯＮ（活性化）／ＯＦＦ（非活性化）を実現することが特徴となる。これを選択的なステップ実行と呼ぶ。第一のブレーク要求は、ステップ実行の要否に関わらずブレークをさせる一方で、第二のブレーク要求では、ステップ実行の活性化状態ではブレークし、非活性化状態ではブレークしない動作を実現させるものとし、ステップ実行の活性化状態を示すものとしてステップ実行活性化フラグを設ける。
第一、第二のブレーク要求によるプログラム停止時に、ステップ実行の活性化状態は操作（反転）させることを可能にする。たとえば、標準入力待ち（一時停止）状態において、ユーザからの入力を受付けるので、ステップ実行をする意向を示すと識別されるコマンドが入力されたら、ステップ実行活性化フラグをオン（活性化）に設定する。一方で、ステップ実行をさせない意向、すなわち、第一のブレーク要求個所まで実行を停止させないユーザ意向を示すコマンドが入力されたら、ステップ実行活性化フラグをオフ（非活性化）に設定する。これによって、選択的なステップ実行が可能になる。
第一のブレーク要求コードは、ステップ実行の要否に関わらずブレークするので、ブレークポイント設定箇所にこの第一のブレーク要求コードを挿入しておけば、ステップ実行活性化フラグがオフ（非活性化）に設定されてステップ実行が無効になっていても、ブレーク設定は機能し続ける。
【実施例１】
【００２１】
図１は、本発明を適用した、デバッグ支援を行う情報処理装置のシステム構成図である。
デバッグ対象である実行プログラムのファイル１０１は、必要に応じ実行プログラム用データベース１１０を使用して、プログラム実行部１０７により実行される。実行プログラムを作成するために使用したソースコードのファイル１０２、表示情報リソースファイル１０３、変数値格納用テーブル１０５は、演算処理部１０６から、適宜、参照される。
表示情報リソースファイル１０３は、ソースコードの説明文その他ソースコードに関連する表示情報を記述したファイルである。変数値格納用テーブル１０５は、ファイル１０２中のソースコードで使用されている変数の値を、時系列に格納する。
【００２２】
本システムの演算処理部１０６は、プログラム実行部１０７、ブレーク実行部１０７２、標準入力制御部１１１、及び、表示情報制御部１０８を有している。
ブレーク実行部１０７２は、標準入力待ち命令を実行する機能を担うものであり、ブレーク実行部１０７２によってブレーク要求コードを標準入力待ち命令と読み替えてブレーク処理を実現する。同部１０７２は、プログラム実行部１０７が実行過程においてブレーク要求コードを検出した際に起動し、ブレーク要求コードを標準入力待ち命令と読み替えて、プログラム実行部１０７に処理を渡す。
【００２３】
ブレーク実行部１０７２によって読み替えられた標準入力待ち命令は、標準入力制御部１１１を呼び出す。同部１１１は、プログラムの実行を一時停止し、実行プログラムの状態を表示し、ユーザのための入力待ち画面の表示を表示情報制御部１０８へ指示する。
【００２４】
さらにブレークの実行に関連して、図には存在しないが、ステップ実行活性化フラグを備える。これはステップ実行の指針として参照・更新される。
標準入力制御部１１１は、入力待ち画面に対して、ユーザが入力した標準入力制御用コマンドを解釈する。つまり、標準入力制御用コマンドライブラリ１０４から、そのコマンドを呼び出す。また、ライブラリ１０４から返ってきた処理結果を表示情報制御部１０８に転送する。なお、標準入力制御用コマンドライブラリ１０４は、実行プログラムに埋め込まれた、本発明のコマンドライブラリである。
【００２５】
表示情報制御部１０８は、プログラム実行部１０７からの処理命令に基づき、ファイル１０２のソースコード、表示情報リソースファイル１０３のメッセージリソース、変数値格納用テーブル１０５にある変数情報から、表示すべき情報を生成し、ディスプレイ装置１０９に指示する。また、ファイル１０１の実行プログラムの実行状態の表示をディスプレイ装置１０９に指示する。
【００２６】
図２（ａ）に、変数値格納用テーブル１０５に保存されるデータ構造の一例を示す。
変数名２０２とは、実行プログラムのソースコード内で使用されている変数の名前であり、具体的には、ｉｎｄｅｘ，ａｍｏｕｎｔ，ｄａｙなどが該当する。同図には、ＡＡＡ、ＢＢＢ、ＣＣＣと記載されている。変数２０３は、その値が格納されるエリアを示す。
図２（ｂ）に、図１に図示しない、ブレーク要求指示ファイルの一例を示す。これは、実行プログラム上でブレーク要求の挿入位置が記述された定義ファイルである。
【００２７】
ブレーク要求コードの挿入は、この指示ファイルを参照して為される。具体的には（１）コンパイラが、ブレーク要求コードを挿入したソースプログラムと、等価な実行プログラムを生成する。（２）変換ツールが、実行プログラムを解析して、その実行プログラムに埋め込む。又は（３）インタプリタその他実行時に逐次解釈処理を行うプログラム実行部が、その解釈時にブレーク要求コードを挿入する。
挿入箇所については、ブレーク位置情報記述データを別途、用意して、これを挿入操作主体（コンパイラ、変換ツール、又は、プログラム実行部）に参照させる。
図２（ｂ）の項番１と２では、複数のブレーク要求コードを１の挿入位置ファイルにまとめて記載し、一括で指定している。これとは異なり、一箇所ずつ、対話的に指定してもよい。対話的に指定する場合には、ＧＵＩ操作で、ソースプログラムを画面表示しても良い。
【００２８】
図３に、ディスプレイ装置１０９の表示画面の一例を示す。
この画面は、ブレーク要求の結果、表示される停止した状態を示している。ユーザからの対話的な入力操作を待つ、入力待ち画面である。この対話的な操作画面において、ユーザは、デバッグ対象のプログラムについて、所定のコマンドを入力することにより、所定の情報の取得又は更新を行える。上記コマンド入力は、図示しないキーボードによって入力される。
入力操作を待つ画面上で、ユーザが入力できる標準入力制御用コマンドには、次のような種類が有る。
【００２９】
コマンド名    意味
ｐ            変数値の表示
ｓ            変数値の更新
ｃ            処理の再開（ステップ実行を行わない）
ｌ            ソースコードの表示
ST            ステップ実行を行う
図３の３０１は、実行中のプログラムのソースコードのファイル名と行番号であり、ブレーク位置を示している。３０２は、ユーザからの対話的な入力操作を促す表示であり、次のコマンドを受付可能であることを示している。これらが、標準入力制御用コマンドに相当し、標準入力制御用コマンドライブラリ１０４（図１）により実現される。
【００３０】
図４は、本発明に特徴的なステップ実行を可能にするためのブレーク処理の概要を示すフローチャートである。
プログラム実行部１０７（図１）は、デバッグの対象となるプログラム（実行プログラムファイル１０１に有る実行プログラム）の実行を開始する（ステップ４０１）。
次に、実行プログラム中にブレーク要求コードとステップ実行用ブレーク要求コードが記述されている限り、以下に示すステップ４０３からステップ４０７までの処理を繰り返し実行する（ステップ４０２）。
【００３１】
ステップ４０３において、次のブレーク要求コード（あるいはステップ実行用ブレーク要求コード）までプログラムの処理を実行する。プログラム実行部１０７は、ブレーク要求コードの種別に応じて解釈と実行を行う（ステップ４０３１）。ステップ４０３１において、第一のブレーク要求コード（図中ではタイプ１のブレーク要求と表記）である場合には、プログラム実行部１０７は、標準入力待ちコマンドを実行し、標準入力待ちコードの処理において、標準入力制御部１１１を呼び出す（ステップ４０４）。
【００３２】
ステップ４０５において、標準入力制御部１１１は、プログラムの実行を停止する。ついで、ユーザへの入力待ち画面の表示を、表示情報制御部１０８に指示する。
表示情報制御部１０８は、転送された情報に基づいて入力待ち画面の表示情報を生成し（ステップ４０６）、その表示情報をディスプレイ装置１０９に表示する（ステップ４０７）。
標準入力制御部１１１は、入力待ち画面に対してユーザが入力する標準入力制御用コマンドを読んで解釈する。ここで次のステップ位置へ処理を進める操作、例えば、図３における処理再開のコマンド“ｃ”の入力が為されると、ステップ実行活性化フラグがオフ（活性化）に設定されて、次の処理へ進む。コマンド”ST”の入力が為されると、ステップ実行活性化フラグがオン（活性化）に設定されて、次の処理へ進む。
【００３３】
一方、ステップ４０３１において、第二のブレーク要求コード（図中ではタイプ２のブレーク要求と表記）である場合には、プログラム実行部１０７は図には存在しないステップ実行活性化フラグを参照する。活性化状態の場合には（ステップ４０３２）、一時停止をし、第一のブレーク要求コードと同等の処理になる（ステップ４０４に移行する）。非活性化の場合には、ステップ４０５〜４０７をスキップし、次の処理へ進む。
【００３４】
かかる一連の操作は、対象プログラムが終了するまで実行される（ステップ４０８）。
【００３５】
図４のステップ４０６において、ユーザが、ステップ実行コマンド" ST"を入力するとプログラムの実行を再開する（停止から復帰する）。プログラム実行部１０７は、ステップ実行活性化フラグを活性化（オン）に設定する。そしてプログラム実行部１０７は停止していたプログラムの実行を再開して、図４のステップ４０２からの繰り返し処理に戻る。すると、すぐに次の第二のブレーク要求コード（図中ではタイプ２のブレーク要求と表記）に至るので、図４のステップ４０３１からステップ４０３２、そしてステップ４０４という経路を辿り、再び、実行プログラムが一時停止する。この繰返しによりステップ実行が実現されることになる。
【００３６】
図５は、図４のステップ４０６において、プログラムが停止した後、停止地点周辺のソースコードを表示する処理のフローチャートである。これは、入力待ち画面に対して、ユーザが、ソース表示コマンド" ｌ"を入力すると生じる。
プログラム実行部１０７は、実行中のプログラムのプログラム名及び実行中の行番号を、表示情報制御部１０８に転送する。表示情報制御部１０８は、ソースコードファイル１０２から、プログラム名に合致する実行中のファイルを取得する（ステップ５０１）。
表示情報制御部１０８は、ステップ５０１にて取得したファイルのソースコードから、プログラム実行部１０７から指示された行番号の前後数行、例えば、１０行のソースコードを文字列として取得する（ステップ５０２）。次に同部１０８は、ソースコードのファイル名（図３、３０１）を、ディスプレイ装置１０９に表示する（ステップ５０３）。そして同部１０８は、ソースコードの一部又は全部を表示する（ステップ５０４）。図６に、図５のフローの結果、生成されるソース表示画面の一例を示す。
【００３７】
図７は、図４のステップ４０６において、プログラムが停止した後、変数表示コマンド“ｐ”を入力して、所定のエリアに指定された変数の値を表示する処理のフローチャートである。この実施例では、ブレーク要求コード毎に、監視すべき変数名を予め指定してあるものとするが、変数指定コマンドを別に設けて、停止時に入力待ち画面に対して指定してもよい。
プログラム実行部１０７は、実行中のプログラム中のブレーク要求コードに指定している、監視対象の変数名を抽出する（ステップ７０１）。もし、監視対象の変数名が指定されていなければ、ステップ７０２以降は実行せずに終了する。
プログラム実行部１０７は、変数値格納用テーブル１０５から監視対象の変数名の値を取得する（ステップ７０２）。そして同部１０７は、変数名とその値を表示する表示情報を作成するよう、表示情報制御部１０８に指示する。同部１０８は、指示された情報に基づき、変数名と変数値を表示するための表示情報を生成して、生成された表示情報をディスプレイ装置１０９に表示する（ステップ７０３）。
プログラム実行部１０７は、次の入力を受け付ける標準入力待ち状態にし（ステップ７０４）、一連の処理を終了する。図８に、図７のフローの結果、生成される変数値の表示画面の一例を示す。
【００３８】
図９は、図４のステップ４０６において、プログラムが停止した後、変数値更新コマンドを入力して、指定された変数の値を更新する処理のフローチャートである。
プログラム実行部１０７は、実行中のプログラム中のブレーク要求コードに指定している、監視対象の変数名を抽出する（ステップ９０１）。もし、監視対象の変数名が指定されていなければ、ステップ９０２以降は実行せずに終了する。
プログラム実行部１０７は、変数値格納用テーブル１０５から監視対象の変数名の値を取得する（ステップ９０２）。
プログラム実行部１０７は、変数名とその値を表示する表示情報を作成するよう、表示情報制御部１０８に指示する。同部１０８は、指示された情報に基づき、変数名と変数値を表示するための表示情報を生成して、生成された表示情報をディスプレイ装置１０９に表示する。またプログラム実行部１０７は、更新する変数名と変数値を指定させる入力待ち画面を、表示情報制御部１０８に作成するように指示する。同部１０８は、指示された情報に基づいて、変数名と変数の値を表示するための表示情報を生成して、ディスプレイ装置１０９に表示する（ステップ９０３）。
【００３９】
プログラム実行部１０７は、標準入力制御部１１１を呼び出す。同部１１１は、標準入力待ち画面を表示し、変数値の更新待ち状態となって、画面表示を停止する（ステップ９０４）。標準入力制御部１１１は、入力待ち画面に対してユーザからの入力があった場合には（ステップ９０５、Ｙｅｓ）、その入力に係る変数の更新値を受け取り、プログラム実行部１０７へ渡す。ユーザからの入力がなかった場合には（ステップ９０５、Ｎｏ）、入力待ち状態を維持する。
【００４０】
プログラム実行部１０７は、該当する変数名に対応する格納箇所に、この更新値を格納して更新する（ステップ９０６）。同部１０７は、次の入力を受け付ける標準入力待ち状態にし（ステップ９０７）、一連の処理を終了する。図１０に、図９のフローの結果、生成される変数値の更新操作画面の一例を示す。
【００４１】
なお、本発明を、図１１のようなホストＰＣからデバッグターゲットを通信経由（インターフェース）でデバッグするリモートデバッグの形態で実施する場合は、表示情報制御部１０８（図１）によって生成された各種の表示情報を、ホストＰＣ側に通信経由で伝送して、ホストＰＣ側に接続されているディスプレイ装置（１０９、図１）に表示する形態であっても良い。同様に、入力待ち画面に対する入力も、ホストＰＣ側に接続されているキーボードからの入力が、通信経由で実行プログラム１０１に伝送される形態によって実現されるようにしても良い。
【００４２】
また、本発明において、プログラム実行部１０７はインタプリタ処理系で実現されてもよく、これに付随して、実行プログラム１０１は、ソースプログラムから変換されてインタプリタ処理系で解釈実行される中間語プログラムの形態であってもよい。
【産業上の利用可能性】
【００４３】
コンピュータ資源が十分でない環境下でも、ソフトウェア開発の効率向上及び精度向上を達成できる。
【図面の簡単な説明】
【００４４】
【図１】本発明を適用した、デバッグ支援を行う情報処理装置のシステム構成図である。
【図２】変数値格納用テーブル１０５に保存されるデータ構造の一例と、ブレーク要求指示ファイルの一例を示す図である。
【図３】ディスプレイ装置１０９の表示画面における、入力待ち画面の一例を示す図である。
【図４】ステップ実行を可能にするブレーク処理の概要を示すフローチャートである。
【図５】図４のステップ４０６において、プログラムが停止した後、停止地点周辺のソースコードを表示する処理のフローチャートである。
【図６】図５のフローの結果、生成されるソース表示画面の一例を示す図である。
【図７】変数表示コマンド“ｐ”を入力して、所定のエリアに指定された変数の値を表示する処理のフローチャートである。
【図８】図７のフローの結果、生成される変数値の表示画面の一例を示す図である。
【図９】変数値更新コマンドを入力して、指定された変数の値を更新する処理のフローチャートである。
【図１０】図９のフローの結果、生成される変数値の更新操作画面の一例を示す図である。
【図１１】従来のデバッグ方法を行うシステム構成の概念図である。
【符号の説明】
【００４５】
１０１…実行プログラム、
１０２…ソースコードファイル、
１０３…表示情報リソースファイル、
１０４…標準入力制御用コマンドライブラリ、
１０５…変数値格納用テーブル、
１０６…演算制御部、
１０７…プログラム実行部、    １０７２…ブレーク実行部、
１０８…表示情報制御部、
１０９…ディスプレイ装置、
１１１…標準入力制御部。
【図１】
2007004516.tif 000003
【図２】
2007004516.tif 000004
【図３】
2007004516.tif 000005
【図４】
2007004516.tif 000006
【図５】
2007004516.tif 000007
【図６】
2007004516.tif 000008
【図７】
2007004516.tif 000009
【図８】
2007004516.tif 000010
【図９】
2007004516.tif 000011
【図１０】
2007004516.tif 000012
【図１１】
2007004516.tif 000013