library home hp.com home products and services support and drivers solutions
cd-rom home
End of Jump to page title
HP OpenVMS Systems
Documentation

Jump to content


HP OpenVMS

HP OpenVMS
デバッガ説明書


前へ 次へ 目次 索引


4.4.3 I64 レジスタの検査と値の格納

I64 プロセッサは,I64 アーキテクチャの以下のレジスタを備えています。

これらのレジスタの大半は,ユーザ・モードでのデバッグで,読み取りおよび書き込みが可能です。ただし,一部のレジスタは書き込み不可です。また,アクセスするために,System Code Debugger (SCD) の構成 ( 『OpenVMS System Analysis Tools Manual』を参照) に関連する高い特権が必要なレジスタもあります。

表 4-3 I64 レジスタのデバッガ・シンボル
シンボル 説明
I64 アプリケーション・レジスタ
%KR0...%KR7 カーネル・レジスタ 0...7
%RSC (%AR16) レジスタ・スタック・コンフィギュレーション
%BSP (%AR17) バッキング・ストア・ポインタ
%BSPSTORE (%AR18) メモリ・ストア用バッキング・ストア・ポインタ
%RNAT (%AR19) RSE NaT コレクション
%CCV ($AR32) 比較交換での比較値
%UNAT (%AR36) ユーザ NaT コレクション
%FPSR (%AR40) 浮動小数点ステータス
%PFS (%AR64) 以前のファンクション状態
%LC (%AR65) ループ・カウント
%EC (%AR66) エピローグ・カウント
%CSD コード・セグメント
%SSD スタック・セグメント
コントロール・レジスタ
%DCR (%CR0) デフォルト・コントロール
%ITM (%CR1) インターバル・タイマ・マッチ (SCD でのみ参照可能)
%IVA (%CR2) 割り込みベクタ・アドレス (SCD でのみ参照可能)
%PTA (%CR8) ページ・テーブル・アドレス (SCD でのみ参照可能)
%PSR (%CR9, %ISPR) 割り込みプロセッサ・ステータス
%ISR (%CR17) 割り込みステータス
%IIP (%CR19) 割り込み命令ポインタ
%IFA (%CR20) 割り込みフォルト・アドレス
%ITIR (%CR21) 割り込み TLB 挿入
%IIPA (%CR22) 割り込み命令前アドレス
%IFS (%CR23) 割り込みファンクション状態
%IIM (%CR24) 割り込み即値
%IHA (%CR25) 割り込みハッシュ・アドレス
%LID (%CR64) ローカル割り込み ID (SCDでのみ参照可能)
%TPR (%CR66) タスク・プライオリティ (SCDでのみ参照可能)
%IRR0...%IRR3 (%CR68...%CR71) 外部割り込み要求 0...3 (SCDでのみ参照可能)
%ITV (%CR72) インターバル・タイマ (SCDでのみ参照可能)
%PMV (%CR73) パフォーマンス監視 (SCDでのみ参照可能)
%CMCV (%CR74) 訂正済みマシン・チェック・ベクタ (SCDでのみ参照可能)
%IRR0 および %IRR1 (%CR80 および %CR81) ローカル・リダイレクション 0:1 (SCDでのみ参照可能)
特殊レジスタ
%IH (%SR0) インボケーション・ハンドル
%PREV_BSP 以前のバッキング・ストア・ポインタ
%PC (%IP) プログラム・カウンタ (命令ポインタ | スロット番号)
%RETURN_PC リターン・プログラム・カウンタ
%CFM 現在のフレーム・マーカ
%NEXT_PFS 前々回のファンクション状態
%PSP 以前のスタック・ポインタ
%CHFCTX_ADDR コンディション・ハンドリング・ファシリティ・コンテキスト・アドレス
%OSSD オペレーティング・システム固有データ
%HANDLER_FV ハンドラ・ファンクション値
%LSDA 言語固有データ領域
%UM ユーザ・マスク
プレディケート・レジスタ
%PR (%PRED) プレディケート・コレクション・レジスタ---%P0...%P63 の集まり
%P0...%P63 プレディケート (1 ビット) レジスタ 0...63
分岐レジスタ
%RP (%B0) リターン・ポインタ
%B1...%B7 分岐レジスタ 1...7
汎用整数レジスタ
%R0 汎用整数レジスタ 0
%GP (%R1) グローバル・データ・ポインタ
%R2...%R11 汎用整数レジスタ 2...11
%SP (%R12) スタック・ポインタ
%TP (%R13) スレッド・ポインタ
%R14...%R24 汎用整数レジスタ 14...24
%AP (%R25) 引数情報
%R26...%R127 汎用整数レジスタ 26...127
出力レジスタ
%OUT0...%OUT7 出力レジスタ,実行時別名 (たとえば,フレームが出力レジスタに割り当てられた場合, %OUT0 は,最初に割り当てられた出力レジスタ,たとえば %R38 に対応する)。
汎用レジスタ
%GRNAT0 および %GRNAT1 それぞれ 64 ビットの汎用レジスタの NAT (Not A Thing) コレクション・レジスタ。たとえば %GRNAT0<3,1,0> は,%R3 の NAT ビット。
浮動小数点レジスタ
%F0...%F127 浮動小数点レジスタ 0...127

I64 プロセッサには次のことが該当します。

4.5 検査と格納を行う場合の型の指定

ここまでの節では,シンボリック名を持ち,したがってコンパイラ生成型に対応しているプログラム記憶位置を EXAMINE コマンドと DEPOSIT コマンドで使用する方法を説明しました。

