HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
アドレス式を評価し,その結果をメモリ・アドレスまたはレジスタ名として表示します。
EVALUATE/ADDRESS address-expression[,...]
address-expression
有効な形式のアドレス式 ( たとえば,ルーチン名,変数名,ラベル,行番号など ) を指定します。
/BINARY
メモリ・アドレスを 2 進基数で表示します。/DECIMAL
メモリ・アドレスを 10 進基数で表示します。/HEXADECIMAL
メモリ・アドレスを 16 進基数で表示します。/OCTAL
メモリ・アドレスを 8 進基数で表示します。
EVALUATE/ADDRESS コマンドを使用すれば,アドレス式に対応するメモリ・アドレスまたはレジスタを求められます。デバッガは 2 進数,10 進数,16 進数,8 進数の 4 つの基数のどれか 1 つで整数データを解釈したり表示したりできます。
ほとんどの言語の場合,データの入力と表示のどちらに対しても,省略時の基数は 10 進数です。例外は BLISS と MACRO です。これらの言語での省略時の基数は 16 進数です。
基数修飾子 (/BINARY,/OCTAL など ) を使用すれば別の基数でアドレス・データを表示できます。これらの修飾子はユーザが指定したデータをデバッガが解釈する方法には影響を及ぼしません。現在の出力基数は上書きされますが,入力基数はもとのままです。
変数の値がメモリではなくレジスタに現在格納されている場合には, EVALUATE/ ADDRESS コマンドはレジスタを識別します。この場合,基数修飾子は全く働きを持ちません。
EVALUATE/ADDRESS コマンドは,指定されたアドレス式で示される記憶位置に現在の要素組み込みシンボルの %CURLOC とピリオド (.) を設定します。論理的先行データ (%PREVLOC またはサーカンフレックス文字 (^) ) と論理的後続データ (%NEXTLOC) は現在の要素の値に基づきます。
Alpha プロセッサでは, EVALUATE/ADDRESS procedure-name というコマンドは指定されたルーチン,エントリ・ポイントまたは Ada パッケージの ( コード・アドレスではなく ) プロシージャディスクリプタアドレスを表示します。
関連コマンド
EVALUATE
(SET,SHOW,CANCEL) RADIX
SHOW SYMBOL/ADDRESS
SYMBOLIZE
| #1 |
|---|
DBG> EVALUATE/ADDRESS MODNAME\%LINE 110 3942 DBG> |
このコマンドはアドレス式 MODNAME\%LINE 110 によって示されるメモリ・アドレスを表示します。
| #2 |
|---|
DBG> EVALUATE/ADDRESS/HEX A,B,C 000004A4 000004AC 000004A0 DBG> |
このコマンドはアドレス式 A,B,C で示されるメモリ・アドレスを 16 進基数で表示します。
| #3 |
|---|
DBG> EVALUATE/ADDRESS X MOD3\%R1 DBG> |
このコマンドは変数 X がレジスタ R1 に対応していることを示します。 X は非静的 ( レジスタ ) 変数です。
プログラム変数の現在の値を表示します。より通常は,アドレス式で示される要素の値を表示します。
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 のみ,最適化コードがサポートされた場合は I64) コードが最適化されると,スプリット・ライフタイム変数用に n 定義ポイントを表示します。定義ポイントは,変数が値を受け取る位置です。省略時の設定では,最高 5 つまでの定義ポイントが表示されます。( 明示的または省略時の設定で ) 指定した数より多い定義ポイントが使用可能な場合は,指定した数以上の定義ポイントも報告されます。スプリット・ライフタイム変数についての詳しい説明は,『OpenVMS デバッガ説明書』を参照してください。この修飾子は /DEFI と短縮できます。
/EXTENDED_FLOAT
/X_FLOAT
(Alpha および I64 のみ) 値を調べる個々の値を IEEE の X 浮動小数点型 (16 バイト長 ) で表示します。/FLOAT
VAX プロセッサでは,値を調べる個々の値を F 浮動小数点型 (4 バイト長 ) で表示します。Alpha プロセッサでは,値を調べる個々の値を IEEE T 浮動小数点型 ( 倍精度,8 バイト長 ) で表示します。
/F_FLOAT
(VAX のみ) 確認した個々の値を F 浮動小数点型 (4 バイト長) で表示します。/FPCR
(Alpha のみ ) 値を調べる個々の値を FPCR ( 浮動小数点制御レジスタ ) 形式で表示します。/FMASK[=(mask-address-expression)]
VAX のベクタ化されたプログラムの場合に指定できます。 /TMASK 修飾子を参照してください。/G_FLOAT
VAX システムでは,値を調べる個々の値を G 浮動小数点型 (8 バイト長 ) で表示します。/H_FLOAT
(VAX のみ ) 値を調べる個々の値を H 浮動小数点型 (16 バイト長 ) で表示します。/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 および I64 のみ) 値を調べる個々の値を IEEE S 浮動小数点型 ( 単一精度,4 バイト長 ) で表示します。/LONG_LONG_FLOAT
/T_FLOAT
(Alpha および I64 のみ) 値を調べる個々の値を IEEE T 浮動小数点型 ( 倍精度,8 バイト長 ) で表示します。/LONGWORD
値を調べる個々の値をロングワード整数型 (4 バイト長 ) で表示します。これがコンパイラ生成型を持たないプログラム記憶位置の場合の省略時の型です。/OCTAL
値を調べる個々の値を 8 進整数で表示します。/OCTAWORD
個々の値をオクタワード整数型 (16 バイト長 ) で表示します。/OPERANDS[=keyword]
(VAX のみ ) 値を調べる命令に対応するオペランド情報を表示します ( 各オペランドのアドレスとその内容を,そのオペランドのデータ型を使用して表示します )。 BRIEF と FULL のキーワードはレジスタ以外のオペランドに関して表示される情報の量を変えます。省略時の設定は /OPERANDS=BRIEF です。現在の PC 値 ( たとえば,EXAMINE/OPERANDS .0\%PC) での命令を値を調べる場合にだけ /OPERANDS を使用してください。現在の PC 値にない命令のオペランドの値を調べると,マシンの状態 ( レジスタの内容 ) がその命令に合わせて設定されていないため,間違った結果が出力される恐れがあります。
画面モードでは,オペランド情報は現在の出力表示に出力されます。
ベクタ命令のオペランドの値を調べるときは,省略時の設定では,その命令に対応している可能性のあるオペランド要素のマスキングが実行されます。/TMASK 修飾子と /FMASK 修飾子を使用すると,他のいくつかのマスクを指定できます。ベクタ長レジスタ (VLR) の現在の値により,表示できるベクタ・レジスタの最上位要素が制限されます。
SET MODE [NO]OPERANDS=keyword コマンドも参照してください。このコマンドを使用すれば,命令を調べるときに表示されるオペランド情報の量に省略時のレベルを設定できます。
/PACKED:n
値を調べるそれぞれの値をパック 10 進数と解釈します。 n の値は 10 進数の桁数です。 1 つの桁は 1 ニブル (4 ビット ) を占めます。/PS
(Alpha のみ) 値を調べる個々の値を PS ( プロセッサ・ステータス・レジスタ ) 形式で表示します。/PSL
(VAX のみ ) 値を調べる個々の値を PSL ( プロセッサ・ステータス・ロングワード ) 形式で表示します。/PSR
(I64 のみ) 値を調べる個々の値を PSR (プロセッサ・ステータス・レジスタ) 形式で表示します。/PSW
(VAX のみ ) 値を調べる個々の値を PSW ( プロセッサ・ステータス・ワード ) 形式で表示します。/PSW 修飾子は下位ワード (2 バイト ) だけが表示されること以外は,/PSL に似ています。/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)
値を調べる個々の値を 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 および I64 のみ) 確認した個々の値を 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 進数です。
前へ 次へ 目次 索引