HP OpenVMS デバッガ説明書
C.4.2 言語式とアドレス式の構造 | |
サポートされている,BASIC の言語式とアドレス式の構造を次に示します。
C.4.3 データ型 | |
サポートされている BASIC のデータ型を次に示します。
BYTE
|
バイト整数(B)
|
WORD
|
ワード整数(W)
|
LONG
|
ロングワード整数(L)
|
SINGLE
|
F 浮動小数点数(F)
|
DOUBLE
|
D 浮動小数点数(D)
|
GFLOAT
|
G 浮動小数点数(G)
|
DECIMAL
|
パック 10 進数(P)
|
STRING
|
ASCII テキスト(T)
|
RFA
|
(なし)
|
RECORD
|
(なし)
|
配列
|
(なし)
|
C.4.4 デバッグのためのコンパイル | |
BASIC 環境でプログラムに変更を加えてから,そのプログラムを保存したり置換したりしないまま,/DEBUG 修飾子を使用してコンパイルしようとすると, "Unsaved changes,no source line debugging available" ( 変更を保存していないのでデバッグにソース行を使用できません ) という BASIC のエラーが通知されます。この問題を防ぐには,プログラムを保存または置換してから, /DEBUG 修飾子を使用してプログラムを再コンパイルしてください。
C.4.5 定数 | |
[radix]"numeric-string"[type] という形式 ( "12.34"GFLOAT など ) や,n% という形式 ( 整数 25 の 25% など ) の BASIC の定数は,デバッガの式ではサポートされていません。
C.4.6 式の評価 | |
BASIC 言語でオーバフローする式であっても,デバッガが評価する場合に必ずオーバフローするとはかぎりません。BASIC の規則でオーバフローになる場合でも,デバッガは数値的に正しい結果を計算しようとします。この違いは,10 進数を計算するときに特に影響があります。
C.4.7 行番号 | |
デバッグ・セッションではソース・コード・ディスプレイに表示される連続した行番号を参照しますが,この行番号を生成するのはコンパイラです。BASIC プログラムに他のファイルからコードを取り込んだり,付加したりする場合,取り込まれたコードの行にもコンパイラによって順番に行番号が付けられます。
C.4.8 ルーチンへのステップ | |
STEP/INTO コマンドは,外部関数をチェックするのに便利です。しかし,内部サブルーチンや DEF で実行を停止するのにこのコマンドを使用すると,デバッガは最初に実行時ライブラリ (RTL) のルーチン内の命令をステップ実行するので,有用な情報は何も得られません。次の例では,Print_routine を呼び出す 8 行目で実行が一時停止されます。
...
-> 8 GOSUB Print_routine
9 STOP
...
20 Print_routine:
21 IF Competition = Done
22 THEN PRINT "The winning ticket is #";Winning_ticket
23 ELSE PRINT "The game goes on."
24 END IF
25 RETURN
|
STEP/INTO コマンドを実行すると,デバッガは適切な RTL コード内の命令をステップ実行して,表示のために使用できるソース行がないことをユーザに伝えてきます。一方,STEP コマンドだけを使用すると,デバッガは Print_routine への呼び出しを通り越して,直接ソース行の 9 行目に進みます。サブルーチンまたは DEF 関数のソース・コードをチェックするには,ルーチンのラベルにブレークポイントを設定してください。たとえば,SET BREAK PRINT_ROUTINE コマンドを入力します。こうすると,正確にルーチンの開始地点この例では 20 行目で実行を一時停止してから,コード内の命令を直接ステップ実行することができます。
C.4.9 シンボル参照 | |
単一の BASIC プログラム内の変数名とラベル名は,すべて固有のものでなければなりません。固有でない場合,デバッガはシンボルのあいまいさを解消できません。
次の各サブトピックでは,デバッガによる BLISS のサポートについて説明します。
C.5.1 言語式の演算子 | |
言語式でサポートされている BLISS の演算子を次に示します。
接頭辞
|
.
|
間接参照
|
接頭辞
|
+
|
単項正符号
|
接頭辞
|
-
|
単項負符号(否定)
|
挿入辞
|
+
|
加算
|
挿入辞
|
-
|
減算
|
挿入辞
|
*
|
乗算
|
挿入辞
|
/
|
除算
|
挿入辞
|
MOD
|
剰余
|
挿入辞
|
^
|
左シフト
|
挿入辞
|
EQL
|
等値
|
挿入辞
|
EQLU
|
等値
|
挿入辞
|
EQLA
|
等値
|
挿入辞
|
NEQ
|
不等
|
挿入辞
|
NEQU
|
不等
|
挿入辞
|
NEQA
|
不等
|
挿入辞
|
GTR
|
大なり
|
挿入辞
|
GTRU
|
大なり符号なし
|
挿入辞
|
GTRA
|
大なり符号なし
|
挿入辞
|
GEQ
|
以上
|
挿入辞
|
GEQU
|
以上符号なし
|
挿入辞
|
GEQA
|
以上符号なし
|
挿入辞
|
LSS
|
小なり
|
挿入辞
|
LSSU
|
小なり符号なし
|
挿入辞
|
LSSA
|
小なり符号なし
|
挿入辞
|
LEQ
|
以下
|
挿入辞
|
LEQU
|
以下符号なし
|
挿入辞
|
LEQA
|
以下符号なし
|
接頭辞
|
NOT
|
ビット単位のNOT
|
挿入辞
|
AND
|
ビット単位のAND
|
挿入辞
|
OR
|
ビット単位のOR
|
挿入辞
|
XOR
|
ビット単位の排他的OR
|
挿入辞
|
EQV
|
ビット単位の同値
|
C.5.2 言語式とアドレス式の構造 | |
サポートされている,BLISS の言語式とアドレス式の構造を次に示します。
[ ]
|
添字指定
|
[fldname]
|
フィールドの選択
|
<p,s,e>
|
ビット・フィールドの選択
|
C.5.3 データ型 | |
サポートされている BLISS のデータ型を次に示します。
BYTE
|
バイト整数(B)
|
WORD
|
ワード整数(W)
|
LONG
|
ロングワード整数(L)
|
QUAD (Alpha および Integrity 固有)
|
クォドワード(Q)
|
BYTE UNSIGNED
|
バイト符号なし(BU)
|
WORD UNSIGNED
|
ワード符号なし(WU)
|
LONG UNSIGNED
|
ロングワード符号なし(LU)
|
QUAD UNSIGNED (Alpha および Integrity 固有)
|
クォドワード符号なし(QU)
|
VECTOR
|
(なし)
|
BITVECTOR
|
(なし)
|
BLOCK
|
(なし)
|
BLOCKVECTOR
|
(なし)
|
REF VECTOR
|
(なし)
|
REF BITVECTOR
|
(なし)
|
REF BLOCK
|
(なし)
|
REF BLOCKVECTOR
|
(なし)
|
次の各サブトピックでは,デバッガによる C のサポートについて説明します。
C.6.1 言語式の演算子 | |
言語式でサポートされている C の演算子を次に示します。
接頭辞
|
*
|
間接参照
|
接頭辞
|
&
|
アドレス
|
接頭辞
|
sizeof
|
サイズ
|
接頭辞
|
-
|
単項負符号(否定)
|
挿入辞
|
+
|
加算
|
挿入辞
|
-
|
減算
|
挿入辞
|
*
|
乗算
|
挿入辞
|
/
|
除算
|
挿入辞
|
%
|
剰余
|
挿入辞
|
<<
|
左シフト
|
挿入辞
|
>>
|
右シフト
|
挿入辞
|
==
|
等値
|
挿入辞
|
!=
|
不等
|
挿入辞
|
>
|
大なり
|
挿入辞
|
>=
|
以上
|
挿入辞
|
<
|
小なり
|
挿入辞
|
<=
|
以下
|
接頭辞
|
~ (チルド)
|
ビット単位のNOT
|
挿入辞
|
&
|
ビット単位のAND
|
挿入辞
|
|
|
ビット単位のOR
|
挿入辞
|
^
|
ビット単位の排他的OR
|
接頭辞
|
!
|
論理否定
|
挿入辞
|
&&
|
論理積
|
挿入辞
|
||
|
論理和
|
C では感嘆符(!) は演算子なので,感嘆符をコメント区切り文字として使用することはできません。言語が C に設定されている場合は,感嘆符の代わりに /* がコメント区切り文字として受け入れられます。現在の行の終端までがコメントになります。対応する */ は不要であり,認識もされません。しかし,デバッガのログ・ファイルをデバッガの入力として使用できるようにするため,1 行の中で空白以外の最初の文字が感嘆符 (!) である場合は,デバッガはその感嘆符をコメント区切り文字として認識します。
C の言語式とデバッガのアドレス式の両方で,デバッガは接頭辞のアスタリスク (*) を間接参照演算子として受け入れます。言語が C に設定されているときのアドレス式では,接頭辞"*" は接頭辞 "." または "@" と同義です。
デバッガは,C または他のどの言語でも代入演算子は何もサポートしません。これは,デバッグされるプログラムに予期しない変更が加えられるのを防ぐためです。したがって,=,+=,--=,++, -- などの演算子は認識されません。メモリ記憶位置の内容を変更するには, DEPOSIT コマンドを使用して明示的に変更しなければなりません。
C.6.2 言語式とアドレス式の構造 | |
サポートされている,C の言語式とアドレス式の構造を次に示します。
[ ]
|
添字指定
|
.(ピリオド)
|
構造体構成要素の選択
|
->
|
ポインタの間接参照
|
C.6.3 データ型 | |
サポートされている C のデータ型を次に示します。
__int64 (Alpha および Integrity 固有)
|
クォドワード(Q)
|
unsigned__int64 (Alpha 固有)
|
クォドワード符号なし(QU)
|
__int32 (Alpha および Integrity 固有)
|
ロングワード整数(L)
|
unsigned__int32 (Alpha および Integrity 固有)
|
ロングワード符号なし(LU)
|
int
|
ロングワード整数(L)
|
unsigned int
|
ロングワード符号なし(LU)
|
__int16 (Alpha および Integrity 固有)
|
ワード整数(W)
|
unsigned__int16 (Alpha および Integrity 固有)
|
ワード符号なし(WU)
|
short int
|
ワード整数(W)
|
unsigned short int
|
ワード符号なし(WU)
|
char
|
バイト整数(B)
|
unsigned char
|
バイト符号なし(BU)
|
float
|
F 浮動小数点数(F)
|
__f_float (Alpha および Integrity 固有)
|
F 浮動小数点数(F)
|
double
|
D 浮動小数点数(D)
|
double
|
G 浮動小数点数(G)
|
__g_float (Alpha および Integrity 固有)
|
G 浮動小数点数(G)
|
float (Alpha および Integrity 固有)
|
IEEE S 浮動小数点数(FS)
|
__s_float (Alpha および Integrity 固有)
|
IEEE S 浮動小数点数(FS)
|
double (Alpha および Integrity 固有)
|
IEEE T 浮動小数点数(FT)
|
__t_float (Alpha および Integrity 固有)
|
IEEE T 浮動小数点数(FT)
|
enum
|
(なし)
|
struct
|
(なし)
|
union
|
(なし)
|
ポインタ型
|
(なし)
|
配列型
|
(なし)
|
++Alpha 固有です。
float 型の浮動小数点数は,コンパイラのスイッチによって, F 浮動小数点数または IEEE S 浮動小数点数のどちらかで表現されます。
double 型の浮動小数点数は,コンパイラのスイッチによって, IEEE T 浮動小数点数,D 浮動小数点数,またはG 浮動小数点数のどちらかで表現されます。
|