日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
EXAMINE |
プログラム変数の現在の値を表示します。より通常は,アドレス式で示される要素の値を表示します。
EXAMINE [address-expression[:address-expression] [,...]]
address-expression
値を調べる要素を指定します。高級言語を使用する場合,これは通常,変数の名前になり,変数を一意に指定するためのパス名を含めることができます。より通常は,アドレス式はメモリ・アドレスまたはレジスタにすることもでき,1 つまたは複数の演算子,オペランドまたは区切り文字だけでなく,数字 ( オフセット ) とシンボルで構成することができます。レジスタのデバッガ・シンボルについてとアドレス式の中で使用できる演算子についての詳しい説明は,ヘルプ・トピックの Built_in_Symbols または Address_Expressions を参照してください。集合体 変数 ( 配列またはレコード構造体などの複合データ構造体 ) の名前を指定すると,デバッガはすべての要素の値を表示します。配列の場合,各配列要素の添字 ( インデックス ) と値が示されます。レコードの場合,各レコードの構成要素の名前と値が示されます。
個々の配列要素,配列断面またはレコードの構成要素を指定するには,現在の言語の構文に従います。
要素の範囲を指定する場合,その範囲にある最初の要素を示すアドレス式の値は同じ範囲にある最後の要素を示すアドレス式の値よりも小さくなければなりません。デバッガは最初のアドレス式で指定される値,そのアドレス式の論理的後続データ,その次の論理的後続データという順に,最後のアドレス式で指定される要素までを表示します。コンマで範囲と範囲を区切ることにより,複数の範囲からなるリストを指定できます。
ベクタ・レジスタとベクタ命令に特有の情報については,/TMASK,/FMASK, /VMR および /OPERANDS の修飾子を参照してください。
/ASCIC
/AC
値を調べる個々の要素を,1 バイトのカウント・フィールドの後ろに続く,このカウント・フィールドにより長さを指定された ASCII 文字列と解釈します。/ASCID
/AD
値を調べる個々の要素を ASCII 文字列を指す文字列ディスクリプタのアドレスと解釈します。ディスクリプタの CLASS フィールドと DTYPE フィールドは表示されませんが,LENGTH フィールドと POINTER フィールドが ASCII 文字列の文字長とアドレスを与えます。そのあと文字列が表示されます。/ASCII:n
値を調べる個々の要素を長さ n バイト (n 文字 ) の ASCII 文字列と解釈し,表示します。 n を省略すると,デバッガはアドレス式の型をもとに長さを求めようとします。/ASCIW
/AW
値を調べる個々の要素を,2 バイトのカウント・フィールドの後ろに続く,このカウント・フィールドにより長さを指定された ASCII 文字列と解釈します。それから文字列が表示されます。/ASCIZ
/AZ
値を調べる個々の値を最後部に 0 のある ASCII 文字列と解釈します。最後部の 1 バイト分の 0 は文字列の終了を示します。それから文字列が表示されます。/BINARY
値を調べる個々の値を 2 進整数として表示します。/BYTE
値を調べる個々の値をバイト整数型 (1 バイト長 ) で表示します。/CONDITION_VALUE
値を調べる個々の値を状態値の戻り状態と解釈し,その戻り状態に対応するメッセージを表示します。/D_FLOAT
値を調べる個々の値を D 浮動小数点型 (8 バイト長) で表示します。/DATE_TIME
値を調べる個々の値を日付と時刻の内部表現を含むクォドワード整数 (8 バイト長 ) と解釈します。値は dd-mmm-yyyy hh:mm:ss.cc の形式で表示します。/DECIMAL
値を調べる個々の値を 10 進整数として表示します。/DEFAULT
値を調べる個々の値を省略時の基数で表示します。この修飾子は /DEFA と短縮できます。
/DEFINITIONS=n
(Alpha のみ,最適化コードがサポートされた場合は Integrity) コードが最適化されると,スプリット・ライフタイム変数用に n 定義ポイントを表示します。定義ポイントは,変数が値を受け取る位置です。省略時の設定では,最高 5 つまでの定義ポイントが表示されます。( 明示的または省略時の設定で ) 指定した数より多い定義ポイントが使用可能な場合は,指定した数以上の定義ポイントも報告されます。スプリット・ライフタイム変数についての詳しい説明は,『HP OpenVMS デバッガ説明書』を参照してください。この修飾子は /DEFI と短縮できます。
/EXTENDED_FLOAT
/X_FLOAT
(Alpha および Integrity のみ) 値を調べる個々の値を IEEE の X 浮動小数点型 (16 バイト長 ) で表示します。/FLOAT
Alpha では,値を調べる個々の値を IEEE T 浮動小数点型 ( 倍精度,8 バイト長 ) で表示します。/FPCR
(Alpha のみ ) 値を調べる個々の値を FPCR ( 浮動小数点制御レジスタ ) 形式で表示します。/G_FLOAT
VAX システムでは,値を調べる個々の値を G 浮動小数点型 (8 バイト長 ) で表示します。/HEXADECIMAL
値を調べる個々の値を 16 進整数で表示します。/INSTRUCTION
値を調べる個々の値をアセンブリ言語命令 ( 命令の長さは命令オペランドの数とアドレッシング・モードの種類によって変化 ) として表示します。/OPERANDS 修飾子も参照してください。画面モードでは,EXAMINE/INSTRUCTION コマンドの出力は,現在機械語命令ディスプレイがあればそこに送られます。出力表示や DO 表示には送られません。機械語命令ディスプレイでの矢印は値を調べる命令を指します。
Alpha では,EXAMINE/INSTRUCTION procedure-name コマンドは指定されたルーチン,エントリ・ポイントまたは Ada パッケージのコード・アドレスにある最初の命令を表示します。
/LINE (省略時の設定)
/NOLINE
プログラム記憶位置を行番号 (%LINE x) で表示するか, routine-name + byte-offset として表示するかを制御します。省略時の設定 (/LINE) では,デバッガは行番号でプログラム記憶位置をシンボル化します。/LONG_FLOAT
/S_FLOAT
(Alpha および Integrity のみ) 値を調べる個々の値を IEEE S 浮動小数点型 ( 単一精度,4 バイト長 ) で表示します。/LONG_LONG_FLOAT
/T_FLOAT
(Alpha および Integrity のみ) 値を調べる個々の値を IEEE T 浮動小数点型 ( 倍精度,8 バイト長 ) で表示します。/LONGWORD
値を調べる個々の値をロングワード整数型 (4 バイト長 ) で表示します。これがコンパイラ生成型を持たないプログラム記憶位置の場合の省略時の型です。/OCTAL
値を調べる個々の値を 8 進整数で表示します。/OCTAWORD
個々の値をオクタワード整数型 (16 バイト長 ) で表示します。/PACKED:n
値を調べるそれぞれの値をパック 10 進数と解釈します。 n の値は 10 進数の桁数です。 1 つの桁は 1 ニブル (4 ビット ) を占めます。/PS
(Alpha のみ) 値を調べる個々の値を PS ( プロセッサ・ステータス・レジスタ ) 形式で表示します。/PSR
(Integrity のみ) 値を調べる個々の値を PSR (プロセッサ・ステータス・レジスタ) 形式で表示します。/QUADWORD
値を調べる個々の値をクォドワード整数型 (8 バイト長 ) で表示します。/S_FLOAT
(Alpha のみ ) 値を調べる個々の値を IEEE S 浮動小数点型 ( 単一精度,4 バイト長 ) で表示します。/SFPCR
Alpha では,値を調べる個々の値を SFPCR ( ソフトウェア浮動小数点制御レジスタ ) 形式で表示します。/SOURCE
注意
この修飾子は,デバッガへの HP DECwindows Motif for OpenVMS ユーザ・インタフェースでは使用できません。
値を調べる個々の値の記憶位置に対応するソース行を表示します。表示する値は機械語コード命令に対応していなければならず,したがって行番号,ラベル,ルーチン名または命令のメモリ・アドレスでなければなりません。表示する値はデータに対応する変数名やその他のアドレス式にすることはできません。
画面モードでは,EXAMINE/SOURCE コマンドの出力は,現在ソース表示があればそこに出力されます。出力表示や DO 表示には出力されません。ソース表示での矢印は指定された最後の要素 ( または要素のリストで指定した最後の要素 ) に対応するソース行を指します。
Alpha では, EXAMINE/SOURCE procedure-name コマンドは指定されたルーチン,エントリ・ポイントまたは Ada パッケージのコード・アドレスにソース・コードを表示します。
/SYMBOLIC (省略時の設定)
/NOSYMBOLIC
シンボル化を行うかどうかを制御します。省略時の設定 (/SYMBOLIC) では,デバッガはできればすべてのアドレスをシンボル化します。つまり,数値アドレスをシンボル表現に変換します。 /NOSYMBOLIC を指定すると,デバッガは絶対アドレスとして指定された要素のシンボル化を行わなくなります。要素を変数名として指定すると,シンボル化は行われます。/NOSYMBOLIC 修飾子は,( シンボリック名が数値アドレスに対して存在していても ) シンボリック名ではなく,数値アドレスを表示した場合に役立ちます。 /NOSYM BOLIC を使用すると,デバッガは数字を名前に変換する必要がないため,コマンド処理の速度が上がる可能性があります。/TASK
タスキング ( マルチスレッド ) プログラムの場合に指定できます。値を調べる個々の値をタスク (スレッド) ・オブジェクトとして解釈し,そのタスク・オブジェクトのタスク値 ( 名前またはタスク ID) を表示します。タスク・オブジェクトの値を調べるときは,プログラミング言語に組み込みタスキング・サービスが備っていない場合だけ /TASK を使用してください。/TYPE=(name)
/TYPE:(name)
/TYPE(name)
値を調べる個々の値を name ( プログラムで宣言された変数またはデータ型の名前でなければならない ) で指定された型に応じて解釈し,表示します。これによりユーザ宣言型を指定できます。型式は括弧で囲まなければなりません。/VARIANT=variant-selector address-expression
/VARIANT=(variant-selector,...) address-expression
デバッガが匿名バリアントを発見したときに,正しい項目を表示できるようにします。C プログラムの共用体に含まれているメンバは,個々の時点でいずれか 1 つのみが有効となっています。共用体を表示するとき,デバッガはその時点でどのメンバが有効なのかを知りません。
PASCAL プログラムのバリアント部を含んでいるレコードでは,個々の時点でいずれか 1 つのバリアントのみが有効となっています。匿名バリアント部を含んでいるレコードを表示するとき,デバッガはその時点でどのバリアントが有効なのかはわからず,省略時の設定ではすべてのバリアントを表示します。
EXAMINE コマンドの /VARIANT 修飾子を使用すると,共用体 (C) または匿名バリアント (PASCAL) のどのメンバを表示するかを選択することができます。
/WCHAR_T[:n]
確認した個々の値を解釈し,n ロングワード (n 文字 ) のマルチバイト・ファイル・コード・シーケンスとして表示します。省略時の値は 1 ロングワードです。確認した文字列を変換する場合,デバッガは,実行されているプロセスのロケール・データベースを使用します。省略時の設定は C ロケールです。
/WORD
値を調べる個々の要素をワード整数型 (2 バイト長) で表示します。/X_FLOAT
(Alpha および Integrity のみ) 確認した個々の値を IEEE X 浮動小数点型 (16 バイト長 ) で表示します。
EXAMINE コマンドはアドレス式で示す記憶位置に要素を表示します。このコマンドを使用すれば,プログラムでアクセスできるメモリ記憶位置またはレジスタの内容を表示できます。高級言語の場合,このコマンドは変数 ( 整数,実数,文字列,配列,レコードなど ) の現在の値を獲得するために使用されることがほとんどです。最適化されたコードをデバッグすると,EXAMINE コマンドは,スプリット・ライフタイム変数が値を受け取る定義ポイントを表示します。スプリット・ライフタイム変数についての詳しい説明は,『デバッガ説明書』を参照してください。省略時の設定では,EXAMINE コマンドは,最高 5 つまでの定義ポイントを表示します。/DEFINITIONS 修飾子を使用すると,定義ポイントの数を指定できます。
デバッガはシンボリック・アドレス式 ( プログラムで宣言されたシンボリック名 ) に対応するコンパイラ生成型を認識します。シンボリック・アドレス式には次の要素が含まれます。
- 変数名。EXAMINE コマンドで変数を指定するときは,ソース・コードで使用される構文と同じ構文を使用する。
- ルーチン名,ラベル,行番号。これらは命令に対応している。変数の値を調べるときと同じ方法を使用して命令も表示できる。
通常,EXAMINE コマンドを入力すると,デバッガはプログラム記憶位置を求めるために指定されたアドレス式を評価します。そしてその位置に格納されている値を次のように表示します。
- その記憶位置にシンボリック名がある場合には,デバッガはそのシンボルに対応するコンパイラ生成型に従って ( つまり,命令または特定の型の変数として ) 値を編集します。
- その記憶位置にシンボリック名がない場合 ( したがって,対応するコンパイラ生成型もない場合 ) には,デバッガは省略時の設定では longword integer 型で値を編集します。これは省略時の設定では,EXAMINE コマンドはロングワード (4バイト ) 整数値としてこれらの記憶位置の内容を表示することを意味します。
プログラム記憶位置に対応する型を変更して,その記憶位置のデータを他のデータ形式で表示できるようにする方法はいくつもあります。
- シンボリック名を 持たない すべての記憶位置に対する省略時の型を変更するには,SET TYPE コマンドを使用して新しい型を指定できます。
- すべての 記憶位置 ( シンボリック名を持つものと持たないものの両方 ) に対して省略時の型を変更するには, SET TYPE/OVERRIDE コマンドを使用して新しい型を指定できます。
- 1 つの EXAMINE コマンドの継続中に特定の記憶位置に現在対応している型を上書きするには,修飾子 (/ASCII:n,/BYTE, /TYPE=(name など ) を使用することにより新しい型を指定できます。EXAMINE コマンドのほとんどの修飾子は型修飾子です。
デバッガは 2 進数,10 進数,16 進数,8 進数の 4 つの基数のどれか 1 つで整数データを解釈したり表示したりできます。
ほとんどの言語の場合,データの入力と表示のどちらに対しても,省略時の基数は 10 進数です。例外は BLISS と MACRO です。これらの言語での省略時の基数は 16 進数です。
EXAMINE コマンドにはデータを他の基数で表示できるようにするための基数修飾子が 4 つあります (/BINARY,/DECIMAL,/HEXADECIMAL,/OCTAL)。 SET RADIX コマンドと SET RADIX/OVERRIDE コマンドを使用して,省略時の基数を変更することもできます。
EXAMINE コマンドには,型修飾子と基数修飾子だけでなく,他の用途のための修飾子があります。
- /SOURCE 修飾子を使用すれば,データではなく命令に対応する行番号,ルーチン名,ラベルまたはその他のアドレス式に対応するソース・コードの行を表示できる。
- /[NO]LINE 修飾子と /[NO]SYMBOLIC 修飾子を使用すれば,アドレス式のシンボル化を制御できる。
EXAMINE コマンドは現在の値の組み込みシンボル %CURLOC とピリオド (.) を指定されたアドレス式で示される記憶位置に設定します。論理的先行データ (%PREVLOC またはサーカンフレックス文字 (^) ) と論理的後続データ (%NEXTLOC) は現在の値に基づきます。
/VARIANT 修飾子は,デバッガが匿名バリアントを発見したときに,正しい項目を表示できるようにします。
C プログラムの共用体に含まれているメンバは,個々の時点でいずれか 1 つのみが有効となっています。共用体を表示するとき,デバッガはその時点でどのメンバが有効なのかを知りません。 PASCAL プログラムのバリアント部を含んでいるレコードでは,個々の時点でいずれか 1 つのバリアントのみが有効となっています。匿名バリアント部を含んでいるレコードを表示するとき,デバッガはその時点でどのバリアントが有効なのかはわからず,省略時の設定ではすべてのバリアントを表示します。
EXAMINE コマンドの /VARIANT 修飾子を使用すると,共用体 (C プログラム) または匿名バリアント (PASCAL プログラム) のどのメンバを表示するかを選択することができます。フォーマットは次のとおりです。
DBG> EXAMINE /VARIANT=variant-selector address-expression
DBG> EXAMINE /VARIANT=(variant-selector,...) address-expression
バリアント選択子の variant-selector は,名前,判別式 (PASCAL のみ),または位置を指定します。つまり,以下のいずれかになります。
- NAME = name-string
- DISCRIMINANT = expression
- POSITION = expression
/VARIANT 修飾子はゼロ個以上のバリアント選択子のリストを取ります。省略時の設定では,バリアント選択子なしの /VARIANT となり,すべての匿名バリアント・リストの最初のバリアントが表示されます。
個々のバリアント選択子は,表示するバリアントの名前,判別式,または位置を指定します。
デバッガはバリアント選択子を次のように使用します。
- アドレス式を表示しているときに匿名変数リストに遭遇すると,デバッガはバリアント選択子を使用して,どのバリアントを表示するかを選択します。
- 匿名バリアント・リストに遭遇するたびに,デバッガは次のバリアント選択子を使用して,どのバリアントを表示するかを選択します。バリアント選択子がバリアント・リスト (共用体) のいずれかのバリアントと一致した場合,デバッガはそのバリアントを表示します。
- デバッガは構造体を上から下に,深さ優先で探索するので,子は兄弟よりも前に発見されます。
- 匿名バリアント・リストに遭遇し,それにマッチするバリアント選択子がなかった場合,デバッガは最初のバリアントを表示します。
- バリアント選択子が匿名バリアント・リストのどのバリアントともマッチしなかった場合,デバッガはその旨を示す行を表示します。これは,判別値が判別バリアント・リストのどのバリアントともマッチしなかったときにデバッガが表示する行に似ています。次に例を示します。
[Variant Record omitted - null or illegal Tag Value: 3]
name は名前文字列を指定します。名前がバリアントにマッチするのは,そのバリアントが name によって指定された名前のフィールドを含んでいる場合です。
判別式は,対象とするバリアント部のタグ型と互換性のある型の言語式を指定します。判別式がバリアントにマッチするのは,それがバリアントの case ラベル・リストの中の値に評価される場合です。C と C++ の共用体は判別式を持たないので,判別式は Pascal プログラムにのみ適用されます。
positional-selector は,バリアント・リストの中のバリアントの数を N として,1 から N までの整数に評価される言語式を指定します。 I に評価される positional-selector は,I 番目のバリアントを表示するように指定します。
アスタリスク (*) をワイルドカードとして使用すると,匿名バリアント・リストのすべてのバリアントにマッチします。
これらのバリアント選択子は,いずれもすべてのバリアントにマッチするような形で使用することができます。特に,以下に示すバリアント選択子は,最初の匿名バリアント・リストのすべてのバリアントを表示するよう指定します。
/VAR=D=* /VAR=N=* /VAR=P=*
バリアント選択子そのものに,選択子のリストを含めることができます。たとえば,以下のコマンドはいずれも同じ意味を持ちます。
EXAMINE /VARIANT=(DIS=3,DIS=1,DIS=54) x EXAMINE /VARIANT=(DIS=(3,1,54)) x EXAMINE /VARIANT=DIS=(3,1,54) x
値が単純な 10 進整数である場合には,1 つの判別式または位置の値を括弧なしで指定することができます。一般的な式を使って値を指定するときには,式を括弧で囲みます。以下のコマンドのリストでは,最初の 4 つのコマンドが有効であるのに対し,最後の 3 つのコマンドは無効です。
目次 索引
|