gcmonitor(1)

名前
gcmonitor - Sun WorkShop Memory Monitor への Web インタフェース

形式
gcmonitor [ -h ] [ -p port ] [ -v ] [ -m report-dir ] [ -r ]

機能説明
GC モニター gcmonitor は、 Sun WorkShop Memory Monitor への Web インタフェースとして機能する、 特殊な Web サーバーです。 GC モニターは、モニターファイルを介して Sun WorkShop Memory Monitor のデバッグライブラリにリンクされたプログラムの状態を検査します。 GC モニターによって、対話形式のデバッグインタフェース機能を持つ多数の Web ページを利用することができます。 このインタフェース機能を使用して、 次のような作業を行うことができます。

•   Web ブラウザからプログラムのメモリー管理機能をデバッグする。

•   プログラムをリモートでデバッグする。

•   リーク情報をソート、フィルタ処理、要約する。

•   割り当て情報とヒープ統計情報をソート、フィルタ処理、要約し、 プログラムのどの部分でどのようにメモリーが使用されているかを確認する。

•   Sun WorkShop Memory Monitor のログファイルを表示する。

•   Sun WorkShop Memory Monitor のマニュアルを表示する。

オプション

-h  gcmonitor コマンドの使用方法についてのヘルプを出力します。

-p port
    GC モニターが作成するインタフェースの TCP/IP ポートを設定します。 デフォルトのポートは 2660 です。

-v  GC モニターを冗長モードにします。 このモードでは、技術サポートに必要な情報が 標準エラーストリームに出力されます。

-m report-dir
    GC モニターがモニターファイルを検索する デバッグレポートディレクトリを report-dir に設定します。 デフォルトのディレクトリは /tmp です。

-r  GC モニターを読み取り専用モードにします。 モニターファイルを削除することはできません。

障害時の対処方法

  問題
ブラウザに次の GC モニターのエラーが表示されます。
ファイル ."/htdocs/index.html". がありません

  対策
Sun WorkShop Memory Monitor の gcmonitor ファイルをデフォルト ディレクトリから移動していませんか ? GC モニターは、オンラインマニュアルなど、多くの HTML ページを相対パスを使って表示しているため、パスが正しくないと正常に機能しません。 実行可能ファイルをデフォルトのディレクトリに戻し、 問題が解決するかどうかを確認してください。 また、「使用上の留意点」の項も参照してください。

  問題
http://127.0.0.1:2660 で Web ページを参照できません。

  対策
ブラウザがプロキシサーバーにアクセスしていないか確認します (ファイアウォールの規制を回避するためにこのように設定していることがあります)。 ブラウザのプロキシサーバーの設定をオフにすると、 ローカルでのループバックアドレスの表示が正しく機能します。 ほとんどのブラウザでは、 127.0.0.1、 localhost、 localhost:2660 のいずれかのアドレスを指定すると、 プロキシサーバーを無効にできます。 以下にブラウザごとの操作方法の例を示します。 使用するブラウザが示されていない場合は、 ブラウザに付属のマニュアルを参照してください。

Netscape 3:

1.  「オプション (Option)」 メニューの「ネットワークの設定 (Network Preferences)」 を選択します。

2.  「プロクシ (Proxies)」タブを選択し、 「手動でプロクシを設定 (Manual Proxy Configuration)」ダイアログボックスを表示します。

3.  「プロクシなし (No proxies for)」ボックスに、 localhost:2660 を追加します。

4.  「OK」 をクリックして終了します。

Netscape 4 ("Communicator"):

1.  「編集 (Edit)」メニューの「設定 (Preferences)」 を選択します。

2.  カテゴリツリーの 「詳細 (Advanced)」 をダブルクリックし、 「プロキシ (Proxies)」を選択します。

3.  「手動でプロキシを設定 (Manual Proxy Configuration)」ダイアログボックス を表示します。

4.  「例外 (Exceptions)」 ボックスに、 localhost:49213 を追加します。

  問題
リモートでデバッグするときにポート 2660 にアクセスできません。

  対策
リモートマシン (ブラウザを実行しているマシンではなく、 デバッグされるプログラムを実行しているマシン) 上で GC モニターが実行されていることを確認し、 127.0.0.1 ではなく、 http://remote-address:2660/ に接続します。

あるいは、 ファイアウォールによって接続が拒否されている可能性もあります。 管理者がこの Web インタフェースでリモートデバッグを行うことができない ようにファイアウォールを設定している場合には、この方法は使用できません。 ご使用の環境のセキュリティ設定に詳しい方に問い合わせてください。

ファイアウォールによってリモートデバッグが禁止されている場合は、 ftp または電子メールを使用してモニターファイルの圧縮コピーを ローカルマシンに転送し、ローカルで gcmonitor を実行してモニターファイルを表示することができます。 この場合は、ポストモーテムデバッグ (プログラムの実行終了後のデバッグ) のみ実行できます。

  問題
