(57)【要約】【課題】検証作業において作業者にかかる作業負担の低減化を図ること。【解決手段】情報処理装置１００は、記憶部１３０を有する。記憶部１３０は、変数の値情報を、該変数を識別する識別情報に対応付けて記憶する。情報処理装置１００は、ソースコード１１０のうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、実行対象の行に含まれる変数を識別する識別情報を取得する。情報処理装置１００は、記憶部１３０を参照して、取得した識別情報に対応付けられた値情報を取得し、取得した識別情報と、取得した値情報とを対応付けて出力する。【選択図】図１
2019125134.tif 000002
【特許請求の範囲】
【請求項１】
複数の行を含むソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、前記実行対象の行に含まれる変数を識別する識別情報を取得し、
変数の値情報を、該変数を識別する識別情報に対応付けて記憶する記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、
取得した前記識別情報と、取得した前記値情報と、を対応付けて出力する、
処理をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項２】
前記ソースコードの実行中に、前記ソースコードのうちの実行対象の行に実行を抑制することを示す情報が対応付けられていることを検出すると前記ソースコードの実行を停止し、前記値情報を取得すると前記ソースコードの実行を再開する、処理を前記コンピュータに実行させることを特徴とする請求項１に記載の検証支援プログラム。
【請求項３】
前記記憶部に記憶された前記変数の値情報は、前記ソースコードの実行に応じて更新される、ことを特徴とする請求項１または２に記載の検証支援プログラム。
【請求項４】
前記複数の行の少なくともいずれかの行に実行を抑制することを示す情報が対応付けられた前記ソースコードを特定の装置からネットワークを介して取得する処理を前記コンピュータに実行させ、
前記出力する処理は、取得した前記識別情報と、取得した前記値情報と、を対応付けて、前記特定の装置に出力する、ことを特徴とする請求項１〜３のいずれか一つに記載の検証支援プログラム。
【請求項５】
前記識別情報を取得する処理は、受け付けた前記ソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出する都度、前記実行対象の行に含まれる変数を識別する識別情報を取得し、
前記値情報を取得する処理は、前記実行対象の行に含まれる変数を識別する識別情報を取得する都度、前記記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、取得した前記識別情報と対応付けて蓄積し、
前記出力する処理は、蓄積した結果を出力する、ことを特徴とする請求項１〜４のいずれか一つに記載の検証支援プログラム。
【請求項６】
複数の行を含むソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、前記実行対象の行に含まれる変数を識別する識別情報を取得し、
変数の値情報を、該変数を識別する識別情報に対応付けて記憶する記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、
取得した前記識別情報と、取得した前記値情報と、を対応付けて出力する、
処理をコンピュータが実行することを特徴とする検証支援方法。
【請求項７】
複数の行を含むソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、前記実行対象の行に含まれる変数を識別する識別情報を取得し、
変数の値情報を、該変数を識別する識別情報に対応付けて記憶する記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、
取得した前記識別情報と、取得した前記値情報と、を対応付けて出力する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証支援プログラム、検証支援方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、プログラム開発において、プログラムの動作について検証作業が行われることがある。検証作業では、例えば、プログラムのソースコードを実行しながら、プログラムのソースコードに規定された変数の値を調査し、プログラムの動作について検証する。
【０００３】
先行技術としては、例えば、プログラム全体の最初の行から実行を開始し、指し示された行番号をブレークポイントとしてプログラムの実行を停止するものがある。また、例えば、プログラムの実行状況に応じてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のハードウェアブレーク設定レジスタの設定を動的に切り換える技術がある。また、例えば、加工プログラムを実行しているＮＣ（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ）装置の自動運転中において、ワークの加工状況などにより将来介入操作の必要になることが判断された場合、後の介入操作を自動運転中にて予約可能にする技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１５４８７４号公報
【特許文献２】特開２０１１−１０８１２４号公報
【特許文献３】特開平１１−８５２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、検証作業において作業者にかかる作業負担の増大化を招いてしまう。例えば、作業者は、プログラムのソースコードにブレークポイント（Ｂｒｅａｋ  Ｐｏｉｎｔ）を設定し、設定したブレークポイントに基づきプログラムのソースコードの実行が停止する都度、変数の値を調査する操作を行い、プログラムの実行を再開する操作を行うことになる。
【０００６】
１つの側面では、本発明は、検証作業において作業者にかかる作業負担の低減化を図ることを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、複数の行を含むソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、前記実行対象の行に含まれる変数を識別する識別情報を取得し、変数の値情報を、該変数を識別する識別情報に対応付けて記憶する記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、取得した前記識別情報と、取得した前記値情報と、を対応付けて出力する検証支援プログラム、検証支援方法、および情報処理装置が提案される。
【発明の効果】
【０００８】
一態様によれば、検証作業において作業者にかかる作業負担の低減化を図ることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる検証支援方法の一実施例を示す説明図である。
【図２】図２は、検証支援システム２００の一例を示す説明図である。
【図３】図３は、第１処理装置２０１のハードウェア構成例を示すブロック図である。
【図４】図４は、情報処理装置１００の機能的構成例を示すブロック図である。
【図５】図５は、ソースコード５００の一例を示す説明図である。
【図６】図６は、第１動作例における動作の流れを示す説明図である。
【図７】図７は、出力例を示す説明図である。
【図８】図８は、第２動作例における動作の流れを示す説明図である。
【図９】図９は、全体処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる検証支援プログラム、検証支援方法、および情報処理装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかる検証支援方法の一実施例）
図１は、実施の形態にかかる検証支援方法の一実施例を示す説明図である。情報処理装置１００は、プログラムの検証作業を支援するコンピュータである。
【００１２】
ここで、プログラムの検証作業は、例えば、プログラム開発時に行われる。また、プログラムの検証作業は、例えば、プログラム運用時に障害調査のために行われる。従来では、プログラムの検証作業は、例えば、ブレークポイント方式、または、トレース方式を用いて行われることがある。
【００１３】
ブレークポイント方式は、デバッガのソフトウェアを用いて、プログラムのソースコードにブレークポイントを設定した後、ソースコードの実行を開始し、設定したブレークポイントに基づきソースコードの実行を停止するようにした方式である。ソースコードの実行が停止すると、作業者は、デバッガのソフトウェアを用いて、ソースコードに規定された変数の値を調査する操作を行った後、ソースコードの実行を再開する操作を行う。これにより、作業者は、ソースコードが示す処理の流れについて検証可能になる。
【００１４】
しかしながら、この場合、作業者の作業負担の増大化を招いてしまう。例えば、作業者が、ソースコードの実行が停止する都度、ソースコードに規定された変数の値を調査する操作を行った後、ソースコードの実行を再開する操作を行うことになるため、操作量の増大化を招いてしまう。また、ｆｏｒ文やｗｈｉｌｅ文などを用いたループの内側の行にブレークポイントが設定されると、ループ回数の増大に伴って操作量が増大してしまう。
【００１５】
また、作業者が、ソースコードの実行が停止された際、変数の値を調査する操作を行わずに、ソースコードの実行を再開する操作を行ってしまい、ソースコードが示す処理の流れについて正しく検証することができない場合がある。また、マルチスレッド形式でソースコードを実行する場合、いずれかの処理の停止中に別の処理が実行され、処理順序が入れ替わり、ソースコードが示す処理の流れについて正しく検証することができない場合がある。
【００１６】
また、プログラム運用時に障害調査のために検証作業を行う場合、プログラム運用先の顧客のコンピュータなどのようなプログラム運用時の環境において、デバッガのソフトウェアを用いることになる。このため、作業者は、プログラム運用先の顧客のコンピュータを操作することになり、作業者の作業負担の増大化を招いてしまう。
【００１７】
また、この場合、作業者が検証作業を行うことが難しい場合がある。例えば、作業者は、デバッガのソフトウェアについての知識が不足していると、効率よく検証作業を行うことが難しい。また、例えば、作業者は、ソースコードが示す処理の流れについての知識が不足していると、検証作業を行うことが難しい。具体的には、作業者は、いずれの変数を調査することが好ましいかを把握しておらず、または、変数の値がどのように変化することが正常であるかを把握していないと、検証作業を行うことが難しい。
【００１８】
トレース方式は、デバッガのソフトウェアを用いず、プログラムのソースコードに変数の値を出力する命令文を追加し、ソースコードの実行により出力された結果から、変数の値を調査可能にする方式である。また、作業者は、出力された結果から、ソースコードが示す処理の流れについて検証可能になる。
【００１９】
しかしながら、この場合、作業者の作業負担の増大化を招いてしまう。例えば、作業者が、ソースコードを書き換えることになる。また、作業者が、出力対象を変更する都度、ソースコードを書き換えることになる。また、作業者が、プログラムの検証作業を終える際、プログラムのソースコードから変数の値を出力する命令文を削除することになる。このため、作業量の増大化を招いてしまう。
【００２０】
また、プログラム運用時に障害調査のために検証作業を行う場合、プログラム運用先の顧客のコンピュータなどのようなプログラム運用時の環境に対して、変数の値を出力する命令文を追加したプログラムのソースコードを導入することになる。このため、作業者は、プログラム運用先の顧客のコンピュータを操作することになり、作業者の作業負担の増大化を招いてしまう。
【００２１】
そこで、本実施の形態では、プログラムの検証作業を支援し、プログラムの検証作業における作業者による操作量の低減化を図り、プログラムの検証作業において作業者にかかる作業負担の低減化を図ることができる検証支援方法について説明する。
【００２２】
図１において、情報処理装置１００は、記憶部１３０を有する。記憶部１３０は、変数の値情報を、該変数を識別する識別情報に対応付けて記憶する。識別情報は、例えば、変数の名称である。また、情報処理装置１００は、複数の行を含むソースコード１１０を実行する。情報処理装置１００は、例えば、ソースコード１１０に対応する実行ファイル１２０を生成して実行する。実行ファイル１２０の実行により、記憶部１３０に記憶された変数の値情報が更新される。
【００２３】
情報処理装置１００は、ソースコード１１０のうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、実行対象の行に含まれる変数を識別する識別情報を取得する。実行を抑制することを示す情報は、例えば、ブレークポイントである。情報処理装置１００は、例えば、ソースコード１１０の実行対象の４行目の行に、ブレークポイント１１１が設定されていることを検出すると、４行目の行に規定された変数を識別する変数の名称を取得する。
【００２４】
情報処理装置１００は、記憶部１３０を参照して、取得した識別情報に対応付けられた値情報を取得する。情報処理装置１００は、例えば、記憶部１３０を参照して、取得した変数の名称に対応付けられた値情報を取得する。情報処理装置１００は、取得した識別情報と、取得した値情報とを対応付けて出力する。情報処理装置１００は、例えば、取得した変数の名称と、変数の値情報とを対応付けて、ディスプレイに表示する。
【００２５】
これにより、情報処理装置１００は、作業者の作業負担の低減化を図ることができる。情報処理装置１００は、例えば、作業者が、ソースコードに規定された変数の値を調査する操作、および、ソースコードの実行を再開する操作を行わずに済むようにし、操作量の低減化を図ることができる。また、情報処理装置１００は、例えば、作業者が、ソースコードを書き換えなくてよくすることができ、作業者の作業負担の低減化を図ることができる。
【００２６】
また、情報処理装置１００は、例えば、作業者が、出力結果を参照すれば、ソースコードが示す処理の流れについて正しく検証可能にすることができる。また、情報処理装置１００は、例えば、マルチスレッド形式でソースコードを実行する場合、いずれかの処理が停止する時間の短縮化を図ることができ、処理順序が入れ替わる確率の低減化を図ることができる。このため、情報処理装置１００は、ソースコードが示す処理の流れについて正しく検証可能にすることができる。
【００２７】
また、情報処理装置１００は、作業者がブレークポイントを設定する操作を知っていれば、デバッガのソフトウェアについての知識が不足していても、検証作業を行うことができるようにすることができる。また、情報処理装置１００は、作業者がソースコードについての知識が不足していても、ソースコードについての知識が不足していない他者に、出力内容を提供することができ、検証作業を行うことができるようにすることができる。
【００２８】
（検証支援システム２００の一例）
次に、図２を用いて、図１に示した情報処理装置１００を適用した、検証支援システム２００の一例について説明する。
【００２９】
図２は、検証支援システム２００の一例を示す説明図である。図２において、検証支援システム２００は、第１処理装置２０１と、第２処理装置２０２と、端末装置２０３とを含む。
【００３０】
検証支援システム２００において、第１処理装置２０１と第２処理装置２０２とは、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。第１処理装置２０１と端末装置２０３とは通信可能に接続される。
【００３１】
第１処理装置２０１は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。第２処理装置２０２は、例えば、サーバやＰＣなどである。端末装置２０３は、例えば、ＰＣ、タブレット端末、スマートフォンなどである。
【００３２】
＜検証支援システム２００の第１具体例＞
第１具体例では、第１処理装置２０１に、図１に示した情報処理装置１００が適用される。第１処理装置２０１は、プログラムのソースコードを実行し、変数の識別情報と値情報とを対応付けて、端末装置２０３に送信するコンピュータである。端末装置２０３は、第１処理装置２０１から受信した変数の識別情報と値情報とを対応付けて出力するコンピュータである。端末装置２０３は、例えば、作業者によって使用される。第１具体例では、検証支援システム２００は、第２処理装置２０２を含まなくてもよい。
【００３３】
＜検証支援システム２００の第２具体例＞
第２具体例では、第２処理装置２０２に、図１に示した情報処理装置１００が適用される。第１処理装置２０１は、プログラムのソースコードにブレークポイントを設定し、ソースコードを第２処理装置２０２に提供するコンピュータである。第２処理装置２０２は、ソースコードを実行し、変数の識別情報と値情報とを対応付けて、第１処理装置２０１を介して端末装置２０３に送信するコンピュータである。端末装置２０３は、第１処理装置２０１を介して第２処理装置２０２から受信した変数の識別情報と値情報とを対応付けて出力するコンピュータである。端末装置２０３は、例えば、作業者によって使用される。
【００３４】
ここでは、第１処理装置２０１と端末装置２０３とが異なる装置である場合について説明したが、これに限らない。例えば、第１処理装置２０１と端末装置２０３とが一体である場合があってもよい。
【００３５】
（第１処理装置２０１および第２処理装置２０２のハードウェア構成例）
次に、図３を用いて、図２に示した検証支援システム２００に含まれる第１処理装置２０１および第２処理装置２０２のハードウェア構成例について説明する。
【００３６】
ここで、第１処理装置２０１のハードウェア構成例と、第２処理装置２０２のハードウェア構成例とは同様である。このため、以下では、第１処理装置２０１のハードウェア構成例について説明し、第２処理装置２０２のハードウェア構成例については説明を省略する。
【００３７】
図３は、第１処理装置２０１のハードウェア構成例を示すブロック図である。図３において、第１処理装置２０１は、ＣＰＵ３０１と、メモリ３０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、記録媒体Ｉ／Ｆ３０４と、記録媒体３０５とを有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００３８】
ここで、ＣＰＵ３０１は、第１処理装置２０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００３９】
ネットワークＩ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４０】
記録媒体Ｉ／Ｆ３０４は、ＣＰＵ３０１の制御に従って記録媒体３０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ３０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体３０５は、記録媒体Ｉ／Ｆ３０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体３０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体３０５は、第１処理装置２０１から着脱可能であってもよい。
【００４１】
第１処理装置２０１は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、第１処理装置２０１は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を複数有していてもよい。また、第１処理装置２０１は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を有していなくてもよい。
【００４２】
（端末装置２０３のハードウェア構成例）
端末装置２０３のハードウェア構成例は、図３に示した第１処理装置２０１のハードウェア構成例と同様であるため、説明を省略する。端末装置２０３は、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、端末装置２０３は、記録媒体Ｉ／Ｆや記録媒体を複数有していてもよい。また、端末装置２０３は、記録媒体Ｉ／Ｆや記録媒体を有していなくてもよい。
【００４３】
（情報処理装置１００の機能的構成例）
次に、図４を用いて、情報処理装置１００の機能的構成例について説明する。
【００４４】
図４は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、記憶部４００と、取得部４０１と、実行部４０２と、検出部４０３と、解析部４０４と、出力部４０５とを含む。
【００４５】
記憶部４００は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域によって実現される。以下では、記憶部４００が、情報処理装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部４００が、情報処理装置１００とは異なる装置に含まれ、記憶部４００の記憶内容が情報処理装置１００から参照可能である場合があってもよい。
【００４６】
取得部４０１〜出力部４０５は、制御部の一例として機能する。取得部４０１〜出力部４０５は、具体的には、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、ネットワークＩ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶される。
【００４７】
記憶部４００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部４００は、例えば、ソースコードを記憶する。ソースコードは、複数の行を含む。複数の行は、それぞれ、実行を抑制することを示す情報を対応付けることが可能である。実行を抑制することを示す情報は、ブレークポイントである。ソースコードは、例えば、ブレークポイントが未設定である。ソースコードは、例えば、いずれかの行にブレークポイントが設定済みであってもよい。
【００４８】
記憶部４００は、例えば、変数の値情報を、当該変数を識別する識別情報に対応付けて記憶する。変数の値情報は、変数の値である。変数の値情報は、変数の値の形式を表す情報を含んでもよい。変数の値情報は、ソースコードの実行に応じて更新される。変数を識別する識別情報は、変数の名称である。
【００４９】
取得部４０１は、各機能部の処理に用いられる各種情報を取得し、各機能部に出力する。取得部４０１は、例えば、各機能部の処理に用いられる各種情報を記憶部４００から取得し、各機能部に出力してもよい。取得部４０１は、例えば、各機能部の処理に用いられる各種情報を、情報処理装置１００とは異なる装置から取得し、記憶部４００に記憶し、または、各機能部に出力してもよい。
【００５０】
取得部４０１は、例えば、ソースコードを取得する。取得部４０１は、具体的には、ブレークポイントが未設定であるソースコードを端末装置２０３から受信する。取得部４０１は、具体的には、作業者の操作入力に基づき、ブレークポイントが未設定であるソースコードの入力を受け付けてもよい。また、取得部４０１は、例えば、ソースコードのいずれかの行に対するブレークポイントの設定を受け付け、当該行に対応付けてもよい。
【００５１】
また、取得部４０１は、具体的には、複数の行の少なくともいずれかの行に、ブレークポイントが設定済みであるソースコードを、特定の装置からネットワークを介して取得してもよい。第２処理装置２０２が情報処理装置１００であれば、特定の装置は、第１処理装置２０１である。特定の装置は、端末装置２０３であってもよい。取得部４０１は、具体的には、作業者の操作入力に基づき、複数の行の少なくともいずれかの行に、ブレークポイントが設定済みであるソースコードの入力を受け付けてもよい。
【００５２】
実行部４０２は、ソースコードを実行する。実行部４０２は、例えば、ソースコードに対応する実行ファイルを生成して実行する。これにより、実行部４０２は、ソースコードを試行し、ソースコードが示す処理の流れを検証可能にすることができる。
【００５３】
実行部４０２は、ソースコードの実行中に、検出部４０３がソースコードのうちの実行対象の行に実行を抑制することを示す情報が対応付けられていることを検出すると、ソースコードの実行を停止する。これにより、実行部４０２は、変数の値情報を取得するまで、変数の値情報が更新されないようにすることができる。
【００５４】
実行部４０２は、解析部４０４が値情報を取得すると、ソースコードの実行を再開する。これにより、実行部４０２は、ソースコードの実行が停止する時間の短縮化を図ることができる。
【００５５】
検出部４０３は、複数の行を含むソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出する。検出部４０３は、ソースコードのうちの実行対象の行に、ブレークポイントが設定されていることを検出する。これにより、検出部４０３は、調査対象の変数が存在する行を検出することができる。
【００５６】
解析部４０４は、検出部４０３が、ソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、実行対象の行に含まれる変数を識別する識別情報を取得する。解析部４０４は、例えば、実行対象の行に含まれる変数の名称を取得する。これにより、解析部４０４は、調査対象の変数を特定することができる。
【００５７】
解析部４０４は、例えば、検出部４０３が、受け付けたソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出する都度、実行対象の行に含まれる変数を識別する識別情報を取得してもよい。これにより、解析部４０４は、複数の出力内容を纏めることを可能にすることができる。
【００５８】
解析部４０４は、記憶部４００を参照して、取得した識別情報に対応付けられた値情報を取得する。解析部４０４は、例えば、取得した変数の名称に対応付けて記憶部４００に記憶されている値情報を取得する。これにより、解析部４０４は、調査対象の変数の値情報を取得することができる。
【００５９】
解析部４０４は、実行対象の行に含まれる変数を識別する識別情報を取得する都度、記憶部４００を参照して、取得した識別情報に対応付けられた値情報を取得し、取得した識別情報と対応付けて蓄積してもよい。これにより、解析部４０４は、複数の出力内容を纏めて記憶することができる。
【００６０】
出力部４０５は、変数の識別情報と値情報とを対応付けて出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ３０３による外部装置への送信、または、メモリ３０２や記録媒体３０５などの記憶領域への記憶である。これにより、出力部４０５は、作業者が、ソースコードが示す処理の流れについて検証可能にすることができる。
【００６１】
出力部４０５は、解析部４０４が取得した変数の名称と値情報とを対応付けて、特定の装置に送信する。第２処理装置２０２が情報処理装置１００であれば、特定の装置は、第１処理装置２０１である。特定の装置は、端末装置２０３であってもよい。これにより、出力部４０５は、作業者が、ソースコードが示す処理の流れについて検証可能にすることができる。
【００６２】
出力部４０５は、例えば、解析部４０４が蓄積した結果を出力してもよい。出力部４０５は、具体的には、解析部４０４が連続して同一の識別情報と値情報とを対応付けて蓄積した場合、連続して同一の識別情報と値情報とを対応付けて蓄積した回数と、該識別情報と該値情報とを対応付けて出力してもよい。これにより、出力部４０５は、出力されるデータ量の低減化を図り、作業者が変数の値の変化を把握しやすくすることができる。
【００６３】
出力部４０５は、各機能部の処理結果を出力してもよい。これにより、出力部４０５は、各機能部の処理結果を作業者に通知可能にし、情報処理装置１００の管理や運用、例えば、情報処理装置１００の設定値の更新などを支援することができ、情報処理装置１００の利便性の向上を図ることができる。
【００６４】
（検証支援システム２００の第１動作例）
次に、図５〜図７を用いて、検証支援システム２００の第１動作例について説明する。第１動作例は、上述した検証支援システム２００の第１具体例のように、第１処理装置２０１を、情報処理装置１００として動作させる場合についての動作例である。まず、図５の説明に移行し、第１動作例において検証対象とするプログラムのソースコード５００について説明する。
【００６５】
図５は、ソースコード５００の一例を示す説明図である。図５に示すソースコード５００は、３５行目の行にブレークポイントが設定され、３９行目の行にブレークポイントが設定されている。３５行目の行には、変数の名称「ｂｗ」や「ｌｉｎｅ」が含まれる。３９行目の行には、変数の名称「ｂｗ」や「ａｌｐｈａｂｅｔ」が含まれる。次に、図６の説明に移行する。
【００６６】
図６は、第１動作例における動作の流れを示す説明図である。図６において、第１処理装置２０１は、デバッガプロセス６０１と実行プロセス６０２とを実行する。実行プロセス６０２は、仮想マシン６０３と、ソースコード５００に対応するアプリ６０４とを含む。アプリ６０４は、仮想マシン６０３上で動作する。アプリ６０４は、例えば、Ｊａｖａ（登録商標）の中間コードである。仮想マシン６０３は、例えば、ＪａｖａＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）である。実行プロセス６０２は、第１処理装置２０１とは異なる装置で実行されてもよい。
【００６７】
デバッガプロセス６０１は、ソースコード５００をディスプレイに表示する。ここでは、ソースコード５００は、ブレークポイントの設定前の状態である。次に、デバッガプロセス６０１は、作業者の操作入力に基づいて、表示したソースコード５００のいずれかの行についてブレークポイントの設定を受け付ける。デバッガプロセス６０１は、例えば、３５行目の行や３９行目の行についてブレークポイントの設定を受け付ける。ここで、ソースコード５００は、図５に示したブレークポイントの設定後の状態になる。
【００６８】
デバッガプロセス６０１は、設定されたブレークポイントを表す情報を、実行プロセス６０２に出力する。実行プロセス６０２は、ブレークポイントを表す情報に基づいて、アプリ６０４の実行を停止する中間コード上の停止行を特定する。実行プロセス６０２は、アプリ６０４を実行する。実行プロセス６０２は、停止行においてアプリ６０４の実行を停止すると、デバッガプロセス６０１に停止行を表す情報を出力する。
【００６９】
デバッガプロセス６０１は、受け付けた停止行を表す情報に基づいて、停止行に対応するソースコードの行を解析し、当該行に変数が存在するか否かを判定する。デバッガプロセス６０１は、当該行に変数が１以上存在する場合、変数の名称を取得する。デバッガプロセス６０１は、当該行に存在する変数ごとに、変数の名称に基づいてアプリ６０４における変数の値情報を取得する。デバッガプロセス６０１は、例えば、実行プロセス６０２を経由して、アプリ６０４における変数の値情報を取得する。
【００７０】
デバッガプロセス６０１は、当該行に存在する変数ごとに、取得した変数の名称と値情報とを対応付けて、端末装置２０３に出力する。デバッガプロセス６０１は、仮想マシン６０３を経由してアプリ６０４の実行を再開する。その後、アプリ６０４の実行が終了するまで、デバッガプロセス６０１と実行プロセス６０２は同様の処理を続行する。次に、図７の説明に移行し、デバッガプロセス６０１の出力例について説明する。
【００７１】
図７は、出力例を示す説明図である。図７に示すように、第１処理装置２０１は、アプリ６０４の実行が終了した時点で、端末装置２０３に表示内容７００を表示させることになる。表示内容７００は、３５行目の行に対応する処理をアプリ６０４が実行する都度、３５行目の行の変数の名称と値情報とが、どのように変化したかを表す。また、表示内容７００は、３９行目の行に対応する処理をアプリ６０４が実行する都度、３９行目の行の変数の名称と値情報とが、どのように変化したかを表す。
【００７２】
ここでは、デバッガプロセス６０１が、アプリ６０４の実行が停止する都度、変数の名称と値情報とを対応付けて端末装置２０３に出力する場合について説明したが、これに限らない。例えば、デバッガプロセス６０１が、アプリ６０４の実行が停止する都度取得した変数の名称と値情報とを対応付けて蓄積しておき、所定のタイミングで纏めて端末装置２０３に出力する場合があってもよい。
【００７３】
所定のタイミングは、例えば、アプリ６０４の実行が終了したタイミングである。また、デバッガプロセス６０１は、蓄積した変数の名称と値情報とを纏めて出力する際、同じ変数の名称と値情報とが連続していると、変数の名称と値情報とを１回出力し、変数の名称と値情報とが連続した回数を出力する場合があってもよい。これにより、デバッガプロセス６０１は、作業者が、変数の値情報の変化を把握しやすくすることができる。
【００７４】
例えば、同じ変数の名称と値情報とが数十回以上連続して出力される場合、作業者は、一見しただけでは、同じ変数の名称と値情報とが何回出力されたかを把握することが難しい。一方で、デバッガプロセス６０１は、変数の名称と値情報とが連続した回数を出力するため、作業者が、一見して、同じ変数の名称と値情報とが何回出力されたかを把握しやすくすることができる。
【００７５】
これにより、検証支援システム２００は、作業者が、ソースコードが示す処理の流れについて検証可能にすることができる。また、検証支援システム２００は、作業者の作業負担の低減化を図ることができる。検証支援システム２００は、例えば、作業者が、ソースコードに規定された変数の値を調査する操作、および、ソースコードの実行を再開する操作を行わずに済むようにし、操作量の低減化を図ることができる。また、検証支援システム２００は、例えば、作業者が、ソースコードを書き換えなくてよくすることができ、作業者の作業負担の低減化を図ることができる。
【００７６】
また、検証支援システム２００は、例えば、アプリ６０４を動作させる仮想マシン６０３が、ＪａｖａＶＭのような既存のＶＭであり、アプリ６０４を検証するために仮想マシン６０３を改変することが難しいような場合についても適用することができる。
【００７７】
（検証支援システム２００の第２動作例）
次に、図８を用いて、検証支援システム２００の第２動作例について説明する。第２動作例は、上述した検証支援システム２００の第２具体例のように、第２処理装置２０２を、情報処理装置１００として動作させる場合についての動作例である。第２動作例において、例えば、第１動作例と同様に、図５に示したプログラムのソースコード５００を検証対象とする。
【００７８】
図８は、第２動作例における動作の流れを示す説明図である。図８において、第１処理装置２０１は、第１デバッガプロセス８０１を実行する。第２処理装置２０２は、第２デバッガプロセス８０２と実行プロセス８０３とを実行する。実行プロセス８０３は、仮想マシン８０４と、ソースコード５００に対応するアプリ８０５とを含む。アプリ８０５は、仮想マシン８０４上で動作する。アプリ８０５は、例えば、Ｊａｖａの中間コードである。仮想マシン８０４は、例えば、ＪａｖａＶＭである。
【００７９】
第１デバッガプロセス８０１は、ソースコード５００をディスプレイに表示する。ここでは、ソースコード５００は、ブレークポイントの設定前の状態である。次に、第１デバッガプロセス８０１は、作業者の操作入力に基づいて、表示したソースコード５００のいずれかの行についてブレークポイントの設定を受け付ける。第１デバッガプロセス８０１は、例えば、３５行目の行や３９行目の行についてブレークポイントの設定を受け付ける。ここで、ソースコード５００は、図５に示したブレークポイントの設定後の状態になる。
【００８０】
第１デバッガプロセス８０１は、設定されたブレークポイントを表す情報を、第２デバッガプロセス８０２に出力する。第２デバッガプロセス８０２は、受け付けたブレークポイントを表す情報を、実行プロセス８０３に出力する。実行プロセス８０３は、ブレークポイントを表す情報に基づいて、アプリ８０５の実行を停止する中間コード上の停止行を特定する。実行プロセス８０３は、アプリ８０５を実行する。実行プロセス８０３は、停止行においてアプリ８０５の実行を停止すると、第２デバッガプロセス８０２に停止行を表す情報を出力する。
【００８１】
第２デバッガプロセス８０２は、受け付けた停止行を表す情報に基づいて、停止行に対応するソースコードの行を解析し、当該行に変数が存在するか否かを判定する。第２デバッガプロセス８０２は、当該行に変数が１以上存在する場合、変数の名称を取得する。第２デバッガプロセス８０２は、当該行に存在する変数ごとに、変数の名称に基づいてアプリ８０５における変数の値情報を取得する。第２デバッガプロセス８０２は、例えば、実行プロセス８０３を経由して、アプリ８０５における変数の値情報を取得する。
【００８２】
第２デバッガプロセス８０２は、当該行に存在する変数ごとに、取得した変数の名称と値情報とを対応付けて蓄積する。第２デバッガプロセス８０２は、仮想マシン８０４を経由してアプリ８０５の実行を再開する。その後、アプリ８０５の実行が終了するまで、第２デバッガプロセス８０２と実行プロセス８０３は同様の処理を続行する。第２デバッガプロセス８０２は、アプリ８０５の実行が終了すると、蓄積した変数の名称と値情報とを、第１デバッガプロセス８０１に出力する。第１デバッガプロセス８０１は、受け付けた変数の名称と値情報とを対応付けて、端末装置２０３に出力する。端末装置２０３は、受け付けた変数の名称と値情報とに基づいて、図７と同様に、表示内容７００を表示する。
【００８３】
これにより、第２処理装置２０２は、作業者が、ソースコードが示す処理の流れについて検証可能にすることができる。また、第２処理装置２０２は、作業者の作業負担の低減化を図ることができる。第２処理装置２０２は、例えば、作業者が、ソースコードに規定された変数の値を調査する操作、および、ソースコードの実行を再開する操作を行わずに済むようにし、操作量の低減化を図ることができる。また、第２処理装置２０２は、例えば、作業者が、ソースコードを書き換えなくてよくすることができ、作業者の作業負担の低減化を図ることができる。
【００８４】
また、検証支援システム２００は、例えば、デバッガプロセス６０１と実行プロセス８０３との通信が、同一コンピュータ内で行われるようにして、通信遅延の低減化を図ることができる。このため、検証支援システム２００は、マルチスレッド形式でアプリ８０５を実行する場合も、アプリ８０５のいずれかの処理が停止する時間の短縮化を図ることができ、アプリ８０５の処理順序が入れ替わる確率の低減化を図ることができる。このため、検証支援システム２００は、作業者が、ソースコードが示す処理の流れについて正しく検証可能にすることができる。
【００８５】
また、検証支援システム２００は、例えば、アプリ８０５を動作させる仮想マシン８０４が、ＪａｖａＶＭのような既存のＶＭであり、アプリ８０５を検証するために仮想マシン８０４を改変することが難しいような場合についても適用することができる。
【００８６】
ここでは、第２デバッガプロセス８０２が、アプリ８０５の実行が終了した際、蓄積した変数の名称と値情報とを、第１デバッガプロセス８０１に出力する場合について説明したが、これに限らない。例えば、第２デバッガプロセス８０２が、アプリ８０５の実行中に、一定の間隔で、蓄積した変数の名称と値情報とを、第１デバッガプロセス８０１に出力する場合があってもよい。
【００８７】
また、第２デバッガプロセス８０２は、蓄積した変数の名称と値情報とを纏めて出力する際、同じ変数の名称と値情報とが連続していると、変数の名称と値情報とを１回出力し、変数の名称と値情報とが連続した回数を出力する場合があってもよい。これにより、第２デバッガプロセス８０２は、作業者が、変数の値情報の変化を把握しやすくすることができる。
【００８８】
例えば、同じ変数の名称と値情報とが数十回以上連続して出力される場合、作業者は、一見しただけでは、同じ変数の名称と値情報とが何回出力されたかを把握することが難しい。一方で、第２デバッガプロセス８０２は、変数の名称と値情報とが連続した回数を出力するため、作業者が、一見して、同じ変数の名称と値情報とが何回出力されたかを把握しやすくすることができる。
【００８９】
（全体処理手順）
次に、図９を用いて、情報処理装置１００が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、ネットワークＩ／Ｆ３０３とによって実現される。
【００９０】
図９は、全体処理手順の一例を示すフローチャートである。図９において、まず、情報処理装置１００は、デバッガにより、ソースコードを表示する（ステップＳ９０１）。次に、情報処理装置１００は、ブレークポイントが設定されたソースコードの行を表す行番号を特定して記憶する（ステップＳ９０２）。そして、情報処理装置１００は、ソースコードの実行対象行に対応する処理を実行する（ステップＳ９０３）。
【００９１】
次に、情報処理装置１００は、実行対象行が最終行であるか否かを判定する（ステップＳ９０４）。ここで、最終行である場合（ステップＳ９０４：Ｙｅｓ）、情報処理装置１００は、全体処理を終了する。一方で、最終行ではない場合（ステップＳ９０４：Ｎｏ）、情報処理装置１００は、ステップＳ９０５の処理に移行する。
【００９２】
ステップＳ９０５では、情報処理装置１００は、実行対象行が、ブレークポイントが設定された行であるか否かを判定する（ステップＳ９０５）。ここで、ブレークポイントが設定された行ではない場合（ステップＳ９０５：Ｎｏ）、情報処理装置１００は、ステップＳ９０３の処理に戻る。一方で、ブレークポイントが設定された行である場合（ステップＳ９０５：Ｙｅｓ）、情報処理装置１００は、ステップＳ９０６の処理に移行する。
【００９３】
ステップＳ９０６では、情報処理装置１００は、実行対象行に変数があるか否かを判定する（ステップＳ９０６）。ここで、実行対象行に変数がない場合（ステップＳ９０６：Ｎｏ）、情報処理装置１００は、ステップＳ９０３の処理に戻る。一方で、実行対象行に変数がある場合（ステップＳ９０６：Ｙｅｓ）、情報処理装置１００は、ステップＳ９０７の処理に移行する。
【００９４】
ステップＳ９０７では、情報処理装置１００は、実行対象行に規定された変数名を取得する（ステップＳ９０７）。次に、情報処理装置１００は、取得した変数名に基づいて変数値を取得する（ステップＳ９０８）。そして、情報処理装置１００は、取得した変数名と変数値とを対応付けて出力する（ステップＳ９０９）。
【００９５】
次に、情報処理装置１００は、実行対象行に未処理の変数があるか否かを判定する（ステップＳ９１０）。ここで、実行対象行に未処理の変数がある場合（ステップＳ９１０：Ｙｅｓ）、情報処理装置１００は、ステップＳ９０７の処理に戻る。一方で、実行対象行に未処理の変数がない場合（ステップＳ９１０：Ｎｏ）、情報処理装置１００は、ステップＳ９０３の処理に戻る。これにより、情報処理装置１００は、作業者の作業負担の低減化を図ることができる。
【００９６】
ここでは、情報処理装置１００が、ステップＳ９０１〜Ｓ９１０の処理を実行する場合について説明したが、これに限らない。例えば、情報処理装置１００とは異なる装置が、ステップＳ９０１〜Ｓ９１０の一部の処理を実行する場合があってもよい。具体的には、情報処理装置１００とは異なる装置が、ステップＳ９０１の処理を実行してブレークポイントの設定を受け付け、ブレークポイントが設定されたソースコードを情報処理装置１００に提供する場合があってもよい。
【００９７】
以上説明したように、情報処理装置１００によれば、ソースコード１１０のうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、実行対象の行に含まれる変数の識別情報を取得することができる。情報処理装置１００によれば、記憶部１３０を参照して、取得した識別情報に対応付けられた値情報を取得し、取得した識別情報と、取得した値情報とを対応付けて出力することができる。これにより、情報処理装置１００は、作業者の作業負担の低減化を図ることができる。
【００９８】
情報処理装置１００によれば、ソースコード１１０の実行中に、ソースコード１１０のうちの実行対象の行に実行を抑制することを示す情報が対応付けられていることを検出するとソースコード１１０の実行を停止することができる。情報処理装置１００によれば、値情報を取得するとソースコード１１０の実行を再開することができる。これにより、情報処理装置１００は、作業者が、ソースコードに規定された変数の値を調査する操作、および、ソースコードの実行を再開する操作を行わずに済むようにし、操作量の低減化を図ることができる。また、情報処理装置１００は、ソースコード１１０の実行が停止する時間の短縮化を図ることができる。このため、情報処理装置１００は、マルチスレッド形式でソースコード１１０を実行しても、処理順序が入れ替わる確率の低減化を図ることができ、ソースコード１１０が示す処理の流れについて正しく検証可能にすることができる。
【００９９】
情報処理装置１００によれば、記憶部１３０に記憶された変数の値情報を、ソースコード１１０の実行に応じて更新することができる。これにより、情報処理装置１００は、実行を抑制することを示す情報が対応付けられた実行対象の行を実行した時点における変数の値情報を、記憶部１３０に正しく反映することができる。このため、情報処理装置１００は、実行を抑制することを示す情報が対応付けられた実行対象の行を実行した時点における変数の値情報を取得することができる。
【０１００】
情報処理装置１００によれば、複数の行の少なくともいずれかの行に実行を抑制することを示す情報が対応付けられたソースコード１１０を特定の装置からネットワークを介して取得することができる。情報処理装置１００によれば、取得した識別情報と、取得した値情報とを対応付けて、特定の装置に出力することができる。これにより、情報処理装置１００は、別の装置でソースコード１１０に実行を抑制することを示す情報を対応付け可能にするように運用される場合に適用することができる。そして、情報処理装置１００は、ソースコード１１０を実行する装置と変数の識別情報と値情報とを取得する装置とを同一にし、通信遅延の影響を抑制することができる。このため、情報処理装置１００は、マルチスレッド形式でソースコード１１０を実行しても、処理順序が入れ替わる確率の低減化を図ることができ、ソースコード１１０が示す処理の流れについて正しく検証可能にすることができる。
【０１０１】
情報処理装置１００によれば、受け付けたソースコード１１０のうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出する都度、実行対象の行に含まれる変数の識別情報を取得することができる。情報処理装置１００によれば、実行対象の行に含まれる変数の識別情報を取得する都度、記憶部１３０を参照して、取得した識別情報に対応付けられた値情報を取得し、取得した識別情報と対応付けて蓄積することができる。情報処理装置１００によれば、蓄積した結果を出力することができる。これにより、情報処理装置１００は、出力回数の増大化を抑制することができる。このため、情報処理装置１００は、例えば、通信量の低減化を図ることができる。
【０１０２】
情報処理装置１００によれば、連続して同一の識別情報と値情報とを対応付けて蓄積した場合、連続して同一の識別情報と値情報とを対応付けて蓄積した回数と、該識別情報と該値情報とを対応付けて出力することができる。情報処理装置１００は、作業者が、一見して、同じ変数の名称と値情報とが何回出力されたかを把握しやすくすることができる。このため、情報処理装置１００は、作業者が、変数の値情報の変化を把握しやすくし、ソースコード１１０が示す処理の流れについて検証しやすくすることができる。
【０１０３】
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した検証支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した検証支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１０４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１０５】
（付記１）複数の行を含むソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、前記実行対象の行に含まれる変数を識別する識別情報を取得し、
変数の値情報を、該変数を識別する識別情報に対応付けて記憶する記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、
取得した前記識別情報と、取得した前記値情報と、を対応付けて出力する、
処理をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１０６】
（付記２）前記ソースコードの実行中に、前記ソースコードのうちの実行対象の行に実行を抑制することを示す情報が対応付けられていることを検出すると前記ソースコードの実行を停止し、前記値情報を取得すると前記ソースコードの実行を再開する、処理を前記コンピュータに実行させることを特徴とする付記１に記載の検証支援プログラム。
【０１０７】
（付記３）前記記憶部に記憶された前記変数の値情報は、前記ソースコードの実行に応じて更新される、ことを特徴とする付記１または２に記載の検証支援プログラム。
【０１０８】
（付記４）前記複数の行の少なくともいずれかの行に実行を抑制することを示す情報が対応付けられた前記ソースコードを特定の装置からネットワークを介して取得する処理を前記コンピュータに実行させ、
前記出力する処理は、取得した前記識別情報と、取得した前記値情報と、を対応付けて、前記特定の装置に出力する、ことを特徴とする付記１〜３のいずれか一つに記載の検証支援プログラム。
【０１０９】
（付記５）前記識別情報を取得する処理は、受け付けた前記ソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出する都度、前記実行対象の行に含まれる変数を識別する識別情報を取得し、
前記値情報を取得する処理は、前記実行対象の行に含まれる変数を識別する識別情報を取得する都度、前記記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、取得した前記識別情報と対応付けて蓄積し、
前記出力する処理は、蓄積した結果を出力する、ことを特徴とする付記１〜４のいずれか一つに記載の検証支援プログラム。
【０１１０】
（付記６）前記出力する処理は、連続して同一の識別情報と値情報とを対応付けて蓄積した場合、連続して同一の識別情報と値情報とを対応付けて蓄積した回数と、該識別情報と該値情報とを対応付けて出力する、ことを特徴とする付記５に記載の検証支援プログラム。
【０１１１】
（付記７）複数の行を含むソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、前記実行対象の行に含まれる変数を識別する識別情報を取得し、
変数の値情報を、該変数を識別する識別情報に対応付けて記憶する記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、
取得した前記識別情報と、取得した前記値情報と、を対応付けて出力する、
処理をコンピュータが実行することを特徴とする検証支援方法。
【０１１２】
（付記８）複数の行を含むソースコードのうちの実行対象の行に、実行を抑制することを示す情報が対応付けられていることを検出すると、前記実行対象の行に含まれる変数を識別する識別情報を取得し、
変数の値情報を、該変数を識別する識別情報に対応付けて記憶する記憶部を参照して、取得した前記識別情報に対応付けられた値情報を取得し、
取得した前記識別情報と、取得した前記値情報と、を対応付けて出力する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【０１１３】
１００  情報処理装置
１１０，５００  ソースコード
１１１  ブレークポイント
１２０  実行ファイル
１３０，４００  記憶部
２００  検証支援システム
２０１  第１処理装置
２０２  第２処理装置
２０３  端末装置
２１０  ネットワーク
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  ネットワークＩ／Ｆ
３０４  記録媒体Ｉ／Ｆ
３０５  記録媒体
４０１  取得部
４０２  実行部
４０３  検出部
４０４  解析部
４０５  出力部
６０１  デバッガプロセス
６０２，８０３  実行プロセス
６０３，８０４  仮想マシン
６０４，８０５  アプリ
７００  表示内容
８０１  第１デバッガプロセス
８０２  第２デバッガプロセス
【図１】
2019125134.tif 000003
【図２】
2019125134.tif 000004
【図３】
2019125134.tif 000005
【図４】
2019125134.tif 000006
【図５】
2019125134.tif 000007
【図６】
2019125134.tif 000008
【図７】
2019125134.tif 000009
【図８】
2019125134.tif 000010
【図９】
2019125134.tif 000011