ポスター発表 - トップエスイー

トップエスイー修了制作
Java PathFinderの統合開発環境への組み込み
によるデバッグ機能強化ツールの製作
三菱スペース・ソフトウエア株式会社
本間芳則
ツールの利用による解決
Java PathFinderにおける問題点
エラー原因の特定を容易にするため,スレッドお
よび変数・オブジェクトの情報を表示する対話型
のツールを開発した.
ツールはJava PathFinderのListenerAdapterを拡
張し,VM Stateを操作して情報を取得する.また,
Eclipseプラグインにより簡単な操作で利用できる.
Java PathFinderはJavaプログラムソースに対して
ソフトウェアモデル検査を実施でき,また検査内
容をJava言語で記載することができる有用なツー
ルである.しかし,エラー検出のレポートがプログ
ラムのトレース情報(テキスト)のみであり,エ
ラー原因の特定が困難で短時間ではできない.
提案するツールの概要
「コマンド待機モード」
Path Searchモジュール
エラー検査処理
エラーパスの検出後
パス制御
モジュール
stack for
backtrack
stack for
backtrack
stack for
forward
VM State-3
VM State-2
VM State-2
VM State-1
VM State-1
現在: VM State-4
現在: VM State-3
VM State内に保持しているデータを
解析、分析して情報を提供
既存
VM State
Thread-2
obj-2
obj-6
obj-3
前に進む時には取り出し、
後ろに戻る時にはストアする
Thread-3
I/F
オブジェクト・変数情報
obj-1
backtrack
forward
スレッドの情報
Thread-1
機能拡張版
データ保持の変更
処理を進めたり、戻したり
制御する
表示
モジュール
VM State-4
obj-4
ユーザコマンド
受付制御
obj-7
ツール使用時は,Java PathFinderのエラー検出後
には終了せず,コマンド待機モードとなる.ユーザの
UI操作により表示したい状態をstackに蓄えている
VM Stateをリストアし,現在のスレッド情報および変
数・オブジェクトを検索し情報を表示する.
コマンド送信
Eclipseプラグイン
obj-5
通信
モジュール
ツールの説明
状態の移動制御
情報の表示
backtrack forward
パス 3
パス 2
パス 1
状態を戻して表示
を比較した例:
情報を表示!
JPF終了
現在の
状態表示
指定オブジェクト
状態表示
全オブジェクト
状態表示
指定クラスの
状態表示
エラー発生
Eclipseプラグインから
マウス操作で状態を変更し
たり,表示したりできる
動作しているスレッド1と2がどう
いう状態なのかがわかりやすい
スレッドの変化が分かりやすい
エラーパスのトレース情報だけでなく,エラーパス
の各状態におけるスレッド情報,変数およびオブジェ
クトの値情報を表示できればエラー究明に役立ち,
短時間での特定が容易になる.そのため,提案する
ツールは以下の機能を有する.
1. 状態の変数やオブジェクト情報を表示する
2. 状態のスレッド状態を表示する
3. 表示する状態を変更する
4. VMヒープ内の値について検索し表示する
ツールの成果
 使用するメモリ量,時間に関して
一般的にモデル検査においては課題とな
るが,本ツールではエラー検査部分におい
ては既存のJava PathFinderと同じように動作
するため,メモリ量,時間は変わらない.
 状態確認時間
本ツールの利用により,各状態やエラー経
路の把握を短時間で行うことが可能となった.
 開発者が利用しやすいUI
Java PathFinderを統合開発環境に組み込
むことにより簡単な操作でモデル検査を実
施してエラー原因を把握できる.
国立情報学研究所
トップエスイー
トップエスイー: サイエンスによる知的ものづくり教育プログラム
National Institute of Informatics
~サイエンスによる知的ものづくり教育プログラム~
文部科学省科学技術振興調整費
産学融合先端ソフトウェア技術者養成拠点の形成