Skip to main content
QUICK REVIEW

[論文レビュー] Control and Debugging of Distributed Programs Using Fiddle

João Lourenço, José C. Cunha|ArXiv.org|Sep 26, 2003
Software Testing and Debugging Techniques参考文献 15被引用数 3
ひとこと要約

本稿では、クライアント・サーバー・アーキテクチャを採用することで、並列および分散プログラムの統合的テストとデバッグを可能にする、柔軟で拡張可能な分散デバッグエンジン「Fiddle」を提示する。Deipa—Fiddleクライアントであり、テストコマンドシーケンスを解釈するツール—を用いることで、開発者はPVMベースのアプリケーションにおける実行パスを制御可能であり、Fiddleは同時に複数のクライアントをサポートし、細粒度のプロセスレベルでのデバッグとツールの同期を実現する。

ABSTRACT

The main goal of Fiddle, a distributed debugging engine, is to provide a flexible platform for developing debugging tools. Fiddle provides a layered set of interfaces with a minimal set of debugging functionalities, for the inspection and control of distributed and multi-threaded applications. This paper illustrates how Fiddle is used to support integrated testing and debugging. The approach described is based on a tool, called Deipa, that interprets sequences of commands read from an input file, generated by an independent testing tool. Deipa acts as a Fiddle client, in order to enforce specific execution paths in a distributed PVM program. Other Fiddle clients may be used along with Deipa for the fine debugging at process level. Fiddle and Deipa functionalities and architectures are described, and a working example shows a step-by-step application of these tools.

研究の動機と目的

  • 複雑で非決定的である分散およびマルチスレッドアプリケーションのデバッグという課題に対処すること。
  • モノリシックなデバッガーやプラットフォーム依存のツールの制限を克服し、拡張可能でプラットフォームに依存しないデバッグ支援を可能にすること。
  • 中間層を介して独立したテストツール(例:STEPS)とデバッグ環境をシームレスに統合すること。
  • 標準化されたインターフェースを通じて低レベルのデバッグプリミティブを公開することで、ハイレベルな抽象化や可視化ツールの支援を可能にすること。
  • 中央集権的かつ同期的なデバッグエンジンを提供することで、複数のツールにわたる同時に制御可能なデバッグを実現すること。

提案手法

  • クライアント・サーバー・モデルに基づき、エンジンを中央サーバーとして、デバッグツールをクライアントとして位置付ける分散デバッグエンジン「Fiddle」を設計する。
  • Fiddleを、最小限のコアデバッグサービス(例:ブレークポイント、ステップ実行、プロセス起動)と、新規ツール用に拡張可能なインターフェースを備えて実装する。
  • PVMにおけるプロセス作成をインターセプトし、I/Oをリダイレクトし、FiddleおよびDeipaの両方に新しいプロセスを登録する通信チャネルを通じて、ランチャーメカニズムを導入する。
  • 外部のテストツール(STEPS)から受信したテストコマンドシーケンスを解釈することで、分散実行をグローバルに制御可能なFiddleクライアント「Deipa」を実装する。
  • コンソールインターフェースとマルチスレッド・バックエンドを備えた構造としてDeipaを設計する:プロセス制御用のスレッド、リクエスト処理およびプロセス登録用のマネージメントスレッドを別々に配置する。
  • Fiddleとクライアント間の通信をXMLを用いて標準化することで、相互運用性およびサードパーティツールとの統合性を向上させる。

実験結果

リサーチクエスチョン

  • RQ1複数の独立したテストおよびデバッグツールと柔軟に統合できるように、分散デバッグエンジンをどのようにアーキテクチャ設計すべきか?
  • RQ2分散かつマルチプロセス環境において、一貫性を保ちながら複数のクライアントが同時にデバッグを実行できるメカニズムは何か?
  • RQ3ターゲットアプリケーションを変更せずに、テストツールのコマンドシーケンスを分散システム内の低レベルデバッグ操作にマッピングする方法は何か?
  • RQ4ランチャーメカニズムが、アプリケーションコードの変更なしに新しいプロセスをデバッグセッションに透明に統合する役割を果たす仕組みは何か?
  • RQ5拡張可能で階層的なインターフェースを通じて、デバッグプラットフォームがハイレベルな抽象化(例:可視化プログラミングモデル)をどの程度サポートできるか?

主な発見

  • Fiddleは、FiddleクライアントであるDeipaがテストコマンドシーケンスを解釈し、PVMベースの分散プログラムにおける特定の実行パスを強制することで、統合的テストとデバッグを成功裏に実現している。
  • クライアント・サーバー・モデルにより、複数のツール(例:DeipaとFiddle)が同時に同じ分散アプリケーションにアクセス・制御可能であり、グローバル(Deipa)およびローカル(Fiddle)なデバッグビューの両方を提供できる。
  • PVMプロセスの新規作成をインターセプトし、登録するランチャープログラムの使用により、アプリケーションコードの変更なしにデバッグ環境への透明な統合が実現されている。
  • Fiddleとクライアント間の通信が独自フォーマットからXMLに移行され、サードパーティツールとの相互運用性および拡張性が顕著に向上した。
  • モジュラーなクライアントによる拡張性が実現されており、Deipaの開発に加え、グラフィカル・インターフェースや強化されたデバッグ機能を提供するFGIおよびPADIの開発が進行中である。
  • Fiddleのコアデバッグプリミティブにハイレベルな操作をマッピングすることで、ソースコードレベルおよびハイレベルな抽象化レベル(可視化プログラミングモデルを含む)でのデバッグが可能になっている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。