研究概要 |
分散プログラムのような,複数プロセスが相互に情報交換しつつ同時並行的に動作するプログラムにおけるデバッグ作業は,単一プロセスによる逐次プログラムのそれと比較してはるかに困難を伴う.それは,同期問題に代表される,複数プロセスの状態を同時に把握しその正誤を判断しなくてはならない点,そしてそのためには次に何を調査すべきであるかを発見するためにある程度の経験が必要であることに,そのひとつの理由がある. 本研究では,この困難に対処するためにアルゴリズミックデバッギング手法を適用することを考えた.これは,次に何を調査し判断すれば誤りの存在範囲を絞り込むことができるのかについての選択権をデバッグ支援システムが持ち,作業者が現在のプログラム状態や達成された機能の正誤にだけ集中できる環境を提供し,利用者の負担を減らすものである. 平成10年度までに,GNUデバッガを基礎とした実働デバッグシステムの骨格を作成した.これは,分散プログラムの稼動ログを収集し,ログによって動作の再現をすること,指定した方法を用いて再現途中に動作を一旦停止すること,一旦停止した任意のプロセスから変数値等の情報を得ることが可能となっている. 平成11年度は,アルゴリズミックにデバッグ作業をする際の,システムの制御方法に焦点を当てた.今回は,誤り位置の絞り込み作業を効率良く行うための発見的手法(ユーザが表明を入力することによって行う)を支援するような制御方法を実現した.ただし,現時点では実装の途中であり,誤り位置の絞り込み作業を完全に自動化するまでには至っていない.このシステムを用いて,2人の哲学者の食事問題を例題とした実験を行い,理論通りにシステムが動作することを確認した.
|