| 日本-日本語 | 
      
  | 
  
      
  | 
  
| 
 | 
     
OpenVMS マニュアル | 
    
  
  | 
    
     
HP OpenVMS
 | 
    
    
  
| 目次 | 索引 | 
C.8.4 ソース表示 | 
デバッガは,COPY 文または COPY REPLACING 文でプログラムに取り込まれたソース・テキストを表示することができます。しかし,COPY REPLACING 文または REPLACE 文を使用した場合は,COPY REPLACING 文または REPLACE 文で作成された修正後のソース・テキストではなく,元のソース・テキストが表示されます。
デバッガは,REPORT 節のコードに対応する元のソース行を表示することはできません。REPORT に対応する DATA SECTION のソース行を見ることはできますが,レポートを作成するためのコンパイル済みコードに対応するソース行は表示されません。
C.8.5 COBOL の INITIALIZE 文と大きいテーブル (配列) (Alpha のみ) 
![]()
OpenVMS Alpha システムでは,大きいテーブル (配列) が初期化されるときに,STEP コマンドを使用して COBOL プログラムで INITIALIZE 文を実行する場合,デバッガは非常に長い時間と多くのリソースを使用することがあります。
この問題を回避するには,INITIALIZE 文をステップ実行するのではなく, INITIALIZE 文の後の最初の実行可能な行にブレークポイントを設定します。
 次の各サブトピックでは,デバッガによる DIBOL のサポートについて説明します。
 言語式でサポートされている DIBOL の演算子を次に示します。
 
![]()
C.9 DIBOL (VAX のみ)
![]()
C.9.1 言語式の演算子
![]()
| 種類 | シンボル | 機能 | 
|---|---|---|
| 接頭辞 | # | 丸め | 
| 接頭辞 | + | 単項正符号 | 
| 接頭辞 | - | 単項負符号 (否定) | 
| 挿入辞 | + | 加算 | 
| 挿入辞 | - | 減算 | 
| 挿入辞 | * | 乗算 | 
| 挿入辞 | / | 除算 | 
| 挿入辞 | // | 商が小数となる除算 | 
| 挿入辞 | .EQ. | 等値 | 
| 挿入辞 | .NE. | 不等 | 
| 挿入辞 | .GT. | 大なり | 
| 挿入辞 | .GE. | 以上 | 
| 挿入辞 | .LT. | 小なり | 
| 挿入辞 | .LE. | 以下 | 
| 挿入辞 | .NOT. | 論理否定 | 
| 挿入辞 | .AND. | 論理積 | 
| 挿入辞 | .OR. | 論理和 | 
| 挿入辞 | .XOR. | 排他的論理和 | 
 サポートされている DIBOL の言語式とアドレス式の構造を次に示します。
 
C.9.2 言語式とアドレス式の構造
![]()
| シンボル | 構造 | 
|---|---|
| ( ) | 部分文字列 | 
| [ ] | 添字指定 | 
| .(ピリオド) | レコードの構成要素の選択 | 
 サポートされている DIBOL のデータ型を次に示します。
 
C.9.3 データ型
![]()
| DIBOL のデータ型 | VMS のデータ型名 | 
|---|---|
| I1 | バイト整数(B) | 
| I2 | ワード整数(W) | 
| I4 | ロングワード整数(L) | 
| Pn | パック 10 進数文字列(P) | 
| Pn.m | パック 10 進数文字列(P) | 
| Dn | 数値文字列,ゾーン記号 (NZ) | 
| Dn.m | 数値文字列,ゾーン記号 (NZ) | 
| An | ASCII テキスト(T) | 
| 配列 | (なし) | 
| レコード | (なし) | 
 言語式でサポートされている Fortran の演算子を次に示します。
 
![]()
C.10 Fortran
![]()
C.10.1 言語式の演算子
![]()
| 種類 | シンボル | 機能 | 
|---|---|---|
| 接頭辞 | + | 単項正符号 | 
| 接頭辞 | - | 単項負符号 (否定) | 
| 挿入辞 | + | 加算 | 
| 挿入辞 | - | 減算 | 
| 挿入辞 | * | 乗算 | 
| 挿入辞 | / | 除算 | 
| 挿入辞 | // | 連結 | 
| 挿入辞 | .EQ. | 等値 | 
| 挿入辞 | == | 等値 | 
| 挿入辞 | .NE. | 不等 | 
| 挿入辞 | /= | 不等 | 
| 挿入辞 | .GT. | 大なり | 
| 挿入辞 | > | 大なり | 
| 挿入辞 | .GE. | 以上 | 
| 挿入辞 | >= | 大なりまたは等値 | 
| 挿入辞 | .LT. | 小なり | 
| 挿入辞 | < | 小なり | 
| 挿入辞 | .LE. | 以下 | 
| 挿入辞 | <= | 小なりまたは等値 | 
| 接頭辞 | .NOT. | 論理否定 | 
| 挿入辞 | .AND. | 論理積 | 
| 挿入辞 | .OR. | 論理和 | 
| 挿入辞 | .XOR. | 排他的論理和 | 
| 挿入辞 | .EQV. | 同値 | 
| 挿入辞 | .NEQV. | 排他的論理和 | 
 サポートされている Fortran の言語式とアドレス式の構造を次に示します。
 
