日本-日本語
≫  お問い合わせ

製品とサービス >  ソフトウェアとOS >  OpenVMS >  マニュアル

OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 部:デバッガ概要
第 1 章:デバッガ概要
第 2 部:コマンド・インタフェース
第 2 章:デバッガの起動
第 3 章:プログラム実行の制御とモニタ
第 4 章:プログラム・データの検査と操作
第 5 章:プログラム内シンボルへのアクセス制御
第 6 章:ソース・コードの表示の制御
第 7 章:画面モード
第 3 部:DECwindows インタフェース
第 8 章:DECwindows Motifインタフェースの概要
第 9 章:デバッグ・セッションの開始と終了
第 10 章:デバッガの使用方法
第 4 部:PC クライアント・インタフェース
第 11 章:デバッガの PC クライアント/サーバ・インタフェースの概要
第 5 部:高度なトピック
第 12 章:ヒープ・アナライザの使用
第 13 章:その他の便利な機能
第 14 章:特殊なデバッグ
第 15 章:マルチプロセス・プログラムのデバッグ
第 16 章:タスキング・プログラムのデバッグ
第 6 部:付録
付録 A :定義済みのキー機能
付録 B :組み込みシンボルと論理名
付録 C :各言語に対するデバッガ・サポートの要約
付録 D :EIGHTQUEENS.C
索引
PDF
OpenVMS ホーム

HP OpenVMS
デバッガ説明書


目次 索引

EXAMINE/PS コマンドは,記憶位置の値を PS 形式で表示します。これは,現在の PS 値と保存された PS 値の組み合わせを検査するのに役立ちます。

4.4.2 Integrity レジスタの検査と値の格納

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

  • 最大 128 個の,64 ビット汎用レジスタ。

  • 最大 128 個の,82 ビット浮動小数点レジスタ (このデバッガでは,これらのレジスタを,完全なオクタワードとして扱うことができます)。

  • 最大 64 個の 1 ビット・プレディケート・レジスタ,最大 8 個の 64 ビット分岐レジスタ,最大 128 個 (アクセスや使用が可能なのは 20 個のみ) のアプリケーション・レジスタ。

  • 特殊レジスタ (例: %PC) および仮想レジスタ (例: %RETURN_PC)。

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

表 4-2 Integrity レジスタのデバッガ・シンボル
シンボル 説明
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 プロセッサには次のことが該当します。

  • プログラムで同じ名前のシンボルを定義していない場合は,パーセント記号 (%) の接頭辞を省略できます。

  • 未割り当てのレジスタ,無効状態のレジスタ,または読み取り不可のレジスタには値を格納できません。例を次に示します。

    • %R38 〜 %R127 (%R32 〜 %R37 だけが割り当てられた場合)

    • %F0 (常に 0.0)

    • %F1 (常に 1.0)

    • %R0 (常に 0)

    • %SP

    • %P0 (常に 1)

    • %GRNAT0 および %GRNAT1

    • %PC 以外のすべての特殊レジスタ

    • 大半の制御レジスタとアプリケーション・レジスタ (下記を参照)

  • 通常のユーザ・モードのデバッグと SCD では,次のレジスタにも値を格納できます。

    • 例外フレーム用制御レジスタ %IPSR,%ISR,%IIP,%IFA,%ITIR, %IIPA,%IFS,%IIM,%IHA

    • アプリケーション・レジスタ %RSC,%CCV

  • SCD では,次のレジスタにも値を格納できます。

    • アプリケーション・レジスタ %KR0 〜 %KR7

    • 制御レジスタ %DCR,%ITM,%IVA,%PTA,%LID,%TPR,%IRR0 〜 %IRR3, %ITV,%PMV,%CMCV,%LRR0,%LRR1

  • ベクタ・レジスタはありません。

  • 一部のレジスタ読み取りは,自動的に書式化されます。 第 4.4.1 項 で説明しているように,この書式は変更できます (たとえば,EXAMINE/QUAD/HEX %FPSR)。

  • 浮動小数点ステータス・レジスタ (%FPSR) についての詳細は,『Intel IA-64 アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル第 1 巻』を参照してください。例を次に示します。

     
    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 を参照)。

  • 以前のファンクション状態 (%PFS) レジスタ,現在のフレーム・マーカ (%CFM) レジスタ,割り込みファンクション状態 (%IFS) レジスタ,前々回のファンクション状態 (%NEXT_PFS) レジスタについての詳細は,『Intel IA-64 アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル第 1 巻』を参照してください。例を次に示します。

     
    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 も参照してください。

  • プロセッサ・ステータス・レジスタ (%PSR) についての詳細は,『Intel IA-64 アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル第 2 巻』を参照してください。例を次に示します。

     
    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 も参照してください。

  • デバッガは,%GRNAT0 レジスタ,%GRANT1 レジスタ,および %PR レジスタに対して,省略時はビット・ベクタ・フォーマットを使用します。例を次に示します。

     
    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> 
     
    

  • デバッガは,%p0 〜 %p63 レジスタに対して,省略時は 1 ビット・フォーマットを使用します。例を次に示します。

     
    DBG> ex %p6,%p7 
    LOOPER\main\%P6:        0 
    LOOPER\main\%P7:        1 
    DBG> 
     
    



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

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

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

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

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

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

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

表 4-3 SET TYPE キーワード
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

1Integrity および 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-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 コマンドを使用して整数型,文字列型,およびユーザ宣言型を指定する例を示します。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項 ウェブマスターに連絡