GC モニターで 2660 以外のポートを使用する方法はありますか ?

  対策
gcmonitor を起動するときに、引数 -p port を使用すると、新しいポート番号を指定できます。 たとえば、GC モニターでポート 12345 を使用したい場合は、次の構文を使用します。

% gcmonitor -p 12345

  問題
使用しているブラウザでは、フレームや Javascript をサポートして いないというメッセージが Web ページに表示されます。

  対策
ブラウザで Javascript を有効に設定していない可能性があります。 GC モニターでデバッグモニター用のページを作成するにはフレームと Javascript の両方が必要です。 これらが見つからない場合にはメッセージが表示されます。

  問題
Web ページの一番上に 「Bad GCMonitor File」 というメッセージが表示されます。

  対策
次の可能性があります。

•   プログラムにデバッグライブラリを リンクして実行していない。

•   デバッグレポートディレクトリを、 プログラムがモニターファイルに書き込みを行うディレクトリと同じディレクトリに 設定していない。

    このディレクトリは、GC_MONDIR 環境変数で変更できます。

•   モニターファイルを、レポートディレクトリ以外の場所に移動してしまった。

Web インタフェースの 「プログラム選択」タブをクリックし、 このディレクトリ (デフォルトでは /tmp) が、表示したいモニターファイルの書き込み先になっていることを確認します。

次に、 ls *.mon のようにして、 そのディレクトリに実際にモニターファイルが存在していることを確認します。

調べるモニターファイルがない場合でも、 Web インタフェースからオンラインマニュアルを 使用することはできます。

  問題
「プログラム選択」タブにアプリケーションの古いコピーが多数表示されます。

  対策
デバッグレポートディレクトリの内容を頻繁に整理していますか ? プログラムの実行内容を比較するため、モニターファイルは、デバッグライブラリに リンクされた実行可能ファイルが実行されるたびに 1 つ記述されます。 このモニターファイルは、その実行のメモリー割り当て動作を記録したもので、 プログラムの終了後も保存されます。 これらのファイルはサイズが非常に大きくなる可能性があるため、 ディスク容量の制約から、ときどき削除する必要があります。 この作業は、テープのバックアップのスケジュールに合わせて行うことを お勧めします。 「設定」タブで操作できるのは、 プログラムの現在実行中のインスタンスに対応するファイルだけです。 以前のプロセスに対して、 Sun WorkShop Memory Monitor の動作を (さかのぼって) 変更する方法はありません。

  問題
cookie を受け入れるかどうかを確認するメッセージが何度も Web ページに表示されます。

  対策
cookie を検知したときに 警告を表示するように、ブラウザが設定されている可能性があります。 cookie は、Web サーバーがブラウザに送信する永続的なデータで、 ブラウザが再びその Web サーバーに接続したときにサーバーに送信されます。 cookie を設定すると、そのサイトにアクセスした時点でアクセスしているユーザーや 以前に設定したオプションなどの情報がサーバーに認識されるため、 そのサイトの情報を効率的にブラウズ (閲覧) できるようになります。 cookie を設定することは一種の個人情報の公開になるため、 ユーザーによっては、cookie の設定を求められた場合に そのことが知らされるように (意図的に) 設定することもあります。 GC モニターは、 検査するプログラムのデバッグログが変更されたとき、 ユーザー変数が変更されたとき、 および、その他のユーザーアクションに応答して cookie の設定を 促します。デバッグ中にブラウザが返した cookie を見るのはローカルの GC モニターだけで、 Sun Microsystems やインターネット上の第三者ではないため、 デバッグセッションの間は cookie の警告を一時的に無効にしておくことをお勧めします。

  問題
「割り当てプロファイル」 タブに既知のリークが表示されません。

  対策
リークしたメモリーごとに割り当てサイトをソートしましたか ? 最初のいくつかの割り当てサイトだけを表示している場合は、 目的のリークが表示されない可能性があります。

環境

GC_MONDIR
    GC_MONDIR は、モニターファイルが格納されるディレクトリを、Sun WorkShop Memory Monitor のデバッグライブラリ (libgc_dbg) とリンクしているプログラムに 知らせます。デフォルトでは、モニターファイルは /tmp に格納されます。

ファイル

/tmp
    モニターファイルが書き込まれるデフォルトのデバッグレポートディレクトリ。 -m オプションを参照してください。

使用上の留意点

GC モニターは、 Sun WorkShop Memory Monitor の gcmonitor ディレクトリで実行しなければなりません。 これは、GC モニターが、オンラインマニュアルなど、多くの HTML ページを相対パスを使って表示しているためです。このパスが正しくないと 正常に機能しません。

関連項目
gcInitialize(3)、 gcFixPrematureFrees(3)、 gcStopFixingPrematureFrees(3)、

『Sun WorkShop Memory Monitor ユーザーズガイド』