C.10.2 言語式とアドレス式の構造
![]()
| シンボル | 構造 | 
|---|---|
| ( ) | 添字指定 | 
| .(ピリオド) | レコードの構成要素の選択 | 
| % (パーセント記号) | レコードの構成要素の選択 | 
 サポートされている Fortran の定義済みのシンボルを次に示します。
 
C.10.3 定義済みのシンボル
![]()
| シンボル | 説明 | 
|---|---|
| .TRUE. | 論理値TRUE | 
| .FALSE. | 論理値FALSE | 
 サポートされている Fortran のデータ型を次に示します。
 
C.10.4 データ型
![]()
| Fortran のデータ型 | VMS のデータ型名 | 
|---|---|
| LOGICAL*1 | バイト符号なし (BU) | 
| LOGICAL*2 | ワード符号なし (WU) | 
| LOGICAL*4 | ロングワード符号なし (LU) | 
| LOGICAL*8 (Alpha および Integrity 固有) | クォドワード符号なし (QU) | 
| BYTE | バイト(B) | 
| INTEGER*1 | バイト整数(B) | 
| INTEGER*2 | ワード整数(W) | 
| INTEGER*4 | ロングワード整数(L) | 
| INTEGER*8 (Alpha および Integrity 固有) | クォドワード整数(Q) | 
| REAL*4 | F 浮動小数点数(F) | 
| REAL*4 (Alpha および Integrity 固有) | IEEE S 浮動小数点数(FS) | 
| REAL*8 | D 浮動小数点数(D) | 
| REAL*8 | G 浮動小数点数(G) | 
| REAL*8 (Alpha および Integrity 固有) | IEEE T 浮動小数点数(FT) | 
| REAL*16 (Alpha および Integrity 固有) | H 浮動小数点数(H) | 
| COMPLEX*8 | F 複素数 (FC) | 
| COMPLEX*8 (Alpha および Integrity 固有) | IEEE S 浮動小数点数 (SC) | 
| COMPLEX*16 | D 複素数 (DC) | 
| COMPLEX*16 | G 複素数 (GC) | 
| COMPLEX*16 (Alpha および Integrity 固有) | IEEE T 浮動小数点数 (TC)(Alpha 固有) | 
| CHARACTER | ASCII テキスト(T) | 
| 配列 | (なし) | 
| レコード | (なし) | 
LOGICAL データ型を表すのに内部的には VMS の符号なし整数のデータ型 (BU,WU,LU,QU) が使用されるとしても,LOGICAL 変数および LOGICAL の値が言語式で使用されている場合は,デバッガはコンパイラと同様に LOGICAL の変数および値を符号付きとして処理します。
デバッガは LOGICAL 変数および LOGICAL 式の値を .TRUE. や .FALSE. ではなく,数値でプリントします。LOGICAL の変数や値で有効なのは,通常は下位ビットだけで,0 が .FALSE.,1 が .TRUE. です。しかし,Fortran では,LOGICAL の値のすべてのビットを操作することが許されており,言語式の中で LOGICAL の値を使用することができます。この理由から,LOGICAL 変数や LOGICAL 式の整数値全体を見なければならない場合があるので,デバッガがそれを表示します。
(1.0,2.0) などの COMPLEX 定数は,デバッガの式ではサポートしていません。
REAL*4 型および COMPLEX*8 型の浮動小数点数は,コンパイラのスイッチに応じて,F 浮動小数点数または IEEE S 浮動小数点数で表現されることがあります。
REAL*8 型および COMPLEX*16 型の浮動小数点数は,コンパイラのスイッチに応じて,D 浮動小数点数,G 浮動小数点数,または IEEE T 浮動小数点数で表現されることがあります。
OpenVMS Alpha システムでは,デバッガは複素数変数を含む式を評価できません。この問題を回避するには,複素数変数の内容を調べ, EXAMINE コマンドによって表示された複素数変数の実数部と虚数部を使用して,式を評価します。
 /CHECK=UNDERFLOW 修飾子または /PARALLEL 修飾子を使用してコンパイルしたプログラムをデバッグする場合には,次の例に示すようなメッセージが表示されます。
 
 
