日本-日本語 |
|
|
|
OpenVMS マニュアル |
|
HP OpenVMS
|
目次 | 索引 |
OpenVMS Debugger は,Integrity サーバおよび Alpha システムでさまざまなプログラミング言語をサポートします。
Integrity サーバでは,以下の言語で作成されたプログラムをデバッガで扱うことができます。
Ada 1 | Assembler (IAS) | BASIC | BLISS |
C | C++ | COBOL | Fortran |
MACRO-32 2 | IMACRO | Pascal |
Alpha システムでは,以下の言語で作成されたプログラムをデバッガで扱うことができます。
HP-Ada | BASIC | BLISS | C |
C++ | COBOL | Fortran | MACRO-32 1 |
MACRO-64 | Pascal | PL/I |
C.1 概要 |
デバッガは,各言語の構文,データ型,有効範囲規則を認識します。また,各言語の演算子および式の構文も認識します。したがって,デバッガ・コマンドを使用するときは,変数やその他のプログラム要素をプログラムのソース・コードに記述する場合と同じように指定することができます。また,その言語の構文を使用してソース言語の式の値を計算することもできます。
サポートされている言語のほとんどに共通するデバッグ方法については,マニュアルで説明しています。ヘルプ・トピックには各言語に固有の次の内容が含まれています。
言語固有のデバッガのサポートについての詳しい説明は,各言語とともに提供されるドキュメントを参照してください。
プログラムが複数の言語で記述されている場合,デバッグ・セッションの途中でデバッグ・コンテキストを 1 つの言語から別の言語へ変更することができます。選択する言語に対応したキーワードを指定して, SET LANGUAGE コマンドを使用してください。
Integrity サーバでは,次のキーワードの 1 つを指定することができます。
AMACRO | BASIC | BLISS | C |
C++ | COBOL | Fortran | PASCAL |
UNKNOWN |
Alpha システムでは,次のキーワードの 1 つを指定することができます。
ADA | AMACRO | BASIC | BLISS |
C | C++ | COBOL | FORTRAN |
MACRO | MACRO64 | PASCAL | UNKNOWN |
サポートされていない言語で記述されたプログラムをデバッグするときは, SET LANGUAGE UNKNOWN コマンドを入力します。サポートされていない言語でのデバッガの使用性を最大限に高めるため,この設定によってデバッガはデータ形式と演算子のセットを幅広く受け入れるようになります。この中には,サポートされている言語のうち,2,3 の言語だけに固有のデータ形式と演算子も含まれます。言語が UNKNOWN に設定されているときにデバッガが認識する演算子と構造についての詳しい説明は,オンライン・ヘルプの Language_UNKNOWN を参照してください。
OpenVMS Integrity では,GNAT Pro (Ada 95) コンパイラがサポートされます。この製品の詳細については,Adacore 社までお問い合せください。
Integrity サーバでは, AdaCore Technologies, Inc. の GNAT Pro Ada 95 を使用します。この製品に関する情報は,AdaCore 社の以下のドキュメントを参照してください。
OpenVMS Alpha 用の HP Ada については,
付録 C.3 節 を参照してください。
次の各サブトピックでは,Alpha システムにおける HP Ada のデバッガ・サポートについて説明します。 Ada のタスキング・プログラムに固有の情報については, 第 16 章 も参照してください。
次の各サブトピックでは,デバッガがサポートしている Ada の名前,シンボル,および定義済みの属性について説明します。
名前の一部分は言語式(たとえば,'FIRST や 'POS といった属性)である場合があるので注意してください。このことは,EXAMINE,EVALUATE,DEPOSIT の各コマンドでこれらの名前を使用する方法に影響します。列挙型の例については,オンライン・ヘルプの Specifying_Attributes_with_Enumeration_Types を参照してください。
サポートされている Ada の名前を次に示します。
C.2 GNAT Ada (Integrity のみ)
注意
HP は,OpenVMS Alpha から OpenVMS Integrity へ HP Ada (Ada 83) コンパイラをポーティングしていません。
http://www.gnat.com/wp-content/files/auto_update/gnat-unw-docs/html/gnat_ugn.html
http://www.gnat.com/wp-content/files/auto_update/gnat-unw-docs/html/gnat_rm.html
C.3 HP Ada (Alpha)
C.3.1 Adaの名前とシンボル
C.3.1.1 Adaの名前
名前の種類 | デバッガのサポート |
---|---|
レキシカル要素 | Ada の識別子の構文規則を完全にサポートしている。
識別子ではなく演算子のシンボル(たとえば,+ や *)である関数の名前には,接頭辞 %NAME を付ける必要がある。また,演算子のシンボルは二重引用符で囲まなければならない。 数値リテラル,文字リテラル,文字列リテラル,予約語についての Ada の規則を完全にサポートしている。 -2147483648 から 2147483647 までの範囲で,符号付き整数リテラルを受け入れる。 コンテキストとアーキテクチュアに応じて浮動小数点数型を,F 浮動小数点数型, D 浮動小数点数型,G 浮動小数点数型,H 浮動小数点数型, S 浮動小数点型,または T 浮動小数点数型と解釈する。 |
添字付き要素 | 完全にサポートしている。 |
断面 | 断面全体,または断面の添字付き要素を確認および評価することができる。
断面の添字付き要素の格納だけができる。断面全体の格納はできない。 |
選択要素 | .all の all キーワードの使用も含めて,完全にサポートしている。 |
リテラル | null キーワードも含めて,完全にサポートしている。 |
ブール・シンボル | 完全にサポートしている (TRUE,FALSE)。 |
集合体 | EXAMINE コマンドでレコード全体および配列のオブジェクトを確認することができる。配列またはレコードの構成要素に値を格納することができる。文字列の値を格納する場合を除き, DEPOSIT コマンドで集合体を使用することはできない。 |
属性 | デバッガのサポート |
---|---|
P'CONSTRAINED | 接頭辞Pが,判別子の付いたレコード・オブジェクトを表す場合。P'CONSTRAINED の値は, P の現在の状態 (制約付き,または制約なし) を表す。 |
P'FIRST | 接頭辞 P が列挙型または列挙型の部分型を表す場合。P の下限を示す。 |
P'FIRST | 接頭辞 P が配列型に対応しているか,制約付き配列の部分型を表す場合。最初の添字範囲の下限を示す。 |
P'FIRST(N) | 接頭辞 P が配列型に対応しているか,制約付き配列の部分型を表す場合。N 番目の添字範囲の下限を示す。 |
P'LAST | 接頭辞 P が列挙型または列挙型の部分型を表す場合。P の上限を示す。 |
P'LAST | 接頭辞 P が配列型に対応しているか,制約付き配列の部分型を表す場合。最初の添字範囲の上限を示す。 |
P'LAST(N) | 接頭辞 P が配列型に対応しているか,制約付き配列の部分型を表す場合。N 番目の添字範囲の上限を示す。 |
P'LENGTH | 接頭辞 P が配列型に対応しているか,制約付き配列の部分型を表す場合。最初の添字範囲の値の個数を示す (範囲が空の場合はゼロ)。 |
P'LENGTH(N) | 接頭辞 P が配列型に対応しているか,制約付き配列の部分型を表す場合。N 番目の添字範囲の値の個数を示す (範囲が空の場合はゼロ)。 |
P'POS(X) | 接頭辞 P が列挙型または列挙型の部分型を表す場合。値 X の位置番号を示す。最初の位置番号は 0。 |
P'PRED(X) | 接頭辞 P が列挙型または列挙型の部分型を表す場合。位置番号が X より 1 小さい P 型の値を示す。 |
P'SIZE | 接頭辞 P がオブジェクトを示す場合。オブジェクトを保持するために割り当てられたビット数を示す。 |
P'SUCC(X) | 接頭辞 P が列挙型または列挙型の部分型を表す場合。位置番号が X より 1 大きい P 型の値を示す。 |
P'VAL(N) | 接頭辞 P が列挙型または列挙型の部分型を表す場合。位置番号が N の P 型の値を示す。最初の位置番号は 0。 |
次の宣言について考えます。
type DAY is (MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY); MY_DAY : DAY; |
列挙型の属性の使用例を次に示します。属性の値を確認するのに EXAMINE コマンドを使用することはできませんので注意してください。これは属性が変数名ではないためです。属性の値を確認するときは,代わりに EVALUATE コマンドを使用してください。これと同じ理由から,DEPOSIT コマンドでは属性を := 演算子の右辺にしか置けません。
DBG> EVALUATE DAY'FIRST MON DBG> EVALUATE DAY'POS(WEDNESDAY) 2 DBG> EVALUATE DAY'VAL(4) FRI DBG> DEPOSIT MY_DAY := TUESDAY DBG> EVALUATE DAY'SUCC(MY_DAY) WED DBG> DEPOSIT . := DAY'PRED(MY_DAY) DBG> EXAMINE . EXAMPLE.MY_DAY: MONDAY DBG> EVALUATE DAY'PRED(MY_DAY) %DEBUG-W-ILLENUMVAL, enumeration value out of legal range |
次の宣言について考えます。
type MASK is (DEC,FIX,EXP); type CODE is (FIX,CLA,DEC); MY_MASK : MASK; MY_CODE : CODE; |
次の例では,オーバーロードされた列挙リテラル FIX を型明示式 CODE'(FIX) で解決します。この列挙リテラル FIX は CODE 型と MASK 型の両方に属しています。
DBG> DEPOSIT MY_CODE := FIX %DEBUG-W-NOUNIQUE, symbol 'FIX' is not unique DBG> SHOW SYMBOL/TYPE FIX data EXAMPLE.FIX enumeration type (CODE, 3 elements), size: 1 byte data EXAMPLE.FIX enumeration type (MASK, 3 elements), size: 1 byte DBG> DEPOSIT MY_CODE := CODE'(FIX) DBG> EXAMINE MY_CODE EXAMPLE.MY_CODE: FIX |
次の節では, Ada の演算子と言語式に関するデバッガのサポートについて説明します。
サポートされているAdaの言語式の演算子を次に示します。
C.3.2 演算子と式
C.3.2.1 言語式の演算子
種類 | シンボル | 機能 |
---|---|---|
接頭辞 | + | 単項正符号(一致) |
接頭辞 | - | 単項負符号(否定) |
挿入辞 | + | 加算 |
挿入辞 | - | 減算 |
挿入辞 | * | 乗算 |
挿入辞 | / | 除算 |
挿入辞 | MOD | モジュロ |
挿入辞 | REM | 剰余 |
接頭辞 | ABS | 絶対値 |
挿入辞 | & | 連結(文字列型のみ) |
挿入辞 | = | 等値(スカラ型および文字列型のみ) |
挿入辞 | /= | 不等(スカラ型および文字列型のみ) |
挿入辞 | > | 大なり(スカラ型および文字列型のみ) |
挿入辞 | >= | 以上(スカラ型および文字列型のみ) |
挿入辞 | < | 小なり(スカラ型および文字列型のみ) |
挿入辞 | <= | 以下(スカラ型および文字列型のみ) |
接頭辞 | NOT | 論理否定 |
挿入辞 | AND | 論理積(ビット配列以外の場合) |
挿入辞 | OR | 論理和(ビット配列以外の場合) |
挿入辞 | XOR | 排他的論理和(ビット配列以外の場合) |
次に示す項目はサポートされていません。
サポートされている Ada の式を次に示します。
C.3.2.2 言語式
式の種類 | デバッガのサポート |
---|---|
型変換 | Ada で指定された
明示的な型変換はどれもサポートしていない。しかし,デバッガが式を評価するときは数値型の間で特定の型変換が
暗黙に行われる。
精度の異なる型が式に含まれている場合,デバッガは式を評価する前に,精度の低い型を精度の高い型に変換する。
|
部分型 | 完全にサポートしている。ただし,デバッガは,部分型および範囲の制約がある型を"部分範囲" 型として示す。 |
型明示式 | オーバーロードされた列挙リテラル (識別子は同じだが,異なる列挙型に含まれるリテラル) を解決しなければならないので,サポートしている。それ以外の目的では型明示式をサポートしていない。 |
アロケータ | アロケータを使用する演算は何もサポートしていない。 |
ユニバーサル式 | サポートしていない。 |
目次 | 索引 |
|