第 4.5.1 項 では,シンボリック名を持たないプログラム記憶位置用にデバッガがデータを編集 ( 型指定 ) する方法と,それらの記憶位置用に型を制御する方法を説明します。

第 4.5.2 項 では,プログラム記憶位置に対応した型を上書きする方法を,シンボリック名を持つ記憶位置も含めて説明します。

4.5.1 シンボリック名を持たないプログラム記憶位置に対する型の定義

シンボリック名を持たず,したがってコンパイラ生成型に対応付けられていないプログラム記憶位置は,省略時の設定ではロングワード整数型を持ちます。この省略時の型を使用してそれらの記憶位置を検査し,それらの記憶位置へ値を格納する方法については, 第 4.1.5 項 を参照してください。

SET TYPE コマンドを使用すると,省略時の型を変更できます。これは,別の型の記憶位置の内容を検査および表示したい場合や,特定の型の値を別の型に対応付けられた記憶位置へ格納したい場合に役立ちます。 表 4-4 は, SET TYPE コマンドの型のキーワードの一覧です。

表 4-4 SET TYPE キーワード
ASCIC D_FLOAT H_FLOAT 1 PACKED
ASCID DATE_TIME INSTRUCTION QUADWORD
ASCII: n EXTENDED_FLOAT 2 LONG_FLOAT 2 S_FLOAT 2
ASCIW F_LOAT LONG_LONG_FLOAT 2 T_FLOAT 2
ASCIZ FLOAT LONGWORD TYPE=( type-expression)
BYTE G_FLOAT OCTAWORD WORD
      X_FLOAT 2


1VAX 固有
2I64 および Alpha 固有

たとえば,次のコマンドはシンボリック名を持たない記憶位置の型をバイト整数型,G 浮動小数点数型,6 バイトの ASCII データからなる ASCII 型にそれぞれ設定します。一連のSET TYPE コマンドは型を再設定します。


DBG> SET TYPE BYTE
DBG> SET TYPE G_FLOAT
DBG> SET TYPE ASCII:6

SET TYPE コマンドは,/OVERRIDE 修飾子を指定せずに使用した場合,シンボリック名を持つプログラム記憶位置 ( コンパイラ生成型に対応付けられた記憶位置 ) の型には影響を及ぼさないので注意してください。

SHOW TYPE コマンドは,シンボリック名を持たない記憶位置の現在の型を表示します。そのような記憶位置の省略時の型を復元するには, SET TYPE LONGWORD コマンドを入力します。

4.5.2 現在の型の上書き

SET TYPE/OVERRIDE コマンドを使用すれば,任意のプログラム記憶位置に対応した型を上書きでき,その結果どのようなコンパイラ生成型でも変更できます。たとえば,次のコマンドの実行後に EXAMINE コマンドを無修飾で実行した場合,指定した記憶位置の最初のバイトの内容だけが表示され,その内容はバイト整数データとして解釈されます。無修飾の DEPOSIT コマンドを実行した場合は,指定した記憶位置の最初のバイトだけが変更され,格納するデータはバイト整数データとして編集されます。


DBG> SET TYPE/OVERRIDE BYTE

SET TYPE/OVERRIDE コマンドに対して指定できる型キーワードについては, 表 4-4 を参照してください。

現在の上書き型を表示するには,SHOW TYPE/OVERRIDE コマンドを入力します。現在の上書き型を取り消して,シンボリック名を持つ記憶位置の通常の解釈へ戻すには,CANCEL TYPE/OVERRIDE コマンドを入力します。

EXAMINE コマンドと DEPOSIT コマンドには,EXAMINE コマンドまたは DEPOSIT コマンドの実行中に,プログラムの記憶位置に現在割り当てられている型を無効にするための修飾子があります。これらの修飾子は,コンパイラで生成された型だけでなく,SET TYPE または SET TYPE/OVERRIDE コマンドも無効にします。各コマンドで使用できる型修飾子については, DEPOSIT コマンドと EXAMINE コマンドを参照してください。

型修飾子を指定して EXAMINE コマンドを使用した場合,アドレス式で指定した要素がその型で表示されます。次に例を示します。


DBG> EXAMINE/BYTE .           ! 型はバイト整数である。
MOD3\%LINE 15 :  -48
DBG> EXAMINE/WORD .           ! 型はワード整数である。
MOD3\%LINE 15 :  464
DBG> EXAMINE/LONG .           ! 型はロングワード整数である。
MOD3\%LINE 15 :  749404624
DBG> EXAMINE/QUAD .           ! 型はクォドワード整数である。
MOD3%LINE 15 :  +0130653502894178768
DBG> EXAMINE/FLOAT .          ! 型は F 浮動小数点数である。
MOD3%LINE 15 :   1.9117807E-38
DBG> EXAMINE/G_FLOAT .        ! 型は G 浮動小数点数である。
MOD3%LINE 15 :   1.509506018605227E-300
DBG> EXAMINE/ASCII .          ! 型は ASCII 文字列である。
MOD3\%LINE 15 :  ".."
DBG>

型修飾子を指定して DEPOSIT コマンドを使用した場合,アドレス式で指定した記憶位置へその型の値が格納され,そのアドレス式に対応する型が上書きされます。

残りの項では,型修飾子と SET TYPE コマンドを使用して整数型,文字列型,およびユーザ宣言型を指定する例を示します。


前へ 次へ 目次 索引