前へ | 次へ | 目次 | 索引 |
アドレス式を評価し,その結果をメモリ・アドレスまたはレジスタ名として表示します。
EVALUATE/ADDRESS address-expression[,...]
address-expression
有効な形式のアドレス式(たとえば,ルーチン名,変数名,ラベル,行番号など)を指定します。
/BINARY
メモリ・アドレスを 2 進基数で表示します。/DECIMAL
メモリ・アドレスを 10 進基数で表示します。/HEXADECIMAL
メモリ・アドレスを 16 進基数で表示します。/OCTAL
メモリ・アドレスを 8 進基数で表示します。
EVALUATE/ADDRESS コマンドを使用すれば,アドレス式に対応するメモリ・アドレスまたはレジスタを求められます。デバッガは 2 進数,10 進数,16 進数,8 進数の 4 つの基数のどれか 1 つで整数データを解釈したり表示したりできます。ほとんどの言語の場合,データの入力と表示のどちらに対しても,省略時の基数は 10 進数です。
VAX プロセッサでは,例外は BLISS と MACRO-32 です。この 2 つの省略時の基数は 16 進数です。Alpha プロセッサでは,例外は BLISS と MACRO-32 と MACRO-64 です。この 3 つの省略時の基数は 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 のみ)コードが最適化されると,スプリット・ライフタイム変数用に n 定義ポイントを表示します。定義ポイントは,変数が値を受け取る位置です。省略時の設定では,最高 5 つまでの定義ポイントが表示されます。(明示的または省略時の設定で)指定した数より多い定義ポイントが使用可能な場合は,指定した数以上の定義ポイントも報告されます。スプリット・ライフタイム変数についての詳しい説明は,『Compaq OpenVMS デバッガ説明書』を参照してください。この修飾子は /DEFI と短縮できます。
/EXTENDED_FLOAT
/X_FLOAT
(Alpha のみ)値を調べる個々の値を 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 のみ)値を調べる個々の値を IEEE S 浮動小数点型(単一精度,4 バイト長)で表示します。/LONG_LONG_FLOAT
/T_FLOAT
(Alpha のみ)値を調べる個々の値を 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(プロセッサ・ステータス・ロングワード)形式で表示します。/PSW
(VAX のみ)値を調べる個々の値を PSW(プロセッサ・ステータス・ワード)形式で表示します。/PSW 修飾子は下位ワード(2 バイト)だけが表示されること以外は,/PSL に似ています。/QUADWORD
値を調べる個々の値をクォドワード整数型(8 バイト長)で表示します。/S_FLOAT
(Alpha のみ)値を調べる個々の値を IEEE S 浮動小数点型(単一精度,4 バイト長)で表示します。/SFPCR
Alpha プロセッサでは,値を調べる個々の値を SFPCR(ソフトウェア浮動小数点制御レジスタ)形式で表示します。/SOURCE
注意
この修飾子は,デバッガへの Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースでは使用できません。
値を調べる個々の値の記憶位置に対応するソース行を表示します。表示する値は機械語コード命令に対応していなければならず,したがって行番号,ラベル,ルーチン名または命令のメモリ・アドレスでなければなりません。表示する値はデータに対応する変数名やその他のアドレス式にすることはできません。
画面モードでは,EXAMINE/SOURCE コマンドの出力は,現在ソース表示があればそこに出力されます。出力表示や DO 表示には出力されません。ソース表示での矢印は指定された最後の要素(または要素のリストで指定した最後の要素)に対応するソース行を指します。
Alpha プロセッサでは,EXAMINE/SOURCE procedure-name コマンドは指定されたルーチン,エントリ・ポイントまたは Ada パッケージのコード・アドレスにソース・コードを表示します。
/SYMBOLIC(省略時の設定)
/NOSYMBOLIC
シンボル化を行うかどうかを制御します。省略時の設定(/SYMBOLIC)では,デバッガはできればすべてのアドレスをシンボル化します。つまり,数値アドレスをシンボル表現に変換します。/NOSYMBOLIC を指定すると,デバッガは絶対アドレスとして指定された要素のシンボル化を行わなくなります。要素を変数名として指定すると,シンボル化は行われます。/NOSYMBOLIC 修飾子は,(シンボリック名が数値アドレスに対して存在していても)シンボリック名ではなく,数値アドレスを表示した場合に役立ちます。/NOSYM BOLIC を使用すると,デバッガは数字を名前に変換する必要がないため,コマンド処理の速度が上がる可能性があります。/TASK
タスキング(マルチスレッド)プログラムの場合に指定できます。値を調べる個々の値をタスク(スレッド)・オブジェクトとして解釈し,そのタスク・オブジェクトのタスク値(名前またはタスク ID)を表示します。タスク・オブジェクトの値を調べるときは,プログラミング言語に組み込みタスキング・サービスが備っていない場合だけ /TASK を使用してください。/T_FLOAT
(Alpha のみ)確認した個々の値をIEEE T 浮動小数点型(倍精度,8 バイト長)で表示します。/TMASK[=(mask-address-expression)]
/FMASK[=(mask-address-expression)]
これらの修飾子は VAX のベクタ化されたプログラムの場合に指定できます。これらの修飾子を使用すれば,他の要素を表示しないでベクタ・レジスタ(V0 から V15)の特定の要素またはメモリ上の配列の特定の要素を表示するために,マスクを指定できます。たとえば,(/OPERANDS 修飾子を使用することにより)ベクタ命令のオペランドの値を調べるとき,これらの修飾子を使用すれば,その命令に対応している可能性のあるオペランド要素のマスキングを上書きすることができます。
/TMASK 修飾子を指定すると,マスクの設定ビット(ビット値 1)に対応するレジスタまたは配列の要素にだけ EXAMINE コマンドが適用されます。/FMASK 修飾子を指定すると,マスクのクリア・ビット(ビット値 0)に対応する要素にだけ EXAMINE コマンドが適用されます。ベクタ長レジスタ(VLR)の現在の値は,最高の配列要素ではなく,表示できる最高のレジスタ要素を制限します。
省略時の設定では,/TMASK または /FMASK でマスク・アドレス式を指定しないと,ベクタ・マスク・レジスタ(VMR)が使用されます。つまり,EXAMINE コマンドは(/TMASK の場合には)設定ビットまたは(/FMASK の場合には)クリア・ビットに対応するベクタ・レジスタまたは配列の要素だけに適用されます。
/TMASK または /FMASK でマスク・アドレス式を指定すると,そのアドレスでの値がマスクとして使用され,次の規則に従います。
- アドレス式は括弧で囲まなければならない。
- マスク要素の数によって,表示できるレジスタ要素または配列要素の数が制限される。
- マスク・アドレス式がブール配列を示す場合には,その値がマスクとして使用される。この方法は,省略時の場合に VMR を使用することと基本的に同じである。
- マスク・アドレス式がブール以外の配列を示す場合には,各配列要素の最下位ビット値がレジスタ配列またはターゲット配列の対応する要素のマスクとして使用される。
- マスク・アドレス式がブール・スカラ型を示す場合には,その値がレジスタ配列またはターゲット配列の最初の要素のマスクとして使用される。他の要素は全く表示されない。
- マスク・アドレス式が他の型を示している場合,その最下位ビット値がレジスタ配列またはターゲット配列のマスクとして使用される。他の要素は全く表示されない。
- マルチ要素マスクの場合には,指定されたマスク要素の最下位のものが,指定されたレジスタ配列要素またはターゲット配列要素の最下位のものに適用される。
/TYPE=(name)
値を調べる個々の値を name(プログラムで宣言された変数またはデータ型の名前でなければならない)で指定された型に応じて解釈し,表示します。これによりユーザ宣言型を指定できます。型式は括弧で囲まなければなりません。/VARIANT=variant-selector address-expression
/VARIANT=(variant-selector,...)address-expression
デバッガが匿名バリアントを発見したときに,正しい項目を表示できるようにします。C プログラムの共用体に含まれているメンバは,個々の時点でいずれか 1 つのみが有効となっています。共用体を表示するとき,デバッガはその時点でどのメンバが有効なのかを知りません。
PASCAL プログラムのバリアント部を含んでいるレコードでは,個々の時点でいずれか 1 つのバリアントのみが有効となっています。匿名バリアント部を含んでいるレコードを表示するとき,デバッガはその時点でどのバリアントが有効なのかはわからず,省略時の設定ではすべてのバリアントを表示します。
EXAMINE コマンドの /VARIANT 修飾子を使用すると,共用体(C)または匿名バリアント(PASCAL)のどのメンバを表示するかを選択することができます。
/VMR
(VAX のみ)VAX ベクタ化プログラムにのみ適用されます。ベクタ・マスク・レジスタを表示します。/WCHAR_T[:n]
確認した個々の値を解釈し,n ロングワード(n 文字)のマルチバイト・ファイル・コード・シーケンスとして表示します。省略時の値は 1 ロングワードです。確認した文字列を変換する場合,デバッガは,実行されているプロセスのロケール・データベースを使用します。省略時の設定は C ロケールです。
/WORD
値を調べる個々の要素をワード整数型(2 バイト長)で表示します。/X_FLOAT
(Alpha のみ)確認した個々の値を IEEE X 浮動小数点型(16 バイト長)で表示します。
前へ | 次へ | 目次 | 索引 |