Compaq OpenVMS
デバッガ・コマンド・ディクショナリ


前へ 次へ 目次 索引



DEFINE

アドレス式,コマンドまたは値にシンボリック名を割り当てます。

形式

DEFINE symbol-name=parameter [,symbol-name=parameter[,...]]


パラメータ

symbol-name

アドレス,コマンドまたは値に割り当てるシンボリック名を指定します。シンボリック名は英字とアンダスコアで構成できます。デバッガは英小文字を大文字に変換します。先頭文字は数字であってはなりません。シンボリック名は 31 文字を超えてはなりません。

parameter

指定された修飾子によって異なります。

修飾子

/ADDRESS

省略時の設定。定義したシンボルがアドレス式の短縮形であることを指定します。この場合,parameter はアドレス式になります。

/COMMAND

定義したシンボルを新しいデバッガ・コマンドとして扱うことを指定します。この場合,parameter は引用符で囲まれた文字列になります。この修飾子は,単純な場合には基本的に次の DCL コマンドと同じ機能を提供します。


$ symbol := string

複雑なコマンドを定義するには,仮パラメータ付きのコマンド・プロシージャの使用が必要となることがあります。コマンド・プロシージャに対するパラメータの宣言についての詳しい説明は,DECLARE コマンドを参照してください。

/LOCAL

定義されたコマンド・プロシージャ内でのみ有効になるように定義を指定します。定義されたシンボルはデバッガ・コマンド・レベルでは可視状態ではありません。省略時の設定では,コマンド・プロシージャの中で定義されたシンボルはそのプロシージャの外では可視状態になります。

/VALUE

定義されたシンボルが値の短縮形であることを指定します。この場合,parameter は現在の言語での言語式になります。

説明

DEFINE/ADDRESS コマンドを使用すれば,プログラム内のアドレス式にシンボリック名を割り当てられます。たとえば,シンボル以外のプログラム記憶位置に対してか,長いパス名接頭識別子を持つシンボルのプログラム記憶位置に対してシンボルを定義できます。シンボルを定義したら,そのプログラム記憶位置を新しく定義したシンボルで参照できるようになります。/ADDRESS 修飾子が省略時の設定です。

DEFINE/COMMAND コマンドを使用すれば,デバッガ・コマンド・レベルまたはコマンド・プロシージャから,デバッガ・コマンドの短縮形を定義するか,新しいコマンドを定義することができます。

DEFINE/VALUE コマンドを使用すれば,シンボリック名を値(または言語式を評価する結果)に割り当てられます。

シンボル定義をコマンド・プロシージャ内に限定するには,/LOCAL 修飾子を使用します。省略時の設定では,定義されたシンボルはグローバル(コマンド・プロシージャの外で可視状態)になります。

同じ修飾子を使用して複数の DEFINE コマンドを入力する場合は,まず SET DEFINE コマンドを使用して新しい省略時の修飾子を設定できます。たとえば,SET DEFINE COMMAND を使用すれば,DEFINE コマンドが DEFINE/COMMAND と同じように動作するようになります。そのあと,DEFINE コマンドで同じ修飾子を使用する必要はありません。他の修飾子を指定することにより,1 つの DEFINE コマンドの継続中に現在の省略時の修飾子を上書きできます。

シンボル変換では,デバッガはまずデバッグ・セッションの間に定義されたシンボルを検索します。したがって,プログラムにすでに存在しているシンボルが定義されると,パス名の接頭識別子が指定された場合を除き,デバッガはそのシンボルをもともと定義されていた定義に従って変換します。

シンボルを再定義すると,DEFINE コマンドで異なる修飾子を使用していた場合でも,もとの定義は取り消されます。

DEFINE/ADDRESS コマンドと DEFINE/VALUE コマンドで作成された定義は,それらが作成されたコンテキストの中のイメージが現在のイメージになっているときだけ使用できます。新しい現在のイメージを設定するために SET IMAGE コマンドを使用すると,これらの定義は一時的に使用できない状態になります。ただし,DEFINE/COMMAND コマンドと DEFINE/KEY コマンドで作成された定義はいつでもすべてのイメージに使用できます。

シンボルの同値を求めるには SHOW SYMBOL/DEFINED コマンドを使用します。

シンボル定義を取り消すには DELETE コマンドを使用します。

関連コマンド

DECLARE
DELETE
SET IMAGE
SHOW DEFINE
SHOW SYMBOL/DEFINED

