前へ | 次へ | 目次 | 索引 |
OpenVMS デバッガを起動して,イメージの実行に失敗した時に作成されたプロセス・ダンプ・ファイルを分析します。ダンプ・ファイルを作成する場合は, RUN または SET PROCESS コマンドに /DUMP 修飾子を指定します。Alpha システムでは,DUMP/PROCESS コマンドを使用することによって,プロセスを強制的にダンプすることもできます。
ANALYZE/PROCESS_DUMP コマンドは,Alpha または VAX のいずれかのイメージのプロセス・ダンプ・ファイルを表示するために OpenVMS デバッガを起動します。 (DEBUG コマンドに関する情報を含め ) デバッガについての詳細は,『OpenVMS デバッガ説明書』を参照してください。
ダンプ・ファイルに対して読み込み(R)アクセス権が必要です。
ANALYZE/PROCESS_DUMP ダンプ・ファイル
ダンプ・ファイル
デバッガで分析するダンプ・ファイルを指定します。
ANALYZE/PROCESS_DUMP コマンドは,実行時に失敗したイメージのダンプ・ファイルを調べます。 OpenVMS Debugger が自動的に起動されます。プロセスのダンプ・ファイルを作成するためには,イメージを起動する時に RUN コマンドに /DUMP 修飾子を指定するか,またはイメージを起動する前に SET PROCESS/DUMP コマンドを指定する必要があります。Alpha システムでは,DUMP/PROCESS コマンドを使用できます。この項は,バージョン 7.2 またはそれ以前の Alpha システムにも適用されます。
この他に,P1 空間内の制御領域の構成,ダンプ時に実行中のプロセス,および ANALYZE/PROCESS_DUMP コマンドを実行するプロセスに関しての制限事項があります。各プロセスのためのユーザ・スタックの基底位置は,割り当てられた空間のサイズにより異なり,プロセスに互換性があるかどうかを決めます。ダンプを分析するために割り当てられた空間のサイズは,ダンプを作成したプロセスに割り当てられた空間のサイズより小さくなければなりません。オペレーティング・システムのバージョンは同じでも,異なるシステムでダンプを分析する場合は,割り当てられた空間のサイズに影響を与える 1 つまたは複数のシステム・パラメータを変更して,割り当てられた空間のサイズを小さくすることができます。
システム・パラメータ IMGIOCNT は,動的に変更することができます。その他のシステム・パラメータを適用させるためには,再ブートする必要があります。
Alpha システムでは,OpenVMS Debugger でダンプしたイメージを分析できないことがあります。たとえばダンプしたイメージの PC が無効なアドレスに設定された場合,またはダンプしたイメージのスタックが不良プロセス記述子により破損した場合は, Delta Debugger (DELTA) を使用してダンプを分析しなければなりません。デバッガとして DELTA を使用するには,Install ユーティリティを起動してイメージ SYS$LIBRARY:DELTA をインストールする必要があります。 Install ユーティリティについての詳細は,『OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』を参照してください。
この項は,バージョン 7.3 またはそれ以降の OpenVMS Alpha システムに適用されます。
これで,ダンプが生成されたシステム以外のシステム上でダンプ・ファイルを分析できるようになります。ただし,ベース・イメージのリンクの日付と時刻が等しくない場合には,ダンプが生成されたシステムからファイル SYS$BASE_IMAGE.EXE をコピーし,これを論理名 SDA$READ_DIR でポイントする必要があります。次に例を示します。
$ COPY other_node::SYS$LOADABLE_IMAGES:SYS$BASE_IMAGE.EXE my_disk$:[my_dir] $ DEFINE/USER SDA$READ_DIR my_disk$:[my_dir],SYS$SYSROOT:[SYS$LDR],SYS$SYSROOT:[SYSLIB] $ ANALYZE/PROCESS_DUMP mycrash.dmp
ダンプが生成されたシステム以外のシステムで,スレッド化されたプロセス・ダンプを分析する場合には,ダンプが生成されたシステム上の PTHREAD$RTL と PTHREAD$DBGSHR (DECthread デバッグ・アシスタント) もコピーし,ポイントしなければならないことがあります。次に例を示します。
$ COPY other_node::SYS$LOADABLE_IMAGES:SYS$BASE_IMAGE.EXE my_disk$:[my_dir] $ COPY other_node::SYS$SHARE:PTHREAD$RTL.EXE my_disk$:[my_dir] $ COPY other_node::SYS$SHARE:PTHREAD$DBGSHR.EXE my_disk$:[my_dir] $ DEFINE/USER SDA$READ_DIR my_disk$:[my_dir],SYS$SYSROOT:[SYS$LDR],SYS$SYSROOT:[SYSLIB] $ DEFINE/USER PTHREAD$RTL my_disk$:[my_dir]PTHREAD$RTL.EXE $ DEFINE/USER PTHREAD$DBGSHR my_disk$:[my_dir]PTHREAD$DBGSHR.EXE $ ANALYZE/PROCESS_DUMP mycrash.dmp
デバッガでプロセス・ダンプを分析できない場合には, System Dump Analyzer (SDA) ユーティリティを使用してください。詳細は,オンライン・へルプの ANALYZE /CRASH コマンドを参照してください。次に例を示します。
$ ANALYZE/CRASH mycrash.dmp OpenVMS (TM) Alpha system dump analyzer ...analyzing a compressed process dump... Dump taken on 19-OCT-1999 12:03:40.95 SDA> .. . .
/FULL
VAX および Alpha システム上で,デバッガ・コマンド SHOW IMAGE, SHOW THREAD/ALL,および SHOW CALL によって表示される情報を表示します。/IMAGE=ダンプ・ファイル
VAX システム上で,分析に使用するプロセス・コンテキストを設定するために起動するイメージを指定します。 /NOIMAGE 修飾子を使用すると,分析には DELTA デバッガが使用されます。省略時の設定では,シンボルは,ダンプの時点で実行されていたイメージと同じ名前のイメージから取得されます。
/IMAGE_PATH[=ディレクトリ指定] ダンプ・ファイル
/NOIMAGE_PATH
Alpha システム上で,デバッガがデバッガ・シンボル・テーブル (DST) ファイルを探すために使用する検索パスを指定します。以前のデバッガと同様に,デバッガは保存済みのプロセス・イメージ・リストからイメージ・リストを構築します。イメージを設定すると ( メイン・イメージが自動的に設定されます ),デバッガはそのイメージをオープンして DST ファイルを探そうと試みます。/IMAGE_PATH= ディレクトリ指定 修飾子を指定すると,デバッガは指定されたディレクトリの中で DST ファイルを探します。デバッガはまず ディレクトリ指定 をディレクトリ検索リストの論理名として変換しようと試みます。これに失敗すると,デバッガは ディレクトリ指定 をディレクトリ指定として解釈し,そのディレクトリの中で対応する .DSF または .EXE ファイルを探します。 .DSF ファイルの方が.EXE ファイルよりも優先されます。 .DSF または .EXE ファイルの名前はイメージと一致していなければなりません。
/IMAGE_PATH= ディレクトリ指定 修飾子を指定しなかった場合,デバッガはまずダンプ・ファイルを含んでいるディレクトリの中で DST ファイルを探します。これに失敗すると,デバッガはディレクトリ SYS$SHARE を,次にディレクトリ SYS$MESSAGE を探します。デバッガがイメージの DST ファイルを見つけられなかった場合,デバッガが利用できるシンボリック情報はグローバルおよびユニバーサル・シンボル名に限定されます。
バージョン 7.3 とそれ以降のデバッガは,ダンプ・ファイルのイメージ指定と DST ファイルのリンクの日付と時刻が一致しているかどうかをチェックし,一致していなければ警告を発します。
ダンプ・ファイル ・パラメータは,分析するプロセス・ダンプ・ファイルの名前です。プロセス・ダンプ・ファイルのファイル・タイプは .DMP でなければならず, DST ファイル・タイプは .DSF または.EXE でなければならないことに注意してください。
制限事項
論理名を使用してイメージの検索をリダイレクトしたり, /IMAGE_PATH 修飾子を同時に使用することはできません。 /IMAGE_PATH 修飾子を使用する場合は,元の場所にないすべてのイメージが,このパスで検索できるところに置かれている必要があります。個別のイメージ論理名 ("DEFINE SH SYS$LOGIN:SH.EXE" の中の "SH" など ) は処理されません。また,コンマで区切られたディレクトリ・リストは処理されないので, /IMAGE_PATH 修飾子にディレクトリ検索パスを直接入力することはできません。ただし,ディレクトリ検索パスに変換される論理名を指定することはできます。
/INTERACTIVE
/NOINTERACTIVE (省略時の設定)
VAX システムでは,ターミナルの画面いっぱいに表示されたら,情報の表示を一時停止することを指定します。次の情報を表示したい場合は,RETURN キーを押します。省略時の設定では,情報は一時停止せずに表示されます。/MISCELLANEOUS
VAX システムでは,ダンプ時のプロセス情報とレジスタを表示します。表示されるプロセス情報についての詳細は,システム・サービス $GETJPI を参照してください。/RELOCATION
VAX システムでは,ダンプ中に格納されているデータ構造が P0 空間にマップされときのアドレスを表示します ( このようなデータ構造の例としては,スタックがあります )。デバッガが P1 空間のこれらのデータ構造を使用できるように,ダンプ中のデータ構造は P0 空間にマップされなければなりません。
#1 |
---|
$ ANALYZE/PROCESS/FULL ZIPLIST R0 = 00018292 R1 = 8013DE20 R2 = 7FFE6A40 R3 = 7FFE6A98 R4 = 8013DE20 R5 = 00000000 R6 = 7FFE7B9A R7 = 0000F000 R8 = 00000000 R9 = 00000000 R10 = 00000000 R11 = 00000000 SP = 7FFAEF44 AP = 7FFAEF48 FP = 7FFAEF84 FREE_P0_VA 00001600 FREE_P1_VA 7FFAC600 Active ASTs 00 Enabled ASTs 0F Current Privileges FFFFFF80 1010C100 Event Flags 00000000 E0000000 Buffered I/O count/limit 6/6 Direct I/O count/limit 6/6 File count/limit 27/30 Process count/limit 0/0 Timer queue count/limit 10/10 AST count/limit 6/6 Enqueue count/limit 30/30 Buffered I/O total 7 Direct I/O total 18 Link Date 27-DEC-2001 15:02:00.48 Patch Date 17-NOV-2001 00:01:53.71 ECO Level 0030008C 00540040 00000000 34303230 Kernel stack 00000000 pages at 00000000 moved to 00000000 Exec stack 00000000 pages at 00000000 moved to 00000000 Vector page 00000001 page at 7FFEFE00 moved to 00001600 PIO (RMS) area 00000005 pages at 7FFE1200 moved to 00001800 Image activator context 00000001 page at 7FFE3400 moved to 00002200 User writable context 0000000A pages at 7FFE1C00 moved to 00002400 Creating a subprocess VAX DEBUG Version 5.4 DBG> |
この例は,VAX システムで ANALYZE/PROCESS コマンドに /FILL 修飾子を指定した場合の出力を示しています。指定したファイル ZIPLIST には,回復不可能なエラーが検出されたプロセスのダンプが含まれています。 DBG> プロンプトは,デバッガがコマンドを受け入れる用意ができていることを示します。
#2 |
---|
$ ANALYZE/PROCESS/FULL WECRASH.DMP OpenVMS Alpha Debug64 Version X7.3-010 %SYSTEM-F-IMGDMP, dynamic image dump signal at PC=001D0F8CB280099C, PS=001D0028 break on unhandled exception preceding WECRASH\th_run\%LINE 26412 in THREAD 8 %DEBUG-W-UNAOPNSRC, unable to open source file DSKD$:[IMGDMP]WECRASH.C;11 -RMS-F-DEV, error in device name or inappropriate device type for operation 26412: Source line not available image name set base address end address CMA$TIS_SHR no 000000007B8CA000 000000007B8D7FFF CODE0 FFFFFFFF80500000 FFFFFFFF805033FF DATA1 000000007B8CA000 000000007B8CB3FF DATA2 000000007B8CC000 000000007B8D13FF DATA3 000000007B8D2000 000000007B8D21FF DATA4 000000007B8D4000 000000007B8D41FF DATA5 000000007B8D6000 000000007B8D63FF DECC$SHR no 000000007BE7A000 000000007BF0DFFF CODE0 FFFFFFFF8055C000 FFFFFFFF806C9DFF DATA1 000000007BE7A000 000000007BEACFFF DATA2 000000007BEBA000 000000007BEC2DFF DATA3 000000007BECA000 000000007BED77FF DATA4 000000007BEDA000 000000007BEDA9FF DATA5 000000007BEEA000 000000007BEEA1FF DATA6 000000007BEFA000 000000007BEFE7FF DATA7 000000007BF0A000 000000007BF0D1FF DPML$SHR no 000000007BB92000 000000007BBD1FFF CODE0 FFFFFFFF80504000 FFFFFFFF8055B5FF DATA1 000000007BB92000 000000007BBAC1FF DATA2 000000007BBAE000 000000007BBBDBFF DATA3 000000007BBBE000 000000007BBBE1FF DATA4 000000007BBC0000 000000007BBCC9FF DATA5 000000007BBCE000 000000007BBCE3FF DATA6 000000007BBD0000 000000007BBD07FF LIBOTS no 000000007B5AA000 000000007B5B1FFF DATA1 000000007B5AA000 000000007B5AC5FF DATA2 000000007B5AE000 000000007B5AFBFF DATA3 000000007B5B0000 000000007B5B01FF LIBRTL no 000000007B558000 000000007B5A9FFF CODE0 FFFFFFFF8041C000 FFFFFFFF804BD7FF DATA1 000000007B558000 000000007B5669FF DATA2 000000007B568000 000000007B5697FF DATA3 000000007B578000 000000007B5845FF DATA4 000000007B588000 000000007B5881FF DATA5 000000007B598000 000000007B59A5FF DATA6 000000007B5A8000 000000007B5A99FF PTHREAD$RTL no 000000007BBD2000 000000007BC27FFF DATA0 000000007BBD2000 000000007BBDA1FF DATA1 000000007BBDC000 000000007BBDF3FF DATA2 000000007BBE0000 000000007BBE2FFF DATA3 000000007BBE4000 000000007BC1E1FF DATA4 000000007BC20000 000000007BC20BFF DATA5 000000007BC22000 000000007BC247FF DATA6 000000007BC26000 000000007BC275FF *WECRASH yes 0000000000010000 00000000000403FF total images: 7 Thread Name State Substate Policy Pri ------ ------------------------- --------------- ----------- ------------ --- 1 default thread blocked join 2 SCHED_OTHER 11 2 thread 0: counting ready VP 0 SCHED_OTHER 11 3 thread 1: dumping ready VP 0 SCHED_OTHER 11 4 thread 2 blocked delay SCHED_OTHER 11 5 thread 3 blocked delay SCHED_OTHER 11 6 thread 4 blocked delay SCHED_OTHER 11 7 thread 5: counting ready VP 0 SCHED_OTHER 11 8 thread 6: dumping running SCHED_OTHER 11 9 thread 7 blocked delay SCHED_OTHER 11 10 thread 8 blocked delay SCHED_OTHER 11 11 thread 9 blocked delay SCHED_OTHER 11 module name routine name line rel PC abs PC *WECRASH th_run 26411 0000000000000244 0000000000030244 SHARE$PTHREAD$RTL_DATA0 000000000001F15C 000000007BC0315C SHARE$PTHREAD$RTL_DATA0 000000000000F494 000000007BBF3494 0000000000000000 0000000000000000 ----- the above looks like a null frame in the same scope as the frame below SHARE$PTHREAD$RTL_DATA0 ? ? DBG> DBG> set source/latest sys$disk:[] DBG> examine/source .pc-4 module WECRASH 26411: lib$signal(SS$_IMGDMP); DBG> |
この例は,Alpha システムで /FULL 修飾子の使用による,マルチスレッド・プロセス・ダンプ上の ANALYZE/PROCESS コマンンドの出力を示しています。
Analyze/RMS_File ユーティリティを起動します。このユーティリティを使用すると, OpenVMS RMS ファイルの内部構造を検査し分析することができます。 /RMS_FILE 修飾子は必須です。Analyze/RMS_File ユーティリティについての詳細は,『OpenVMS Record Management Utilities Reference Manual』あるいはオンライン・ヘルプを参照してください。
ANALYZE/RMS_FILE ファイル指定[,...]
システム・ダンプ・アナライザ・ユーティリティを起動します。このユーティリティは,実行中のシステムを分析します。 /SYSTEM 修飾子は必須です。Alpha システムにおけるシステム・ダンプ・アナライザ・ユーティリティについての詳細は,『OpenVMS Alpha System Analysis Tools Manual』あるいはオンライン・ヘルプを参照してください。 VAX システムにおけるシステム・ダンプ・アナライザ・ユーティリティについての詳細は,『OpenVMS VAX System Dump Analyzer Utility Manual』あるいはオンライン・ヘルプを参照してください。
ANALYZE/SYSTEM
前へ | 次へ | 目次 | 索引 |