![]() |
訳注:この文書は、現在、「Venkman ホームページ」に統合されています。
Venkman の目的は、Mozilla をベースにしたブラウザに、JavaScript をデバッグする強力な環境を提供する事です。対象となるブラウザは、Netscape
6.x シリーズ(何であれ、Netscape 6.1 の後にリリースされるもの)のブラウザと Mozilla マイルストーンビルドが含まれますが、K-Meleon や Galeon のような、Gecko 単独のブラウザは含みません。このデバッガーは、
XPI
フォーマットのアドオン・パッケージ
として入手でき、2001年10月3日から、Mozilla のインストールビルドの中に含まれています。
1998年に、John Bandhauer は、
Netscape 4x
の JavaScript デバッガーの作成
を行なっていました。作業をモジュール化するために、彼は、
js/jsd
として知られる、中等度の JavaScript デバッグ API の作成から始めました。この API は、既存の
JavaScript API
を拡張したもので、C 言語に移植された有用なデバッガー機能の一群を提供するものでした。次に、John は、この API を Java
に反映させ、彼のクロスプラットフォームなフロントエンドを作成し、
Netscape
JavaScript Debugger 1.0 と 1.1
を作り上げたのです。
Venkman は、John の 1998年の仕事のうち、js/jsd の部分に基礎を置いており、それを
XPCOM
コンポーネント化しています。ユーザーインターフェースが JavaScript と XUL で記述できるようになったため、各々のプラットフォームでの同等性、開発の容易さ、既存の
Mozilla の枠組みへの統合などの面で、作業が楽になる筈です。
この文章の執筆時では、Venkman は基礎段階を終えている状態ですが、1.0 としてリリースできるには至っていません。XPCOM
コンポーネントはほぼ完全で安定しており、フロントエンドはユーザーに、納得できるレベルの機能を提供しています。フロントエンドの進歩に関するスクリーンショットはこちら。
http://www.hacksrus.com/~ginda/venkman/screenshots/
プロジェクトの計画の内、近い将来に達成しようとしている目標 (milestones) は、
α版である、Venkman 0.6.1 は、2001年の10月中旬にリリースされました。
Venkman は、3つの階層で開発されています。
John の js/jsd レベルの API、これは
mozilla/js/jsd
にチェックインされています。この階層は、 Netscape JavaScript デバッガの 1.0 と 1.1 バージョンに使用されており、基本的に完成しています。しかし、バグの修正とメモリリークの対処を開発する努力がなされています。C
言語の API による js/jsd 階層のインターフェースは、 XPCOM 階層とともに、
jsdebug.h
で宣言されています。
XPCOM 階層、これは jsdebug.h の回りの XPCOM インターフェースを規定するものです。インターフェースの定義ファイルは、
jsdIDebuggerService.idl
で、移植は全て、
jsd_xpc.cpp
に含まれています。この階層は、目標の 80% を終了し、js/jsd でフロントエンドが必要とするものは全て備えていますが、バグの修正や、C++
レベルで要求される機能拡張の余地が多分にあります。この機能拡張の一例として、グローバルオブジェクト(ウィンドウオブジェクト)ないし url パターンによるデバッグトラップのフィルタ機能、コードプロファイリング、ログの作成があります。それに加えて、プログラムカウンタータイプ、すなわち
nsIPC の移植は、スカラー値にコンバートされる必要があります。
ユーザーインターフェース階層。この階層は、XUL/JavaScript に基づいたユーザーインターフェースです。これは、mozilla/extensions/venkman
にチェックインされています。この階層は、約 50% 完成しています。最も有用なデバッグコマンド群は使用可能になっていますが、移植されていない、より複雑な機能については開発作業中です。どの機能が移植されていて、どのように動作するかについては、Venkman 早わかり(Walkthrough)
を参照してください。
デバッガをどのように使うかの情報を知りたいエンドユーザーは、
Venkman 早わかり(Walkthrough)
を読んでください。この文書は、デバッガの機能全てを網羅しているわけではありませんが、導入時の情報としては充分でしょう。