日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
ANALYZE/OBJECT |
OpenVMS Alpha システムのオブジェクト・ファイルと, OpenVMS Integrity システムの ELF (Executable and Linkable Format) オブジェクト・ファイルの内容を分析し,エラーを検出します。 /OBJECT 修飾子は必須です。オブジェクト・ファイルについての一般的な情報は,『OpenVMS Linker Utility Manual』のリンカの説明を参照してください。イメージ・ファイルの内容を分析する場合は,ANALYZE/IMAGE コマンドを使用してください。
ANALYZE/OBJECT ファイル指定[,...]
ファイル指定[,...]
分析したいオブジェクト・ファイル,またはオブジェクト・モジュール・ライブラリ ( 省略時のファイル・タイプは .OBJ) を指定します。複数のファイル名を指定する場合は,ファイル名をコンマ (,) またはプラス記号 (+) で区切ります。ファイル指定でアスタリスク (*) およびパーセント記号 (%) ワイルドカード文字を使用することができます。
ANALYZE/OBJECT コマンドは,1 つまたは複数のファイルに含まれている, 1 つまたは複数のオブジェクト・モジュールの内容を記述します。また,部分的なエラー分析を行うこともできます。オブジェクト・モジュールのすべてのレコードが,その内容,形式,指定順序において,Integrity または Alpha のオブジェクト言語に準拠しているかどうか分析します。OpenVMS Integrity システムでは,オブジェクト・モジュール・ヘッダの形式を調べることにより ANALYZE/OBJECT コマンドは,Integrity と Alpha のオブジェクトを自動的に区別します。
ANALYZE/OBJECT コマンドは,コンパイラ,デバッガや,オペレーティング・システムのオブジェクト・モジュールを扱うその他のソフトウェアのプログラマ向けです。 ANALYZE/OBJECT コマンドは,オブジェクト・モジュールにより生成された ELF オブジェクト形式 (Integrity) またはオブジェクト言語レコード (Alpha) を, Linker ユーティリティが受け入れることができるかチェックし,ファイル中のエラーを検出します。また,オブジェクト・ファイルまたはオブジェクト・モジュール・ライブラリ中のレコードの説明を提供します。リンカ,および Alpha のオブジェクト言語についての詳細は,『OpenVMS Linker Utility Manual』を参照してください。 Integrity オブジェクト形式の情報は,今後のリリースで提供されます。
注意
Integrity のイメージとオブジェクトでは,Analyze ユーティリティは,分析対象のファイルがイメージ・ファイルなのかオブジェクト・ファイルなのかを判断します。 ELF オブジェクト・ファイル対して ANALYZE/IMAGGE コマンドを使用することもできますが,ELF イメージ・ファイルには ANALYZE/IMAGE を使用し,ELF オブジェクト・ファイルには ANALYZE/OJBECT を使用するようにしてください。OpenVMS Alpha バージョンの ANALYZE/OBJECT では,自プラットフォーム以外のすべてのオブジェクト (たとえば,Alpha 上での Integrity オブジェクト) を分析できるわけではありません。
ELF オブジェクトに対する ANALYZE/OBJECT の出力形式は変更される可能性があります。また,ELF オブジェクトを分析するときの省略時の動作は, Alpha のオブジェクトを分析するときの動作とは異なります。 ELF オブジェクトでは,主要な ELF テーブルの要約が表示されます。この情報を使用して,詳しく分析するセクションを選択することができます。エラーを見つけるには,すべてのセクションを選択して,イメージ全体を分析する必要があります。
Integrity プラットフォーム上で Integrity オブジェクトを分析する場合でも, ANALYZE/OBJECT は Alpha だけで有効な修飾子を受け付けますが,そのような修飾子は無視されます。
ANALYZE/OBJECT コマンドは,最初のレコードから最後のレコードまで,順番にオブジェクト・モジュールを分析します。各レコードのフィールドは,最初のフィールドから最後のフィールドまで,順番に分析されます。オブジェクト・モジュールの分析が終わったら,各種レコードの内容と形式と, OpenVMS Integrity または OpenVMS Alpha オブジェクト言語で記述される各種レコードの必須な内容と形式を比較します。分析出力に診断メッセージが含まれている場合は,こうして比較することが特に重要です。
ANALYZE/OBJECT は,オブジェクト・モジュールの以下の情報を表示します。
- モジュールのアーキテクチャと種別
- モジュール名
- モジュールのバージョン
- モジュール作成日と時刻
- 言語プロセッサの作成者
オブジェクト・モジュールのリンクは,オブジェクト・モジュールの分析とは異なり,オブジェクトの内容は解釈されません。その代わり,メタ情報の整合性だけがチェックされます。その結果,分析した時にエラーがなくても,リンクした時にエラーが発生する可能性はあります。特に Alpha オブジェクトに対しては,分析時には次の項目をチェックしません。
- TIR コマンドのデータ引数の形式が正しいかどうか。
- "Store Data" TIR コマンドが,有効なアドレス・リミットに格納しているか。
そのため,分析時にはエラーがなかったオブジェクト・モジュールも,リンク時にチェックする必要があります。
エラーが検出された場合は,最も重大なレベルの最初のエラーが返されます。たとえば警告(A) と 2 つのエラー(B および C) が検出された場合は,イメージ終了状態として最初のエラー(B) が返されます。イメージ終了状態は,イメージ終了時に DCL シンボル $STATUS に置かれます。
ANALYZE/OBJECT コマンドは,位置修飾子を使用します。位置修飾子とは,コマンド行で指定される位置により機能が異なる修飾子です。コマンド行ですべての入力ファイルより前に位置修飾子を指定すると,その修飾子はすべての入力ファイルに影響を与えます。たとえば次のコマンドは,ファイル A,B,および C のグローバル・シンボル・ディレクトリ・レコードを分析するように指定しています。
$ ANALYZE/OBJECT/GSD A,B,C
反対に,パラメータ・リスト中の 1 つのファイルに対して位置修飾子が指定された場合は,その修飾子はそのファイルにのみ影響を与えます。たとえば次のコマンドは,ファイル B( だけ ) のグローバル・シンボル・ディレクトリ・レコードを分析するよう指定しています。
$ ANALYZE/OBJECT A,B/GSD,C
Alpha のオブジェクトでは,一般に,オブジェクト・モジュールのすべてのレコードが分析されます。ただし,/DBG,/EOM,/GSD,/LNK,/MHD,/TBT,または /TIR 修飾子が指定された場合は,修飾子により識別されるレコード・タイプのみが分析されます。その他のレコード・タイプはすべて無視されます。
省略時の設定では ( 適切な修飾子を使用して明示的に分析に制限を指定しない限り ),すべてのレコード・タイプが分析されます。
注意
Alpha のオブジェクトでは,どのような修飾子を指定しても,モジュールの終端 (EOM) レコードとモジュール・ヘッダ (MHD)・レコードは分析されます。Integrity オブジェクトでは,どのような修飾子を指定しても, ELF ヘッダ,セクション・ヘッダ・テーブル,ノート・セクションが常に分析されます。
/DISASSEMBLE (Integrity のみ)
位置修飾子種別が SHT_PROGBITS で,実行可能フラグ (セクション・ヘッダ内の SHDR$M_SHF_EXECINSTR) が設定されているすべてのセクションを表示します。セクションデータは機械語命令として表示され,ラベルや分岐ターゲットなどはシンボル化されます。シンボル化には,シンボル・テーブル中のすべてのローカル・シンボルとグローバル・シンボルが使用されます。出力は,コンパイラが生成する機械語のリストと同様になります。
注意
この修飾子は,オブジェクトに対してだけ指定可能です。 Integrity イメージに含まれているシンボルは,グローバル・シンボルだけです。さらに,この修飾子で生成される出力は, ANALYZE/OBJECT/SECTIONS=CODE の出力とは異なります。後者でも同じセクションの機械語が出力されますが,シンボル化は行われません。
/DBG (Alpha のみ)
位置修飾子すべてのデバッガ情報レコードを分析することを指定します。パラメータ・リスト中のすべてのファイルのデバッガ情報を分析したい場合は,/OBJECT 修飾子の直後に /DBG 修飾子を指定します。選択的にデバッガ情報を分析したい場合は,デバッガ情報を分析したいファイルを指定した直後に /DBG 修飾子を指定します。
/EOM (Alpha のみ)
位置修飾子MHD レコード,EOM レコード,およびコマンドで明示的に指定したレコードだけを分析することを指定します。パラメータ・リスト中のすべてのファイルにこれを適用させたい場合は,/OBJECT 修飾子の直後に /EOM 修飾子を指定します。
/EOM 修飾子を選択的に指定したい場合は,適用させたいファイルを指定した直後に /EOM 修飾子を指定します。
注意
モジュールの終端レコードは,EOM または EOMW レコードになることができます。詳細は『OpenVMS Linker Utility Manual』を参照してください。
/FLAGVALUES=(キーワード[,...]) (Integrity のみ)
ELF モジュール内のいくつかのフィールドは,ビット・フラグになっています。可能な場合,これらのビット・フラグ値が調べられ,個別に表示されます。省略時には,1 (オン) が設定されているフラグ値だけが表示されます。キーワードは以下のとおりです。
キーワード 説明 ON 値が 1 のすべてのフラグが表示されます。 OFF 値が 0 のすべてのフラグが表示されます。 ALL すべてのフラグ値が表示されます。これに対しキーワード ON と OFF は,各フラグ・ビットの値を示します。
/GSD (Alpha のみ)
位置修飾子すべてのグローバル・シンボル・ディレクトリ (GSD)・レコードを分析することを指定します。
パラメータ・リスト中の各ファイルの GSD レコードを分析したい場合は, /OBJECT 修飾子の直後に /GSD 修飾子を指定します。
選択的に GSD レコードを分析したい場合は,GSD レコードを分析したいファイルを指定した直後に /GSD 修飾子を指定します。
/INCLUDE [=(モジュール[,...])]
指定したファイルがオブジェクト・モジュール・ライブラリの場合は,この修飾子を使用して,分析のためライブラリ内の選択したオブジェクト・モジュールをリストします。リストを省略したりアスタリスク (*) を指定したりすると,すべてのモジュールが分析されます。モジュールを 1 つだけ指定する場合は,括弧を省略できます。/INTERACTIVE
/NOINTERACTIVE (省略時の設定)
分析を会話型で行うかどうかを指定します。会話型モードでは,各アイテムを分析するたびに画面に結果が表示され,継続するかどうか質問が表示されます。/LNK (Alpha のみ)
位置修飾子すべてのリンク・オプション指定(LNK)レコードを分析することを指定します。
パラメータ・リスト中の各ファイルの LNK レコードを分析したい場合は, /OBJECT 修飾子の直後に /LNK 修飾子を指定します。
選択的に LNK レコードを分析したい場合は,LNK レコードを分析したいファイルを指定した直後に /LNK 修飾子を指定します。
/MHD (Alpha のみ)
位置修飾子MHD レコード,EOM レコード,およびコマンドで明示的に指定したレコードだけを分析することを指定します。パラメータ・リスト中のすべてのファイルにこれを適用させたい場合は,/OBJECT 修飾子の直後に /MHD 修飾子を指定します。
/MHD 修飾子を選択的に指定したい場合は,適用させたいファイルを指定した直後に /MHD 修飾子を指定します。
/OUTPUT [=ファイル指定]
オブジェクトの分析を格納する出力ファイルを指定します。省略時の設定では SYS$OUTPUT 装置に出力されます。ファイル・タイプを指定しファイル名を省略した場合は,省略時の設定によりファイル名は ANALYZE になります。省略時のファイル・タイプは .ANL です。アスタリスク (*) やパーセント記号 (%) ワイルドカード文字を,ファイル指定に使用することはできません。
/PAGE_BREAK=キーワード (Integrity のみ)
レポート・ファイルにページ・ブレーク (改ページ) を入れるかどうかと,入れる位置を指定します。この修飾子は,/OUTPUT を使用してレポート・ファイルを出力する場合にだけ有用です。 /INTERACTIVE を指定して会話型の分析を行う場合には無視されます。キーワードは以下のとおりです。
キーワード 説明 NONE ページ・ブレークなしのレポートを作成します。 PRINTABLE_REPORT ページ・ブレークを含む印刷可能なレポートをリスティング・ファイルとして作成します。ページごとの行数は,プリンタ・ページの省略時の行数になります。この動作は,修飾子を指定しない場合の ANALYZE_OBJECT の省略時の動作です。 SEPARATE_INFORMATION セクション情報ごとにページ・ブレークを挿入します。 /SECTIONS [=(キーワード[,...])] (Integrity のみ)
表示対象の個々のプログラム・セクションまたはセクション種別を選択します。
注意
この修飾子とキーワードは,表示するセクションのリストに含めるものを指定することしかできません。この修飾子を否定の目的で使用したり,除外リストを指定するのに使用することはできません。値を指定しない場合の省略時のキーワードは HEADERS です。
キーワードは以下のとおりです。
キーワード 説明 ALL モジュール内の全セクションの詳細な分析結果を表示する。このキーワードを指定すると,大量の出力が生成されることがある点に注意すること。 CODE 種別が SHT_PROGBITS で,実行可能フラグ (セクション・ヘッダ内の SHDR$M_SHF_EXECINSTR) が設定されているセクションをすべて表示する。セクション・データは,機械語命令として表示される。 DEBUG
[=(接尾辞[,...])]デバッグ情報を含むセクションを分析して表示する。 さらに,デバッグ・セクション名接尾辞のリストを使用して, DEBUG 情報を選択的に出力することができる。デバッグ・セクション名は,要約テーブル中に ".debug_suffix" として表示される。接尾辞は以下のものが指定できる。
- ABBREV---DEBUG の短縮形の出力
- ARANGES---DEBUG のアドレス・ルックアップ・テーブルの出力
- FRAME---アンワインド用の DEBUG フレーム・ディスクリプタの出力
- INFO---DEBUG シンボルの出力
- LINE---DEBUG ソース・ライン情報の出力
- PUBNAMES---DEBUG 名前ルックアップ・テーブルの出力
- PUBTYPES---DEBUG タイプ・ルックアップ・テーブルの出力
EXTENSIONS 種別が SHT_IA64_EXT のセクションを分析して表示する。データは 16 進形式で表示される。 GROUP 種別が SHT_GROUP のセクションを分析して表示する。この種別のセクションは,そのグループに属するセクションのセクション番号のリストからなる。 HEADERS 省略時のキーワード。 ELF ヘッダおよびセクション・ヘッダの詳細を表示する。 LINKAGES 種別が SHT_VMS_LINKAGES のセクションを分析して表示する。データはリンケージ・ディスクリプタのリストとして表示される。 NOBITS 種別が SHT_NOBITS のセクションを分析して表示する。この種別のセクションに関連付けられたモジュール・データはない。 NOTE 種別が SHT_NOTE のセクションを分析して表示する。このセクション・データは,フォーマットされた OpenVMS ノート・エントリのリストとして表示される。 NULL 種別が PT_NULL のセクションをすべて表示する。この種別のセグメントについては,データは表示されない。 NUMBERS= (番号 [,...]) 以下のように個別のセクションを表示する。
- 選択されたセクションは,ヘッダと内容が詳しく表示される。セクション番号がモジュール内に存在しない場合は,情報メッセージが表示される。
- 1 つ以上の番号を指定することができる。
- セクション番号は,10 進,8 進 (%O 接頭辞を使用),または 16 進 (%X 接頭辞を使用) で指定可能。
PROGBITS アンワインド・セクション以外の,種別が SHT_PROGBITS のセクションをすべて表示する。 種別が SHT_PROGBITS のセクションに対するフォーマット方法は,セクション・ヘッダの EXECINSTR フラグ (SHDR$M_SHF_EXECINSTR) によって変わる。このビットが立っている場合は,セクション・データは機械語命令として表示される。ビットが立っていない場合は,16 進データとして表示される。
アンワインド・セクションは,/SECTIONS=UNWIND を指定した場合に表示される。
RELOCATIONS 種別が SHT_RELA のセクションを分析して表示する。このセクションのデータは,再配置エントリのテーブルとして表示される。 STRTAB 種別が SHT_STRTAB のテーブルを分析して表示する。このセクションのデータは,文字列テーブルとして表示される。 SYMTAB 種別が SHT_SYMTAB のセクションを表示する。このセクション・データは,シンボル・テーブルとして表示される。 TRACE
[=(接尾辞[,...])]トレースバック情報を含むセクションを分析して表示する。 さらに,トレース・セクション名の接尾辞のリストを使用して, TRACE 情報を選択的に出力できる。トレース・セクション名は,要約テーブル中に ".trace_suffix" として表示される。接尾辞は以下のものが指定できる。さらに,デバッグ・セクションとトレースバック・セクションで共通のセクション ".debug_line" が 1 つあるため,以下のように接尾辞 "line" も指定できる。
- ABBREV---TRACE の短縮形の出力
- ARANGES---TRACE のアドレス・ルックアップ・テーブルの出力
- INFO---TRACE シンボルの出力
- LINE---TRACE ソース・ライン情報の出力
UNWIND 種別が SHT_IA64_UNWIND のセクションを分析して表示する。この種別のセクションには,種別が SHT_PROGBITS のアンワインド情報セクションが関連付けられている。関連付けられたセクションも表示される。
/SELECT=(キーワード[,...])
特定のオブジェクト・ファイルの情報を収集し,選択したキーワード項目を指定された順序で表示します。
注意
/SELECT 修飾子はオブジェクト・ファイルにもイメージ・ファイルにも使用でき,同じキーワードを使って選択することができます。しかし,リンクの日付や時刻など,いくつかの情報はオブジェクトには存在しません。このため,いくつかのキーワードについては,Analyze ユーティリティは "Unknown" を戻します。次の表には,キーワード (オブジェクト・ファイルで有用なもの) と戻り値だけを挙げます。
目次 索引
|