トップエスイー修了制作 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 ~サイエンスによる知的ものづくり教育プログラム~ 文部科学省科学技術振興調整費 産学融合先端ソフトウェア技術者養成拠点の形成
© Copyright 2024 ExpyDoc