#1

DBG> DEFINE CHK=MAIN\LOOP+10

このコマンドはシンボル CHK をアドレス MAIN\LOOP+10 に割り当てます。

#2

DBG> DEFINE/VALUE COUNTER=0
DBG> SET TRACE/SILENT R DO(DEFINE/VALUE COUNTER = COUNTER+1)

この例では,DEFINE/VALUE コマンドは値の 0 をCOUNTER シンボルに割り当てます。SET TRACE コマンドを使用すると,デバッガはアドレス R が検出されるたびにシンボル COUNTER の値を 1 だけ増分します。つまり,この例では R への呼び出し回数を数えているのです。

#3

DBG> DEFINE/COMMAND BRE = "SET BREAK"

このコマンドはシンボル BRE をデバッガ・コマンドの SET BREAK に割り当てます。


DEFINE/KEY

ファンクション・キーに文字列を割り当てます。

注意

このコマンドは,デバッガへの Compaq DECwindows Motif for OpenVMS ユーザ・インタフェースでは使用できません。


形式

DEFINE/KEY key-name "equivalence-string"


パラメータ

key-name

文字列を割り当てるファンクション・キーを指定します。有効なキー名は次のとおりです。

キー名 LK201 キーボード VT100型 VT52型
PF1 PF1 PF1 Blue
PF2 PF2 PF2 Red
PF3 PF3 PF3 Black
PF4 PF4 PF4  
KP0-KP9 キーパッドの 0〜9 キーパッドの 0〜9 キーパッドの 0〜9
PERIOD キーパッドのピリオド(.) キーパッドのピリオド(.)  
COMMA キーパッドのコンマ(,) キーパッドのコンマ(,)  
MINUS キーパッドのマイナス(-) キーパッドのマイナス(-)  
ENTER Enter ENTER ENTER
E1 Find    
E2 Insert Here    
E3 Remove    
E4 Select    
E5 Prev Screen    
E6 Next Screen    
HELP Help    
DO Do    
F6-F20 F6-F20    

LK201 キーボードでは,次のようになります。

equivalence-string