C.10.5 初期化コード
![]()
DBG> RUN FORMS Language: FORTRAN, Module: FORMS Type GO to reach main program DBG>  | 
"Type GO to reach MAIN program" というメッセージは,メイン・プログラムを開始する前に実行が中断されるため,デバッガの制御のもとで初期化コードを実行できることを示します。GO コマンドを入力すると,メイン・プログラムの先頭に設定されます。その時点で, GO コマンドを入力すると,他の Fortran プログラムの場合と同様に,プログラムの実行を開始できます。
 次の節では,デバッガによる MACRO-32 のサポートについて説明します。
 MACRO-32 言語には,高級言語の式と同じ意味での式というものはありません。受け入れられるのはアセンブリ時の式と,限られた数の演算子だけです。デバッグ時に MACRO-32 のプログラミングで,他の言語の場合と同じくらい自由に式を使用できるようにするため,デバッガは, MACRO-32 自体には含まれていない多数の演算子を MACRO-32 の言語式の中で受け入れるようになっています。特に, BLISS 以後にモデル化された比較演算子とブール演算子はすべて受け入れます。間接参照演算子と通常の算術演算子も受け入れられます。
 
![]()
C.11 MACRO-32
![]()
C.11.1 言語式の演算子
![]()
| 種類 | シンボル | 機能 | 
|---|---|---|
| 接頭辞 | @ | 間接参照 | 
| 接頭辞 | . | 間接参照 | 
| 接頭辞 | + | 単項正符号 | 
| 接頭辞 | - | 単項負符号 (否定) | 
| 挿入辞 | + | 加算 | 
| 挿入辞 | - | 減算 | 
| 挿入辞 | * | 乗算 | 
| 挿入辞 | / | 除算 | 
| 挿入辞 | MOD | 剰余 | 
| 挿入辞 | @ | 左シフト | 
| 挿入辞 | EQL | 等値 | 
| 挿入辞 | EQLU | 等値 | 
| 挿入辞 | NEQ | 不等 | 
| 挿入辞 | NEQU | 不等 | 
| 挿入辞 | GTR | 大なり | 
| 挿入辞 | GTRU | 大なり符号なし | 
| 挿入辞 | GEQ | 以上 | 
| 挿入辞 | GEQU | 以上符号なし | 
| 挿入辞 | LSS | 小なり | 
| 挿入辞 | LSSU | 小なり符号なし | 
| 挿入辞 | LEQ | 以下 | 
| 挿入辞 | LEQU | 以下符号なし | 
| 接頭辞 | NOT | ビット単位のNOT | 
| 挿入辞 | AND | ビット単位のAND | 
| 挿入辞 | OR | ビット単位のOR | 
| 挿入辞 | XOR | ビット単位の排他的論理和 | 
| 挿入辞 | EQV | ビット単位の同値 | 
 サポートされている, MACRO-32 の言語式とアドレス式の構造を次に示します。
 
C.11.2 言語式とアドレス式の構造
![]()
| シンボル | 構造 | 
|---|---|
| [ ] | 添字指定 | 
| <p,s,e> | BLISS同様のビットフィールドの選択 | 
MACRO-32 アセンブラが作成する DST 情報では,記憶域を割り当てるアセンブラ指示文の前にあるラベルは,そのラベルが変数名である配列変数として扱われます。その結果,このようなデータを検査または操作するときに,高級言語の配列の構文を使用することができます。
次の MACRO-32 ソース・コードの例では,4 個のワードに格納されている 16 進数のデータをLAB4 ラベルで指定しています。
LAB4: .WORD ^X3F,5[2],^X3C  | 
デバッガは LAB4 を配列変数として処理します。たとえば次のコマンドは,各要素 (ワード) に格納されている値を表示します。
DBG> EXAMINE LAB4
.MAIN.\MAIN\LAB4 
    [0]:        003F 
    [1]:        0005 
    [2]:        0005 
    [3]:        003C
 | 
次のコマンドは,4 番目のワードに格納されている値を表示します。1 番目のワードは要素"0" で表されます。
DBG> EXAMINE LAB4[3] .MAIN.\MAIN\LAB4[3]: 03C  | 
| 目次 | 索引 | 
      
  | 
  ||||||||