| 日本-日本語 | 
      
  | 
  
      
  | 
  
| 
 | 
     
OpenVMS マニュアル | 
    
  
  | 
    
     
HP OpenVMS
 | 
    
    
  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 目次 | 索引 | 
EXAMINE/PS コマンドは,記憶位置の値を PS 形式で表示します。これは,現在の PS 値と保存された PS 値の組み合わせを検査するのに役立ちます。
4.4.2 Integrity レジスタの検査と値の格納
![]()
Integrity プロセッサは,Integrity アーキテクチャの以下のレジスタを備えています。
これらのレジスタの大半は,ユーザ・モードでのデバッグで,読み取りおよび書き込みが可能です。ただし,一部のレジスタは書き込み不可です。また,アクセスするために,System Code Debugger (SCD) の構成 ( 『HP OpenVMS System Analysis Tools Manual』を参照) に関連する高い特権が必要なレジスタもあります。
| シンボル | 説明 | 
|---|---|
| Integrity アプリケーション・レジスタ | |
| %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 | 
Integrity プロセッサには次のことが該当します。
 
DBG> ex %fpsr 
LOOPER\main\%FPSR: 
        I U O Z D V TD RC PC WRE FTZ 
    SF3 0 0 0 0 0 0  1  0  3   0   0 
    SF2 0 0 0 0 0 0  1  0  3   0   0 
    SF1 0 0 0 0 0 0  1  0  3   1   0 
    SF0 0 0 0 0 0 0  0  0  3   0   0 
    TRAPS ID UD OD ZD DD VD 
           1  1  1  1  1  1 
DBG> 
 
 | 
この書式付けを,任意の位置で強制することもできます (EXAMINE/FPSR を参照)。
 
DBG> ex %pfs 
LOOPER\main\%PFS: 
    PPL PEC SOF SOL SOR RRB_GR RRB_FR RRB_PR 
      3   0  29  21   0      0      0      0 
DBG> ex %cfm 
LOOPER\main\%CFM: 
    SOF SOL SOR RRB_GR RRB_FR RRB_PR 
      6   5   0      0      0      0 
DBG> ex %ifs 
LOOPER\main\%IFS: 
    SOF SOL SOR RRB_GR RRB_FR RRB_PR 
      6   5   0      0      0      0 
DBG> ex %next_pfs 
LOOPER\main\%NEXT_PFS: 
    PPL PEC SOF SOL SOR RRB_GR RRB_FR RRB_PR 
      3   0   6   5   0      0      0      0 
DBG> 
 
 
 | 
EXAMINE/PFS と EXAMINE/CFM も参照してください。
 
DBG> ex %psr 
LOOPER\main\%PSR: 
    IA BN ED RI SS DD DA ID IT MC IS CPL RT TB LP DB SI DI PP SP DFH DFL 
     0  1  0  0  0  0  0  0  1  0  0   3  1  0  0  0  0  1  0  0   0   0 
    DT PK  I IC MFH MFL AC UP BE 
     1  0  1  1   1   1  0  0  0 
DBG> 
 
 | 
EXAMINE/PSR も参照してください。
DBG> ex %grnat0,%pr LOOPER\main\%GRNAT0: 11111111 11111111 11111111 11000000 00000000 00000000 00000000 00000000 LOOPER\main\%PR: 00000000 00000000 00000000 00000000 11111111 01010110 10010110 10100011 DBG>  | 
DBG> ex %p6,%p7 LOOPER\main\%P6: 0 LOOPER\main\%P7: 1 DBG>  | 
 ここまでの節では,シンボリック名を持ち,したがってコンパイラ生成型に対応しているプログラム記憶位置を EXAMINE コマンドと DEPOSIT コマンドで使用する方法を説明しました。
 
第 4.5.1 項 では,シンボリック名を持たないプログラム記憶位置用にデバッガがデータを編集 ( 型指定 ) する方法と,それらの記憶位置用に型を制御する方法を説明します。
 
第 4.5.2 項 では,プログラム記憶位置に対応した型を上書きする方法を,シンボリック名を持つ記憶位置も含めて説明します。
 シンボリック名を持たず,したがってコンパイラ生成型に対応付けられていないプログラム記憶位置は,省略時の設定ではロングワード整数型を持ちます。この省略時の型を使用してそれらの記憶位置を検査し,それらの記憶位置へ値を格納する方法については, 
第 4.1.5 項 を参照してください。
 
SET TYPE コマンドを使用すると,省略時の型を変更できます。これは,別の型の記憶位置の内容を検査および表示したい場合や,特定の型の値を別の型に対応付けられた記憶位置へ格納したい場合に役立ちます。 表 4-3 は, SET TYPE コマンドの型のキーワードの一覧です。  
![]()
4.5 検査と格納を行う場合の型の指定
![]()
4.5.1 シンボリック名を持たないプログラム記憶位置に対する型の定義
![]()
| ASCIC | D_FLOAT | PACKED | |
| ASCID | DATE_TIME | INSTRUCTION | QUADWORD | 
| ASCII: n | EXTENDED_FLOAT 1 | LONG_FLOAT 1 | S_FLOAT 1 | 
| ASCIW | F_LOAT | LONG_LONG_FLOAT 1 | T_FLOAT 1 | 
| ASCIZ | FLOAT | LONGWORD | TYPE=( type-expression) | 
| BYTE | G_FLOAT | OCTAWORD | WORD | 
| X_FLOAT 1 | 
たとえば,次のコマンドはシンボリック名を持たない記憶位置の型をバイト整数型,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-3 を参照してください。
現在の上書き型を表示するには,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 コマンドを使用して整数型,文字列型,およびユーザ宣言型を指定する例を示します。
| 目次 | 索引 | 
      
  | 
  ||||||||