指定のキーを押したときに処理する文字列を指定します。通常,これは 1 つまたは複数のデバッガ・コマンドになります。文字列にスペースまたは英数字以外の文字(たとえば,2 つのコマンドを分けるセミコロン)が含まれている場合には,文字列を二重引用符(")で囲んでください。

修飾子

/ECHO(省略時の設定)

/NOECHO

キーが押されたあとにコマンド行を表示するかどうかを制御します。/NOTERMINATE を指定する場合は,/NOECHO は使用できません。

/IF_STATE=(state-name[,...])

/NOIF_STATE(省略時の設定)

キー定義が適用される 1 つまたは複数の状態を指定します。/IF_STATE 修飾子は指定された状態にキー定義を割り当てます。DEFAULT や GOLD などの定義済み状態またはユーザ定義状態を指定できます。状態名は適切な英数字文字列にすることができます。/NOIF_STATE 修飾子を使用すると,キー定義が現在の状態に割り当てられます。

/LOCK_STATE

/NOLOCK_STATE(省略時の設定)

指定のキーを押したあと,/SET_STATE で設定された状態がどれだけの間有効であり続けるかを制御します。/LOCK_STATE 修飾子を指定すると,状態は(たとえば SET KEY/STATE コマンドにより)明示的に変更されるまで有効のままです。/NOLOCK_STATE 修飾子を指定すると,次の終了文字が入力されるまで,または次の定義済みファンクション・キーが押されるまでの間だけしか状態は有効ではありません。

/LOG(省略時の設定)

/NOLOG

キー定義が正常に作成されていることを示すメッセージを表示するかどうかを制御します。/LOG 修飾子を指定すると,メッセージが表示されます。/NOLOG 修飾子を指定すると,メッセージは表示されません。

/SET_STATE=state-name

/NOSET_STATE(省略時の設定)

キーを押して現在のキー状態を変化させるかどうかを制御します。/SET_STATE 修飾子を指定すると,キーを押したときに現在の状態が指定の状態に変化します。/NOSET_STATE 修飾子を指定すると,現在の状態がそのまま有効になります。

/TERMINATE

/NOTERMINATE(省略時の設定)

キーを押したときに指定の文字列を終了(処理)するかどうかを制御します。/TERMINATE 修飾子を指定すると,キーを押したときに文字列が終了します。/NOTERMINATE 修飾子を指定すると,Return キーを押して文字列を終了する前に他のキーを押すことができます。

説明

このコマンドを使用する前にキーパッド・モードが使用できる状態(SET MODE KEYPAD)に設定しておかなければなりません。省略時の設定では,キーパッド・モードは使用可能です。

DEFINE/KEY コマンドを使用すれば,ファンクション・キーに文字列を割り当て,そのキーにバインドされている定義済みの機能を上書きできます。そのあと,そのキーを押すと,デバッガは現在対応づけられている文字列をコマンド行に入力します。DEFINE/KEY コマンドは DCL コマンドのDEFINE/KEY に似ています。

定義済みのキー機能のリストについては,「CI のキーパッド定義」オンライン・ヘルプ・トピックを参照してください。

VT52 シリーズと VT100 シリーズの端末では,ユーザが使用できるファンクション・キーは数値キーパッド・キーです。これより新しい端末やワークステーションには LK201 のキーボードが備っています。LK201 のキーボードで使用できるファンクション・キーとしては,数値キーパッド・キー全部,編集キーパッドの矢印以外のキー(Find,Insert Here など),キーボードの上部にある F6 から F20 のキーなどがあります。

キー定義は,そのキーが再定義されるか,そのキーに対して DELETE/KEY コマンドが入力されるか,デバッガが終了されるまで有効です。デバッガ初期化ファイルなどのコマンド・プロシージャにはキー定義を含めることができます。

/IF_STATE 修飾子を使用すれば,端末で使用できるキー定義の数を増加できます。各定義が異なる状態に対応づけられているかぎり,同じキーにいくつでも定義を割り当てられます。

省略時の状態では,現在のキー状態は "DEFAULT" 状態です。現在の状態は SET KEY/STATE コマンドを使用するか,状態を変更するキー(DEFINE/KEY/LOCK_STATE/SET_STATE で定義されたキー)を押すことにより変更できます。

関連コマンド

DELETE/KEY
(SET,SHOW)KEY

#1

DBG> SET KEY/STATE=GOLD
%DEBUG-I-SETKEY, keypad state has been set to GOLD
DBG> DEFINE/KEY/TERMINATE KP9 "SET RADIX/OVERRIDE HEX"
%DEBUG-I-DEFKEY, GOLD key KP9 has been defined

この例では,SET KEY コマンドは現在のキー状態として GOLD を設定しています。/DEFINE/KEY コマンドは SET RADIX/OVERRIDE HEX コマンドを現在の状態(GOL D)のキーパッド・キー 9(KP9)に割り当てます。このコマンドは KP9 キーが押されると処理されます。

#2

DBG> DEFINE/KEY/IF_STATE=BLUE KP9 "SET BREAK %LINE "
%DEBUG-I-DEFKEY, BLUE key KP9 has been defined

このコマンドは,未完成のコマンド文字列 "SET BREAK%LINE" を BLUE 状態のキーパッド・キー 9 に割り当てます。BLUE-KP9 を押したあと,行番号を入力して Return キーを押せば,SET BREAK コマンドを終了して処理することができます。

#3

DBG> SET KEY/STATE=DEFAULT
%DEBUG-I-SETKEY, keypad state has been set to DEFAULT
DBG> DEFINE/KEY/SET_STATE=RED/LOCK_STATE F12 ""
%DEBUG-I-DEFKEY, DEFAULT key F12 has been defined

この例では,SET KEY コマンドは現在の状態として DEFAULT を設定します。DEFINE/KEY コマンドは(LK201 キーボード上の)F12 キーを状態キーにします。DEFAULT 状態にあるときに F12 キーを押すと,現在の状態が RED になります。キー定義は終了されず,他に何の作用も持ちません(空文字列が F12 に割り当てられたことになります)。F12 キーを押したあと,RED 状態に対応づけられている定義を持つキーを押せば,"RED" コマンドを入力できます。


DEFINE/PROCESS_SET

シンボリック名をプロセス指定のリストに割り当てます。

形式

DEFINE/PROCESS_SET process-group-name =process-spec[,...]


パラメータ

process-set-name

プロセス指定のリストに割り当てるシンボリック名を指定します。シンボリック名は英数字とアンダスコアで構成することができます。デバッガは英小文字を英大文字に変換します。先頭文字は数字でなければなりません。シンボリック名は 31 文字を超えてはなりません。

process-spec

現在デバッガの制御下にあるプロセスを指定します。次のいずれかの形式で指定します。

[%PROCESS_NAME]process-name スペースや小文字を含まないプロセス名。プロセス名にはワイルドカード文字(*)を含めることができる。
[%PROCESS_NAME] "process-name" スペースまたは小文字を含むプロセス名。二重引用符(")の代わりに,一重引用符を(')使用することもできる。
%PROCESS_PIDprocess_id プロセス識別子(PID,16 進数)。
[%PROCESS_NUMBER]process-number
(または %PROCprocess-number)
デバッガの制御下に入ったときにプロセスに割り当てられた番号。新しい番号は,1 から順番に各プロセスに割り当てられる。EXIT コマンドまたは QUIT コマンドによってプロセスが終了しても,そのデバッグ・セッション中はその番号は再割り当てできる。プロセス番号は SHOW PROCESS コマンドの実行で表示される。プロセスは,組み込みシンボル %PREVIOUS_PROCESS および %NEXT_PROCESS によってインデックスづけできるように,循環リスト内に順序づけされる。
process-group-name DEFINE/PROCESS_GROUP コマンドで定義された,プロセスのグループを表すシンボル。
%NEXT_PROCESS デバッガの循環プロセス・リスト中で可視プロセスの次のプロセス。
%PREVIOUS_PROCESS デバッガの循環プロセス・リスト中で可視プロセスの前のプロセス。
%VISIBLE_PROCESS シンボル,レジスタ値,ルーチン呼び出し,ブレークポイントなどの検索時に現在のコンテキストになっているスタック,レジスタ・セット,およびイメージを持つプロセス。

プロセスを指定しないと,シンボリック名は作成されますが,プロセス・エントリは含まれません。


説明

DEFINE/PROCESS_SET コマンドはプロセス指定のリストにシンボルを割り当てます。割り当てたシンボルは,プロセス指定のリストが許されているコマンドであればどの中でも使用できます。

DEFINE/PROCESS_SET コマンドは指定されたプロセスの有無を調べません。このため,まだ存在していないプロセスでも指定できます。

DEFINE/PROCESS_SET コマンドで定義されたシンボルを表示するには,SHOW SYMBOL/DEFINED コマンドを使用します。DEFINE/PROCESS_SET コマンドで定義されたシンボルを削除するには,DELETE コマンドを使用します。

関連コマンド

DELETE
(SET,SHOW)DEFINE
SHOW SYMBOL/DEFINED

#1

all> DEFINE/PROCESS_SET SERVERS=FILE_SERVER,NETWORK_SERVER
all> SHOW PROCESS SERVERS
 Number  Name         Hold  State   Current PC 
*    1 FILE_SERVER          step    FS_PROG\%LINE 37 
     2 NETWORK_SERVER       break   NET_PROG\%LINE 24
all>

この DEFINE/PROCESS_SET コマンドはシンボリック名 SERVERS を FILE_SERVER と NETWORK_SERVER で構成されるプロセス・グループに割り当てます。SHOW PROCESS SERVERS コマンドは SERVERS グループを構成するプロセスについての情報を表示します。

#2

all> DEFINE/PROCESS_SET G1=%PROCESS_NUMBER 1,%VISIBLE_PROCESS
all> SHOW SYMBOL/DEFINED G1
defined G1 
    bound to: "%PROCESS_NUMBER 1, %VISIBLE_PROCESS" 
    was defined /process_set
all> DELETE G1

この DEFINE/PROCESS_SET コマンドはシンボリック名 G1 をプロセス 1 と可視プロセス(プロセス 3)で構成されるプロセス・グループに割り当てます。SHOW SYMBOL/DEFINED G1 コマンドは定義されたシンボル G1 を表示します。DELETE G1 コマンドは DEFINE シンボル・テーブルからそのシンボルを削除します。

#3

all> DEFINE/PROCESS_SET A = B,C,D
all> DEFINE/PROCESS_SET B = E,F,G
all> DEFINE/PROCESS_SET E = I,J,A
%DEBUG-E-NORECSYM, recursive PROCESS_SET symbol definition 
     encountered at or near "A"

この一連の DEFINE/PROCESS_SET コマンドは DEFINE/PROCESS_SET コマンドの無効な用法と有効な用法を示しています。


前へ 次へ 目次 索引