マニュアルページ 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 ページを利用することができま
す。このインタフェース機能を使用して、次のような作業を行うこ
とができます。
o Web ブラウザからプログラムのメモリー管理機能をデバッグ す
る。
o プログラムをリモートでデバッグする。
o リーク情報をソート、フィルタ処理、要約する。
o 割り当て情報とヒープ統計情報をソート、フィルタ処理、要 約
し、 プログラムのどの部分でどのようにメモリーが使用されて
いるかを確認する。
o Sun WorkShop Memory Monitor のログファイルを表示する。
o 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」というメッセージが
表示されます。
対策
次の可能性があります。
o プログラムにデバッグライブラリをリンクして実行し て い な
い。
o デバッグレポートディレクトリを、プログラムがモニター ファ
イ ルに書き込みを行うディレクトリと同じディレクトリに設定
していない。
このディレクトリは、GC_MONDIR 環境変数で変更できます。
o モニターファイルを、レポートディレクトリ以外の場所に移 動
してしまった。
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)、 gcStopFix-
ingPrematureFrees(3)、
『Sun WorkShop Memory Monitor ユーザーズガイド』