Venkman 0.9.x FAQ

原文 URL : http://www.hacksrus.com/~ginda/venkman/faq/venkman-faq.html

この和訳文書は下訳と考えてください。JLP の Venkman 担当の dynamis さんが完成稿を公開されていますので、そちらを参照してください。URL は:
http://www.ii-park.net/~dynamis/Trans/venkman/FAQ/venkman-faq.html

scarab

目次

1. インストールとアンインストールの質問

2. 使ってみる

3. Venkman の設定(Preferences)

4. 文書とリソース

5. ビルドとソースの質問


質問

1. インストールとアンインストールの質問

1.1 Venkman を Mozilla にインストールするには?
Venkman は Mozilla 0.9.5 から、Mozilla ビルドの一部分になっています。 最新の Mozilla リリース をダウンロードして、インストールの時に Full または Custom を選択してください。

すでに Mozilla をインストールしていて、Venkman をアップグレードしたいだけであれば、 Venkman Development Page に行ってください。

全てのプラットフォームで、インストールした後にブラウザの再起動が必要でしょう。全てのバージョンの Windows で、タスクバーの高速起動アイコンを終了する必要がありますし、いくつかのバージョンの Windows では、OS を再起動する必要があるかも知れません。

あなたが Mozilla 1.0 を使用しているのであれば、私は、最新の開発リリースをお試しになることを *強く* お勧めします。このコードは新しすぎて Mozilla 1.0 には入りませんでしたが、たいていの場合、日常のデバッガとして使用するのに充分な安定性と、Mozilla1.0 に同梱されているものよりもたくさんの機能を備えています。そもそも、もしあなたがアップグレードしなければ、この FAQ はあなたには意味のないものです。(^^;

↑最初に戻る

1.2 Netscape 7.x に Venkman をインストールするには?
Venkman Development Page にある XPI は、Netscape 7.x で動作するはずです。このページの XPI は、Netscape 6.x では動作しません

全てのプラットフォームで、インストールした後にブラウザの再起動が必要でしょう。全てのバージョンの Windows で、タスクバーの高速起動アイコンを終了する必要がありますし、いくつかのバージョンの Windows では、OS を再起動する必要があるかも知れません。

↑最初に戻る

1.3 Netscape 6.2x に Venkman をインストールするには?
Netscape 6.x で動作するバージョンの Venkman は、もはやメンテナンスされていません。最新のデバッガが動作する Netscape 7.x か Mozilla 1.0 にアップグレードしてください。

Venkman 0.6.2Netscape 6.2x で動作し、 Venkman 0.6.2 install page からインストールできます。このページの XPI は、Mozilla 1.0 や Netscape 7.x では動作しません

全てのプラットフォームで、インストールした後にブラウザの再起動が必要でしょう。全てのバージョンの Windows で、タスクバーの高速起動アイコンを終了する必要がありますし、いくつかのバージョンの Windows では、OS を再起動する必要があるかも知れません。

↑最初に戻る

1.4 Venkman をアンインストールするには?
Mozilla は、今の所、XPI をアンインストールする機能を備えていません。以下に記すアンインストール手順は、いかなる保証もできません:
  1. Mozilla をシャットダウン。
  2. components/venkman-service.jschrome/venkman.jar ファイルを何か別の名称に変更。
  3. chrome/ サブディレクトリを何か別の名称に変更。
  4. regchrome を起動 (訳注: Unix だけかも?)
  5. もし、Mozilla が問題なく起動すれば、うまくいったということです。そうでなければ、リネームしたもの全てを元に戻してアンインストールをあきらめるか、Mozilla を削除して、最初からやり直してください。

↑最初に戻る

2. 使ってみる

2.1 Venkman を起動するには?
  1. Venkman は、メニューの Tools → Web Development → JavaScript Debugger から起動できます。
  2. ブラウザを -venkman コマンドライン・オプション付きで起動することもできます。これにより、ブラウザ・フロントエンドの代わりに、Venkman が起動します。他のプログラム、例えばメールやウェブブラウザは、Venkman の Window メニューから起動できます。

↑最初に戻る

2.2 Venkman が起動時に、"Recorded local startup X, global YYY." のようなメッセージを出すのはなぜ?
Venkman の 0.9.x リリースには、使用カウンターが内蔵されていて、実際にどれだけの人が使用しているか、私がわかるようにしてあります。ローカルのスタート番号は、あなたが何回 Venkman を起動したかを示し、グローバル番号は、Venkman が今までに何回起動されたかを示します。

起動時に、Venkman は (XMLHTTPRequest を使用して) hacksrus.com にある CGI をロードします。URLにエンコードされているのは、 Venkman が起動された回数と Venkman のバージョン番号です。

二、三日ごとに、ウェブログは /dev/null/ サイクルに入り、永遠に失われます。これが生じる前に、私は、hacksrus のウェブログをスキャンしてデータを要約するシェルスクリプトを走らせます。これが三日以上保存される唯一のデータです。結果は <http://www.hacksrus.com/~ginda/venkman/usage.txt> で見ることができます。

↑最初に戻る

2.3 起動時のカウンターを無効にできますか?
できます。でも、私は無効にしてほしくありません。起動時のカウンターを無効にするには、pref permitStartupHit false とタイプしてください。

↑最初に戻る

2.4 Venkman を、次のエラーで停止させるには?
Debug → Error Trigger → Stop For Errorsを選択してください。

↑最初に戻る

2.5 Venkman を、次の例外が投げられた時に停止させるには?
Debug → Throw Trigger → Stop For Exceptions を選択してください。

↑最初に戻る

2.6 Venkman を、次の JavaScript ステートメントで停止させるには?
ツールバーの大きな赤い "X" をクリックするか、Debug → Stop を選択してください。現在 JavaScript が実行されていなければ、ツールバーの "X" の上に "..." が出現して、メニューアイテムにチェックマークが付くでしょう。JavaScript の次の行に遭遇したとき、デバッガは停止するでしょう。これをキャンセルするには、"X" をクリックするか、Stop をもう一度選択します。

↑最初に戻る

2.7 ブレークポイントを設定するには?
Loaded Scripts という名称のビューで、ブレークポイントを設定したいファイルを見つけます。そのファイルをダブルクリックすると、Source Code という名前のビューに表示されます。 関心のある行を見つけ出し、Source Code ビューの (行番号の左の) 左側の余白を一回クリックします。選択した行が実行可能な JavaScript コードを含んでいれば、赤い停止マークが現れて、ブレークポイントが設定されたことを示します。

もし停止マークに白い F の文字があれば、Venkman が 予定ブレークポイント(Future Breakpoint) しか設定できないことを意味します。これは、あなたの選択した行がソースコードを含んでいない時、あるいは、コードの行が JavaScript エンジンによってすでにアンロードされた場合に生じます (トップレベルのコードは、時として、実行が完了した後すぐにアンロードされます)。 予定ブレークポイント は、Venkman が今は 確定ブレークポイント(hard breakpoint) を設定できない、という事を意味しますが、もしファイルがロードされ、指定された行番号に実行可能なコードがあれば、 Venkman は自動的に確定ブレークポイントを設定します。

ブレークポイントは、Source Code ビューのコンテキストメニューから、また、 インタラクティブ・セッション(Interactive Session) で breakfbreak コマンドを使用しても設定できます。

↑最初に戻る

2.8 ブレークポイントをクリアするには?
いくつかの方法があります:
  • Source Code ビューで、左端のブレークポイントアイコンをクリックすると、確定ブレークポイント(Hard Breakpoint) がクリアされますが、予定ブレークポイント(Future Breakpoint) は残ります。予定ブレークポイントを削除するにはもう一度クリックしてください。
  • Source Code または Breakpoints ビューのコンテキストメニューで、確定ブレークポイントをクリアするには Clear Breakpoint を、予定ブレークポイントをクリアするには Clear Future Breakpoint を選択します。注意:現在、"Source Code (new)" のビューにはバグがあり、この方法は使用できません。
  • Loaded Scripts ビューで、ブレークポイントを含む関数のコンテキストメニューから、Clear Script Breakpoints を選択します。
  • インタラクティブ・セッション(Interactive Session) で、確定ブレークポイントをクリアするには clear コマンドを、予定ブレークポイントをクリアするには fclear コマンドを使用します。

↑最初に戻る

2.9 全部のブレークポイントをクリアするには?
Breakpoints ビューのコンテキストメニューで、全ての 確定ブレークポイント(Hard Breakpoint) をクリアするには Clear All Breakpoints を、全ての 予定ブレークポイント(Future Breakpoint) をクリアするには Clear All Future Breakpoints を選択してください。インタラクティブ・セッション(Interactive Session) で、clear-allfclear-all コマンドを使用することもできます。

↑最初に戻る

2.10 「確定ブレークポイント(Hard Breakpoint)」とは?
確定ブレークポイント(Hard Breakpoint) は、JavaScript エンジンに現在ロードされている JavaScript コードに設定されるものです。Venkman は、確定ブレークポイントでしか停止できません。 Venkman は、現在ロードされていないスクリプトには、確定ブレークポイントを設定できません。

↑最初に戻る

2.11 「予定ブレークポイント(Future Breakpoint)」とは?
予定ブレークポイント(Future Breakpoint) は、url が一致し、かつ指定された行に実行コードが存在するファイルがロードされた時点で、確定ブレークポイント(Hard Breakpoint) を設定するよう Venkman に指示するものです。これは、普通、スクリプトのトップレベル、またはまだロードされていないファイルで停止する場合に使用されます。

↑最初に戻る

2.12 プロファイルボタンは何をするものですか / コードプロファイリングの機能を使うには?
プロファイル(Profile) は、あなたのスクリプトの実行時間を測定するのに使用できます。プロファイリングを有効にするには、ツールバーの プロファイル ボタンをクリックしてください。プロファイリングが有効になっている場合、Venkman は、コールの回数、コール時間の最大値、コール時間の最小値、そしてコール時間の合計値をコールされた全ての関数について収集します。プロファイリングを有効にしたら、プロファイルを作成したいスクリプトを実行してください。終了したら、データの収集を停止するために、「プロファイル」ボタンをもう一度クリックしてください。

プロファイリングが有効なとき、ツールバーボタンに緑のチェックマークが表示され、メニューアイテムにもチェックが付きます。

この作業はあなたが興味を持っている全てのデータを収集するまで繰り返せます。Profile → Clear Profile Dataを選択するまで、プロファイルのデータは蓄積されます。

データの収集が全て終わったら、Profile または File メニューから Save Profile Data As... が選択できます。出力フォーマットは、あなたが選択したファイル拡張子によって決まります。サポートされているフォーマットは、HTML、XML、 CSV、 そしてプレインテキストです。Venkman がファイル拡張子を認識できないとき、出力はプレインテキストになります。CSV フォーマットはほとんどの表計算ソフトにインポートできる、という事を指摘しておきます。

特定のファイルのプロファイルデータだけを保存したいのであれば、スクリプトビューでそれらのファイル(このビューは複数項目の選択をサポートしていますが、実際の操作方法は OS によって異なります)を選択して、コンテキストメニューから Save Profile Data As... オプションを選択してください。選択したスクリプトのプロファイルデータをクリアするには、Clear Profile Data メニューアイテムを使用します。

↑最初に戻る

2.13 整形表示(Pretty Print)ボタンは何をするものですか?
このボタンは 整形表示(Pretty Print) モードを切り替えます。Pretty Print モードでは、ソースビューの内容は選択されたスクリプトのデコンパイルされたソーステキストを含んでいます。これは、 Function prototype の toSource メソッドから得られるテキストと同じです。あなたがデバッグしているソーステキストがあまり良くフォーマットされていないものなら、整形表示によって適切な場所に改行と空白が挿入されるので、読みやすくなるでしょう。

整形表示が有効なとき、ツールバーボタンに緑のチェックマークが表示され、メニューアイテムにもチェックが付きます。

整形表示されたソースでも、オリジナルのソーステキストと同様に、ブレークポイントとシングルステップを設定できます。

整形表示されたソースをディスクに保存できます。File メニュー、または Source View のコンテキストメニューから、Save Source View As... オプションを使用してください。

整形表示が特定の関数で動作しない場合、その関数は JavaScript エンジンによってアンロードされたか、関数が選択されていないかです。関数を選択するには、Loaded Scripts ビューで関数をダブルクリックしてください。

↑最初に戻る

2.14 ウォッチ(watch)を追加するには?
インタラクティブセッションで、 watch-expr someExpression とタイプしてください。 実行が再度停止したとき、eval コマンドが使用されたとき、そして watch-expr コマンドが使用されたときに、expression が再評価されます。

↑最初に戻る

2.15 ウォッチのラベルが暗い灰色で太字になっています。どういう意味ですか?
そのプロパティが、調べているオブジェクト自身ではなく、オブジェクトの prototype から来ている、という事です。

↑最初に戻る

2.16 ウォッチのラベルが赤色で、値がエラー型のオブジェクトになっています。どういう意味ですか?
Venkman がウォッチしている表現を評価しているときに、キャッチされない例外に遭遇した場合、ラベルは赤になり、ウォッチの値は Venkman によってキャッチされた例外になります。

↑最初に戻る

2.17 ウォッチを削除するには?
削除したい一つ以上のウォッチを選択して、コンテキストメニューから "Remove Watch" を選択してください。Interactive Session で remove-watch コマンドを使用して削除することもできます。

↑最初に戻る

2.18 いくつかの関数名が角括弧付きで表示されるのはなぜ?
 

 // これは foo という名称の関数です。

 function foo () {}



 // これは無名の関数です!

 var foo = function () {}



 var o = {

     // これも、同様に無名の関数です!

     foo: function () {},



     // しかしこれは bar_func という名称の関数です

     bar: function bar_func () {}

 };



guess.js
Venkman は、名前のない関数の
意図されている名前を推測しようとします。

JavaScript では、プログラマーは、名前のない関数を宣言することができます。単に関数を名称のある変数に関連付けるだけでは、関数名を付けたことにはならない、という事に注意してください(右の guess.js 参照)。関数に名前を付けなくても特に悪いことはありませんが、それによってデバッガに表示される名称がなくなる、というのは当然の事です。結果として、デバッグは困難になります("anonymous" という名称の二つ以上のスタックフレームを追跡する、という状況を想像してください)。Venkman は、名称のない関数について、意図されている関数名を推測する、という試みを行ないます。guess.js で例示された例で関数名を推測するのは簡単ですが、これらの例からかけ離れたものでは、Venkman に混乱を生じやすくなります

Venkman が推測できるとき、関数名は、角括弧 (訳注:[ , ] ) で表示されます。Venkman が推測できないとき、関数名は anonymous (無名)になります。Venkman を使用していると、あちこちでこの角括弧付きの関数名を見ることになるでしょう。

参照: 関数名を推測するのに使用されている正規表現を変更できますか?

↑最初に戻る

2.19 chrome: url のファイルが全然表示されないのはどうして?
Debug → Exclude Browser Files メニューアイテムがチェックされていると、 chrome: url の全てのファイルは Loaded Scripts ビューから削除され、Venkman はそれをデバッグしません。 デバッグ したい 場合は、メニューアイテムをアンチェックしてください。

↑最初に戻る

2.20 ブラウザのものと思われるファイルがたくさん表示されるのはどうして?
Debug → Exclude Browser Filesメニューアイテムがアンチェックされていると、Venkman は、 chrome: url のファイルを Loaded Scripts ビューに表示します。これらのファイルを表示したくないときは、メニューアイテムにチェックマークを入れて下さい。

↑最初に戻る

3. Venkman の設定(Preferences)

3.1 ビューの配置を変更するには?
ビューを(左の)マウスボタンでクリックしたまま、別のビューにドラッグする事で、新しい位置に移動できます。ビューを移動する位置には黒い線が現れます。ドラッグする位置を変えれば、黒い線もついてくるでしょう。黒い線が希望の位置になったら、ボタンを離してください。

↑最初に戻る

3.2 ビューを新規のウィンドウにするには?
ビューの左上の角のアイコンをクリックしてください。

↑最初に戻る

3.3 ビューをメインウィンドウに戻すには?
ビューをメインウィンドウの戻したい位置にドラッグしてください。

↑最初に戻る

3.4 同じ新規のウィンドウに二つ以上のビューを置けますか?
できます。どんなウィンドウからのいかなるビューも任意の他のウィンドウにドラッグできます。

↑最初に戻る

3.5 Venkman のメインウィンドウから全部のビューを外したら、元に戻せなくなりました!
これはバグです。対処法としては、 View → Show/Hide → Interactive Session を(選択して)表示し、restore-layout factory とタイプしてください。詳細な情報は、 bug 151785 を参照してください。

↑最初に戻る

3.6 私のビューのレイアウトを保存できますか?
できます。save-layout コマンドを使用して、あなたの現在のビュー配置に名前を付けてください。後でレイアウトを読み込むためには、 restore-layout コマンドを使用します。例えば、ソースコード、インタラクティブ・セッション、読み込み済スクリプト の 3つのビューだけが開いた最小限のレイアウトを "minimal" という名称で、また、ウォッチ、ローカル変数、コールスタックのビューを含めたより詳細なレイアウトを "stopped" として保存できます。ブレークポイントで停止して変数を調べたいときは、restore-layout stopped コマンドを使用し、それが終了したら restore-layout minimal コマンドを使用します。

Venkman は起動時に、 "default" という名称のレイアウトを読み込みます。デフォルトの状態では、Venkman は終了時にあなたの現在のレイアウトを "default" と言う名称で保存します。これを解除するには、 View → Save Default Layout On Exit をアンチェックしてください。現在のレイアウトを "default" として保存するには、View → Save Default Layout Now です。

"factory" という名称の特別なレイアウトは、Venkman にハードコードされており、上書きはできません。

↑最初に戻る

3.7 インタラクティブ・セッション(Interactive Session) の配色を変更できますか?
できます。インタラクティブ・セッション(Interactive Session) のコンテキストメニュー、あるいは View メニューで、Interactive Session Colors サブメニューのオプションのどれかを選んでください。Default Colors は、あなたのブラウザがデフォルトにしている文字色、背景色、そしてリンク色を使用します。Dark Colorsは暗い背景色に明るい文字、Light Colors は明るい背景色に暗い文字です。

↑最初に戻る

3.8 デフォルトのタブ幅を変更できますか?
できます。 インタラクティブ・セッションで、pref tabWidth n と入力してください。 n はタブに設定したい空白の数です。

↑最初に戻る

3.9 Venkman は、emacs モード行のタブ幅を考慮しますか?
します。

↑最初に戻る

3.10 関数名を推測するのに使用されている正規表現を変更できますか?
できます。それは guessPattern という設定に保存されていて、デフォルトは (\w+)\s*[:=]\s*$ です。 関数名を推測するときに、Venkman は、関数の開始行にある function という語の最後のインスタンスより前にある全てのテキストを調べます。最初に捕捉されたもの(正規表現の (\w+) 部分)が関数名として使用されます。さかのぼる行数の最大値は、デフォルトでは 5 行に設定されていて、guessContext の設定で変更できます。

↑最初に戻る

3.11 Venkman の設定を変更するには?
次の質問を見てください。

↑最初に戻る

3.12 Venkman が使用している設定のリストを見るには?
インタラクティブ・セッション(Interactive Session) で pref コマンドを使用してください。 pref 単独では、全部の 設定を現在の設定値とともに表示します。 pref somePattern は、名前が somePattern で始まる設定をリストし、pref somePref myValue は、名称が somePref の設定を myValue という値に変更します。

↑最初に戻る

4. 文書とリソース

4.1 Venkman にオンラインヘルプはありますか?
インタラクティブ・セッション(Interactive Session) にはコンソールコマンドのインタラクティブ・ヘルプがあります。 commands と入力するとコンソールコマンドのリストが表示され、help commandNameと入力すると commandName という名称のコマンドに関するヘルプを見る事ができます。 全部のコマンド名を入力する必要はありません。help b で、コマンド名が "b" で始まる全てのコマンドのヘルプが表示されます。

パラーメータを付けずに help と入力すると、ソースビュー全部の コマンド・リファレンスが表示されます。これは、Venkman の起動時に表示されるものです。このファイルは、全てのコンソールコマンドや他のコマンドを、ヘルプテキストとキーボードショートカットとともにリストアップしたものです。このファイルは、 File → Save Source View As... でディスクに保存できます。

↑最初に戻る

4.2 他のドキュメントはどこにありますか?
  • Venkman Home Page が、Venkman に関するあらゆることの中心です。
  • Venkman Development Page には、インストール可能な Venkman の開発版があり、 Venkman の開発に関する分刻みの最新情報を提供しています。
  • Venkman Walkthrough は、Venkman 0.8.6 以前の使用法を解説したものです。 0.9.x ユーザーにも、少しは役に立つかもしれません。

↑最初に戻る

4.3 Venkman には、ニュースグループやメーリング・エイリアスはありますか?
あります。ニュースグループは、netscape.public.mozilla.jsdebugger で、公開されたニュースサーバの news.mozilla.org にあります。これは、 mozilla-jsdebugger@mozilla.org のメーリング・エイリアスにミラーされています。 購読するには、タイトルを "subscribe" として、 mozilla-jsdebugger-request@mozilla.org にメールを送って下さい。購読を解除するには、 タイトルを unsubscribe として、上記のアドレスにメールしてください。

↑最初に戻る

4.4 Venkman のための IRC チャンネルはありますか?
あります。チャンネルは、 irc.mozilla.org の、 #venkman です。

Mozilla を使っていて ChatZilla をインストールしていれば、上の #venkman リンクをクリックしてチャンネルに参加できます。ChatZilla は http://www.hacksrus.com/~ginda/chatzilla/ で入手できます。

IRC がはじめてならば、 irchelp.org を読んでください。

質問がしたくて #venkman に参加するのであれば、あせらないでください。私が IRC にログオンしていても、画面を見ていなかったり、コンピュータの前に座っていない事だって良くあります。 あなたがチャンネルを離れる前に私があなたの質問を見れば、私が回答できるかもしれません。あなたが質問に "venkman" という文字を含めると、私のマシンでベルが鳴り、私の反応はより早くなるかもしれません。どうかこれを悪用しないでください。(^^;

↑最初に戻る

4.5 Venkman に関するスクリーンショットはありますか?
あります。 <http://www.hacksrus.com/~ginda/venkman/screenshots/>

↑最初に戻る

4.6 この FAQ に追加するべきだと思う質問は、どこに提案したら良いのですか?
netscape.public.mozilla.jsdebugger ニュースグループ に投稿してください。

↑最初に戻る

5. ビルドとソースの質問

5.1 Venkman をビルドするには?
Venkman は、全てのプラットフォームで、デフォルトでビルドされます。

↑最初に戻る

5.2 Venkman をビルドしないようにするには?

↑最初に戻る

5.3 Venkman のソースコードはどこにありますか?
Venkman には、二つのコンポーネントがあります。ユーザーインターフェース・コンポーネントは完全に JavaScriptXUL で記述されていて、 mozilla/extensions/venkman/ にあります。実際の JavaScript コードの殆どは、resources/content/ サブディレクトリにあります。

デバッガ・サービス・コンポーネントは、C++ で記述された XPCOM コンポーネントで、JavaScript エンジン を制御するのに使用されるデバッガ API を expose しています。 このコードは、mozilla/js/jsd にあります。The XPCOM インターフェースは idl/jsdIDebuggerService.idl で、移植は jsd_xpc.cpp です。

↑最初に戻る

5.4 Venkman のバグを見つけたら、どうしたらよいですか?
  1. すでに報告されていないかどうか検索してください。 全ての Venkman バグリスト (現在の所、短いリストです) を検索するか、リストの特定のバグを 検索 できます。
  2. すでに報告されたものでなければ、バグを報告 してください。

↑最初に戻る

"Valid HTML 4.01?"