HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
次のパラメータは,STEP コマンドを実行したときにどの出力を表示するかを制御します。
[NO]SILENT
[NO]SOURCE
次のパラメータは,ルーチンを呼び出したときの動作を制御します。
INTO
[NO]JSB (VAX のみ)
OVER
[NO]SHARE
[NO]SYSTEM
STEP コマンドで省略時の設定以外の修飾子を指定すると,そのコマンドの実行中だけ,現在の STEP の省略時の修飾子を上書きできます。SHOW STEP コマンドを使用すると現在の STEP の省略時の修飾子を表示できます。
PF1-PF3 を押して画面モードにすると,SET STEP NOSOURCE コマンドと SET MODE SCREEN コマンドが指定されます。したがって,STEP コマンドの実行の結果またはブレークポイント,トレースポイント,ウォッチポイントが検出された結果作成された出力表示と DO 表示内ではソース・コードが表示されず,ソース表示による無駄を省くことができます。
OpenVMS VAX システムでは,STEP/OVER コマンドはステップ実行ではなく Fortran 実行時ライブライ・ルーチンを実行することがあります。詳細は,『デバッガ説明書』を参照してください。
関連コマンド
SHOW STEP
STEP
| #1 |
|---|
DBG> SET STEP INSTRUCTION,NOSOURCE |
このコマンドを使用すると,デバッガは STEP コマンドを入力したときに次の命令まで実行します。STEP コマンドごとにソース・コード行を表示することはありません。
| #2 |
|---|
DBG> SET STEP LINE,INTO,NOSYSTEM,NOSHARE |
このコマンドを使用すると,デバッガは STEP コマンドを入力したときにプログラムの次の行まで実行してから,ユーザ空間にある呼び出されたルーチン内の命令だけをステップ実行します。システム空間内のルーチンと共用可能イメージ内のルーチンは1 ステップとして実行されます。
タスキング・プログラム ( マルチスレッド・プログラムとも呼ばれます ) の 1 つまたは複数のタスクの属性を変更します。
SET TASK [task-spec[,...]]
task-spec
タスク値を指定します。次のいずれかの形式を指定します。
- イベント機能が THREADS の場合
- プログラムで宣言されているタスク ( スレッド ) ID 番号,または結果がタスク ID 番号となる言語式。
- 2 などのタスク ID 番号(SHOW TASK コマンドで表示される)
- イベント機能が ADA の場合
- プログラムで宣言されているタスク ( スレッド ) 名,または結果がタスク値となる言語式。パス名も使用できます。
- %TASK 2 などのタスク ID (SHOW TASK コマンドで表示される)
- 次のタスク組み込みシンボルのいずれか
%ACTIVE_TASK GO,STEP,CALL,または EXIT コマンドの実行時に実行されるタスク。 %CALLER_TASK Ada プログラムにのみ適用される。 accept 文の実行時に,その accept 文に対応するエントリを呼び出したタスク。 %NEXT_TASK デバッガのタスク・リスト中で可視タスクの次のタスク。タスクの順番は自由に決められますが,その順番は 1 回のプログラム実行の中で不変です。 %PREVIOUS_TASK デバッガのタスク・リスト中で可視タスクの前のタスク。 %VISIBLE_TASK シンボル,レジスタ値,ルーチン呼び出し,ブレークポイントなどの検索時に現在のコンテキストになっている呼び出しスタックとレジスタ・セットを持つタスク。
ワイルドカード文字のアスタリスク (*) は使用できません。代わりに /ALL 修飾子を使用してください。/ALL または /TIME_SLICE を指定する場合,タスクは指定できません。タスクを指定しないか, /ABORT,/[NO]HOLD,/PRIORITY,または /RESTORE とともに /ALL を指定しないと,可視タスクが選択されます。
/ABORT
指定されたタスクに終了のマークをつけます。指定されたタスクが実行を再開したあとに次に認められる時点で終了します。Compaq Ada タスクの場合,指定されたタスクに対して Ada 強制終了文を実行することと同じであり,これらのタスクは異常として示されます。依存タスクにも終了のマークがつけられます。
POSIX Threads スレッドの場合,次のコマンドを使用します。
PTHREAD tset -c thread-number
/ACTIVE
指定されたタスクをアクティブ・タスクにします。これは,コマンド STEP,GO,CALL または EXIT コマンドを実行したときに実行されるタスクです。この修飾子を使用すると,タスクは新しいアクティブ・タスクに切り替わり,そのタスクが可視タスクになります。指定されたタスクは,RUNNING 状態か READY 状態になければなりません。 /ACTIVE を使用する場合,タスクを 1 つ指定しなければなりません。SET TASK/ACTIVE コマンドは,VAX 上の Compaq Adaでのみサポートされています。 POSIX Threads プログラムまたは Alpha プログラム上の Compaq Ada では,次のコマンドのいずれかを使用します。
- クエリー型のアクションには,SET TASK/VISIBLE コマンドを使用
- 実行の制御を得るには,ブレークポイントを効果的な位置に配置する
- PTHREAD tset -a thread-number コマンドを使用する
/ALL
SET TASK コマンドをすべてのタスクに適用します。/HOLD
/NOHOLD (省略時の設定)
イベント機能が THREADS の場合は, PTHREAD tset -h thread-number コマンドまたは PTHREAD tset -n thread-number コマンドを使用します。指定されたタスクを保留するかどうかを制御します。 /HOLD 修飾子は指定されたタスクを保留します。
タスクを保留すると,そのタスクを RUNNING 状態にできなくなります。保留状態にあるタスクは,他の状態に移行できます。たとえば, SUSPENDED 状態から READY 状態に変わることができます。
すでに RUNNING 状態にあるタスク ( アクティブ・タスク ) は, RUNNING 状態にあるかぎり実行を続けることができます。実行は保留状態にあっても続けられます。何らかの理由 ( タイム・スライスが使用可能になっている場合,タイム・スライス時間の終了など ) で RUNNING 状態でなくなると,保留条件が解消されないかぎり, RUNNING 状態に戻ることはできません。
SET TASK/ACTIVE コマンドを使用すれば,タスクが保留されていても,保留条件を無効にし,タスクを RUNNING 状態にできます。
/NOHOLD 修飾子は,指定されたタスクの保留を解除します。
/PRIORITY=n
イベント機能が THREADS の場合は, PTHREAD tset -s thread-number コマンドを使用します。指定されたタスクの優先順位を n に設定します。ここで n は 0 〜 15 までの 10 進整数です。これにより,実行中 ( たとえば,Ada ランデブまたは POSIX Threads 同期化の実行中 ) にあとで優先順位を変更できなくなるわけではありません。この修飾子は,タスクのスケジューリング方法には影響を与えません。
/RESTORE
(Compaq Ada on VAX のみ) 指定されたタスクの優先順位を,作成されたときの優先順位に復元します。タスクのスケジューリング方法には影響を与えません。/TIME_SLICE=t
(Compaq Ada on VAX のみ) タイム・スライス期間を値 t に設定します。ここで,t は秒数を表す 10 進整数または実数値です。ここで設定された値は,プログラム内で指定されるタイム・スライス値 ( 指定されている場合 ) より優先されます。タイム・スライスを禁止するには,/TIME_SLICE=0.0 を使用します。 /TIME_SLICE はイベント機能が ADA のときのみ有効になります。/VISIBLE
指定されたタスクを可視タスクにします。可視タスクは,シンボル,レジスタ値,ルーチン呼び出し,ブレークポイントなどの検索時に,呼び出しスタックとレジスタ・セットが現在のコンテキストになるタスクです。 EXAMINE などのコマンドは,可視タスクに対して実行されます。 /VISIBLE 修飾子はアクティブ・タスクには影響を与えません。 /VISIBLE を使用する場合は,タスクを 1 つ指定しなければなりません。
SET TASK コマンドは,可視タスクとアクティブ・タスクの設定,これらのタスクの実行の制御,タスク状態の変更を直接または間接的に行えるようにします。
タスクの現在の状態を調べるには,SHOW TASK コマンドを使用します。タスクは,RUNNING,READY,SUSPENDED,TERMINATED のいずれかの状態にあります。
関連コマンド
DEPOSIT/TASK
EXAMINE/TASK
SET BREAK/EVENT
SET TRACE/EVENT
(SET, SHOW) EVENT_FACILITY
SHOW TASK|THREAD
| #1 |
|---|
DBG> SET TASK/ACTIVE %TASK 3 |
(イベント機能 = ADA) このコマンドは,タスク 3 (タスク ID = 3) をアクティブ・タスクにします。
| #2 |
|---|
DBG> PTHREAD tset -a 3 |
( イベント機能 = THREADS) このコマンドは,タスク 3 (タスク ID = 3) をアクティブ・タスクにします。
| #3 |
|---|
DBG> SET TASK %NEXT_TASK |
このコマンドは,デバッガのタスク・リスト中で次のタスクを可視タスクにします (/VISIBLE 修飾子は,SET TASK コマンドの省略時の修飾子です )。
| #4 |
|---|
DBG> SET TASK/HOLD/ALL
DBG> SET TASK/ACTIVE %TASK 1
DBG> GO
...
DBG> SET TASK/ACTIVE %TASK 3
DBG> STEP
...
|
この例では,SET TASK/HOLD/ALL コマンドでアクティブ・タスク以外のすべてのタスクの状態を凍結します。その後,必要なタスクに対して SET TASK/ACTIVE を使用して (GO コマンドと STEP コマンドとともに), 1 つまたは複数の指定されたタスクの動作を切り離して観察できます。
デバッガが画面やその他の出力を編集するときに使用する端末画面の高さと幅を設定します。
注意
このコマンドは,デバッガへの HP DECwindows Motif for OpenVMS ユーザ・インタフェースでは使用できません。
SET TERMINAL
/PAGE:n
端末画面の高さをn行に設定することを指定します。 18 から 100 まで指定できます。/WIDTH:n
端末画面の幅をn欄に設定することを指定します。 20 から 255 まで指定できます。VT100,VT200 または VT300 のシリーズの端末では,nは通常の場合 80 または 132 です。/WRAP
デバッガが定義済みのディスプレイ OUT に /WIDTH 修飾子によって指定されたカラムで出力テキストをラップするようにします。 /WIDTH を現在のコマンドに指定しない場合は,/WRAP は %WIDTH 設定を省略時の設定にします。
SET TERMINAL コマンドを使用すると,デバッガが画面出力の編集に使用できる画面部分を定義できます。このコマンドは,VT100,VT200 または VT300 のシリーズの端末を使用する場合に便利です。この場合,たいていは画面幅を 80 欄または 132 欄に設定できます。また,ワークステーションではデバッガが使用するターミナル・エミュレータ・ウィンドウのサイズを変更できるので,やはり便利です。
少なくとも 1 つの修飾子を指定しなければなりません。全部の修飾子を指定することも可能です。 /PAGE 修飾子と /WIDTH 修飾子には,それぞれ値が必要です。
SET TERMINAL コマンドを入力すると,すべての画面ウィンドウ定義が,新しい画面サイズに合うように自動的に調整されます。たとえば,RH1 は,画面の右上半分を表示するようにサイズを比例して変更します。
同様に,すべての "動的" 表示ウィンドウは,相対的な比率を維持するように自動的に調整されます。すべての標準ウィンドウは動的ですが,DISPLAY/NODYNAMIC コマンドで参照した場合は例外です。その場合には,あとで SET TERMINAL コマンドを実行した場合も,表示ウィンドウは現在のサイズのまま変化しません。しかし,DISPLAY コマンドを使用すると,表示ウィンドウを再構成できます ( また,BLUE-MINUS などのキーパッド・キーの組み合わせを使用して,定義済みの DISPLAY コマンドを入力することも可能です )。
関連コマンド
DISPLAY/[NO]DYNAMIC
EXPAND
(SET,SHOW,CANCEL) WINDOW
SHOW TERMINAL
DBG> SET TERMINAL/WIDTH:132 |
このコマンドは,端末画面幅を 132 欄に設定することを指定します。
特定のクラスの命令または指定されたイベントの発生時に,アドレス式で示された記憶位置にトレースポイントを設定します。
SET TRACE [address-expression[,...]]
[WHEN(conditional-expression)]
[DO(command[;...])]
address-expression
トレースポイントを設定するアドレス式 ( プログラム記憶位置 ) を指定します。高級言語の場合,これはたいていは行番号,ルーチン名,またはラベルです。値を一意に指定するパス名をいれることもできます。また,アドレス式はメモリ・アドレスまたはレジスタの場合もあります。数字 ( オフセット ) とシンボルで構成したり,1 つまたは複数の演算子,オペランド,または区切り文字で構成したりできます。アドレス式で使用できる演算子についての詳しい説明は,ヘルプ・トピック Address_Expressions を参照してください。ワイルドカード文字のアスタリスク (*) は使用できません。また次の修飾子を指定する場合は,アドレス式は指定できません。
/ACTIVATING
/BRANCH
/CALL
/EXCEPTION
/INSTRUCTION
/INSTRUCTION=(opcode[,...]) (VAX のみ)
/INTO
/[NO]JSB (VAX のみ)
/LINE
/OVER
/[NO]SHARE
/[NO]SYSTEM
/TERMINATING/MODIFY 修飾子と /RETURN 修飾子は,特定の種類のアドレス式に指定できます。
メモリ・アドレス,または値がシンボリック記憶位置でないアドレス式を指定する場合は,示しているメモリ・バイトで命令が実際に始まっているかを(EXAMINE コマンドを使用して) チェックしてください。命令がこのバイトで始まっていないと,そのバイトを持つ命令を実行したときに実行時エラーが発生します。値がシンボリック記憶位置でないアドレス式を指定してトレースポイントを設定しても,デバッガは指定された記憶位置が命令の開始位置を示しているかどうかをチェックしません。
VAX プロセッサの場合,CALLS ルーチンと CALLG ルーチンは,エントリ・マスクで始まります。
conditional-expression
現在設定されている言語で条件式を指定します。この式は実行がブレークポイントに達したときに評価されます。ブレークポイントが設定されたときではなく,実行がブレークポイントに達すると,デバッガは WHEN 句にある式の構文をチェックします。式が真であれば,デバッガは,ブレークポイントが発生したことを報告します。ブレーク・アクション (DO 句 ) がブレークポイントと関連付けられている場合は,同時に発生します。式が偽の場合は報告されません。また,DO 句によって指定されたコマンドは実行されず,プログラムの実行は続行されます。command
ブレーク・アクションが実行されたときに,DO 句の一部として実行されるデバッガ・コマンドを指定します。ブレークポイントが設定されたときではなく,DO 句が実行されると,デバッガは DO 句にある式の構文をチェックします。
/ACTIVATING
新しいプロセスがデバッガの制御下に置かれると,デバッガはトレースします。/TERMINATING 修飾子も参照してください。/AFTER:n
指定されたトレースポイントが n 回検出されるまで,トレース・アクションを実行しないことを指定します (nは 10 進整数です )。それ以降は,WHEN 句の条件 (指定された場合) が真,検出されるたびにトレースポイントが発生します。 SET TRACE/AFTER:1 コマンドは,SET TRACE と同じです。/BRANCH
デバッガは,プログラムの実行中に検出されるすべての分岐命令をトレースします。/INTO 修飾子と /OVER 修飾子も参照してください。/CALL
デバッガは,プログラムの実行中に呼び出し命令 ( 復帰命令を含む ) を検出するたびにトレースします。 /INTO 修飾子と /OVER 修飾子も参照してください。/EVENT=event-name
指定されたイベントが発生する ( 現在のイベント機能によってイベントが定義され,そのイベントが検出される ) と,デバッガがトレースします。アドレス式に /EVENT を指定すると,そのアドレス式に対して指定されたイベントが発生するたびにデバッガがトレースします。アドレス式に特定のイベント名を指定することはできません。イベント機能は,Ada ルーチンまたは SCAN ルーチンを呼び出すプログラムまたは POSIX Threads サービスを使用するプログラムで使用できます。現在のイベント機能および関連したイベント名を表示するには, SHOW EVENT_FACILITY コマンドを使用します。
/EXCEPTION
デバッガはシグナル通知されるすべての例外をトレースします。トレース・アクションは,アプリケーションで宣言した例外ハンドラが起動される前に実行されます。プログラムが例外を発生すると,SET TRACE/EXCEPTION コマンドの結果として,デバッガは例外を報告しその例外を再度シグナル通知します。その結果,アプリケーションで宣言した例外ハンドラを実行できます。
/INSTRUCTION
/INSTRUCTION[=(opcode[,...])] (VAX のみ)
命令コードを指定しないと,デバッガはプログラム実行中に検出されたすべての命令をトレースします。(VAX のみ ) 命令コードを 1 つまたは複数個指定すると,デバッガは,リスト内で指定したすべての命令コードをトレースします。
/INTO 修飾子と /OVER 修飾子も参照してください。
/INTO
(省略時の設定。) 次の修飾子で設定されているトレースポイント ( すなわち,アドレス式が明示的に指定されていない場合 ) にだけ指定できます。/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...]) (VAX のみ)
/LINE/INTO をこれらの修飾子といっしょに使用すると,デバッガは,呼び出されたルーチン内 ( 実行が現在中断されているルーチン内だけでなく ) の指定された箇所をトレースします。 /INTO 修飾子は省略時の設定であり,/OVERの反対です。
/INTO を使用する場合,/[NO]JSB,/[NO]SHARE,/[NO]SYSTEM の修飾子でトレース・アクションをさらに修飾できます。
/JSB
/NOJSB
(VAX のみ) の場合,/INTO を修飾します。 /INTO と次のいずれかの修飾子といっしょに使用します。/BRANCH
/CALL
/INSTRUCTION
/INSTRUCTION=(opcode[,...])
/LINE/JSB 修飾子は,DIBOL 以外のすべての言語における省略時の値です。これを指定すると,デバッガは,JSB 命令またはCALL 命令によって呼び出されるルーチン内にトレースポイントを設定します。 /NOJSB 修飾子 (DIBOL の省略時の設定 ) は,JSB 命令によって呼び出されるルーチン内でトレースポイントを設定しないことを指定します。 DIBOL の場合,アプリケーションで宣言したルーチンは CALL 命令によって呼び出され,DIBOL 実行時ライブラリ・ルーチンが JSB 命令によって呼び出されます。
/LINE
デバッガは,プログラム実行中にソース行が検出されるたびにその行の先頭をトレースします。/INTO 修飾子と /OVER 修飾子も参照してください。/MODIFY
指定されたアドレス式が示す記憶位置に命令が値を書き込んで変更したとき,デバッガはトレースを行います。通常の場合,アドレス式は変数名です。
前へ 次へ 目次 索引