前へ | 次へ | 目次 | 索引 |
#1 |
---|
DBG> EXAMINE Y %DEBUG-W-NOUNIQUE, symbol 'Y' is not unique DBG> SHOW SYMBOL Y data CHECK_IN\Y data INVENTORY\COUNT\Y DBG> SET SCOPE INVENTORY\COUNT DBG> EXAMINE Y INVENTORY\COUNT\Y: 347.15 DBG> |
この例では,最初の EXAMINE Y コマンドは,シンボル Y が何回も定義されており,現在の有効範囲検索リストでは解消できないことを示しています。SHOW SYMBOL コマンドは,宣言されているシンボル Y をすべて表示します。SET SCOPE コマンドは,INVENTORY モジュールの COUNT ルーチンでパス名接頭識別子のないシンボルを検索するようにデバッガに指示します。この結果,その次のEXAMINE コマンドは,Y を明確に解釈できます。
#2 |
---|
DBG> CANCEL SCOPE DBG> SET SCOPE/CURRENT 1 |
この例では,CANCEL SCOPE コマンドが省略時の有効範囲検索リスト(0,1,2,...,n)を復元します。次に SET SCOPE/CURRENT コマンドが有効範囲検索リストを 1,2,...,n に変更し,シンボル検索が有効範囲 1(すなわち,実行が現在中断しているルーチンを呼び出す側)で開始するようにします。定義済みソース表示 SRC と機械語命令ディスプレイ INST が更新され,実行が中断しているルーチンを呼び出す側のソースと命令を表示するようになります。
#3 |
---|
DBG> SET SCOPE 1 DBG> EXAMINE %R5 |
この例では,SET SCOPE コマンドは,有効範囲 1(すなわち,実行が中断しているルーチンを呼び出す側)でパス名接頭識別子のないシンボルを検索するようにデバッガに指示します。EXAMINE コマンドは,呼び出す側のルーチンのレジスタ R5 の値を表示します。SET SCOPE コマンドとともに /CURRENT を指定しないと,ソース表示または機械語命令ディスプレイは更新されません。
#4 |
---|
DBG> SET SCOPE 0, STACKS\R2, SCREEN |
このコマンドは,次の有効範囲検索リストに従ってパス名接頭識別子のないシンボルを検索するようにデバッガに指示します。これにより,デバッガは最初に PC 有効範囲(0 で示される)で検索します。ここで指定されたシンボルを見つけることができないと,STACKS モジュールの R2 ルーチンで探します。それでも見つからない場合は,SCREEN モジュール内を検索します。ここでも指定されたシンボルを見つけることができないと,デバッガはそれ以上は検索しません。
#5 |
---|
DBG> SHOW SYMBOL X data ALPHA\X ! global X data ALPHA\BETA\X ! local X data X(global) ! same as ALPHA\X DBG> SHOW SCOPE scope: 0 [ = ALPHA\BETA ] DBG> SYMBOLIZE X address ALPHA\BETA\%R0: ALPHA\BETA\X DBG> SET SCOPE \ DBG> SYMBOLIZE X address 00000200: ALPHA\X address 00000200:(global) X DBG> |
この例では,SHOW SYMBOL コマンドが,シンボル X に対して 2 つの宣言(グローバル ALPHA\X(2 回定義されている)とローカル ALPHA\BETA\X)があることを示します。現在の有効範囲では,X(ALPHA\BETA\X)のローカル宣言が可視状態にあります。有効範囲がグローバルな有効範囲(SET SCOPE \)に設定されたあとで,X のグローバル宣言が可視状態になります。
SEARCH コマンドの省略時の修飾子(/ALL または /NEXT,/IDENTIFIER または /STRING)を設定します。
SET SEARCH search-default[,...]
search-default
SEARCH コマンドの省略時の修飾子を指定します。次のキーワード(SEARCH コマンド修飾子と同じです)を指定できます。
ALL それ以降の SEARCH コマンドが SEARCH/NEXT ではなく SEARCH/ALL として扱われます。 IDENTIFIER それ以降の SEARCH コマンドが SEARCH/STRING ではなく SEARCH/IDENTIFIER として扱われます。 NEXT 省略時の設定。それ以降の SEARCH コマンドが SEARCH/ALL ではなく SEARCH/NEXT として扱われます。 STRING 省略時の設定。それ以降の SEARCH コマンドが SEARCH/IDENTIFIER ではなく SEARCH/STRING として扱われます。
SET SEARCH コマンドは,それ以降の SEARCH コマンドの省略時の修飾子を設定します。SET SEARCH に指定するパラメータは,SEARCH コマンドの修飾子と同じ名前です。これらの修飾子は,SEARCH コマンドが(1)その文字列のすべての出現箇所を検索するか(ALL)または次の出現箇所だけを検索するか(NEXT)を決定し,さらに(2)その文字列の任意の出現箇所を表示するか(STRING)または現在の言語で識別子の一部を構成できる文字によってどちら側にもつながっていない文字列の出現箇所だけを表示するか(IDENTIFIER)を決定します。1 つの SEARCH コマンドの実行中に,別の SEARCH 修飾子を指定すれば,現在の SEARCH の省略時の修飾子を上書きできます。現在の SEARCH の省略時の修飾子を表示するには,SHOW SEARCH コマンドを使用します。
関連コマンド
SEARCH
(SET,SHOW)LANGUAGE
SHOW SEARCH
DBG> SHOW SEARCH search settings: search for next occurrence, as a string DBG> SET SEARCH IDENTIFIER DBG> SHOW SEARCH search settings: search for next occurrence, as an identifier DBG> SET SEARCH ALL DBG> SHOW SEARCH search settings: search for all occurrences, as an identifier DBG> |
この例では,SET SEARCH IDENTIFIER コマンドが,指定された範囲内でその文字列が出現するところを検索するが,現在の言語の識別子の一部になれる文字によってどちらの側にもつながっていない場合だけ,その文字列を表示するようにデバッガに指示します。
SET SEARCH ALL コマンドは,指定された範囲内でその文字列が出現するところをすべて検索し表示します。
ソース・ファイルのディレクトリの検索リストと検索方法のどちらか一方,あるいは両方を指定します。
SET SOURCE directory-spec[,...]
directory-spec
ソース・ファイルを検索する場合に,省略時の設定としてデバッガが使用する OpenVMS ファイル指定部分(通常は装置/ディレクトリ)を指定します。ユーザが指定しない全ファイル指定の任意の部分については,モジュールのシンボル・レコードに格納されているファイル指定(すなわち,ソース・ファイルがコンパイル時に持っていたファイル指定)が使用されます。1 つの SET SOURCE コマンドでディレクトリを 2 つ以上指定すると,ソース・ディレクトリ検索リストが作成されます(プロセス・レベルで定義した検索リスト論理名を指定することもできます)。この場合,デバッガは指定された最初のディレクトリから順に検索し,ソース・ファイルを検索するかディレクトリ・リストが終るまで検索を続けます。
/DISPLAY
デバッガがソース・コードを使用するときに表示するディレクトリ検索リストを指定します。省略時の表示検索ディレクトリはコンパイル・ディレクトリです。/EDIT
デバッガが EDIT コマンドの実行中に使用するディレクトリ検索リストを指定します。省略時の編集検索ディレクトリはコンパイル・ディレクトリです。/EXACT(省略時の設定)
使用するディレクトリ検索方法を指定します。この修飾子を使用した場合,デバッガはデバッガ・シンボル・テーブルにあるバージョンと 正確に一致する バージョンのソース・ファイルを検索します。/LATEST
使用するディレクトリ検索方法を指定します。この修飾子を使用した場合,デバッガはソース・ファイルの 最新 バージョン,つまりディレクトリ内の一番大きい番号のバージョンを検索します。/MODULE=module-name
指定されたモジュール だけ に使用するディレクトリ検索リストを指定します。SET SOURCE/MODULE コマンドには,上に挙げた修飾子を追加することができます。/ORIGINAL
STDL プログラムにだけ適用される。別売レイヤード・プロダクトのコリレーション・ファシリティ(Correlation Facility)をインストールする必要があり,保持デバッガ(Kept Debugger)を起動する必要があります。デバッガが,STDLのコンパイル時に生成される中間ファイルではなく,元の STDL ソース・ファイルを表示するように指定します。
省略時の設定では,デバッガはソース・ファイルがコンパイル時に入っていたディレクトリ内にあると予想します。ソース・ファイルがコンパイルのあとに別のディレクトリに移動していた場合は,SET SOURCE コマンドを使用して,ファイルを見つけるためのディレクトリ検索リストとディレクトリ検索方法を指定します。OpenVMS システムのバージョン 6.1では,OpenVMS ファイルの完全指定は次の構成になっています。
node::device:[directory]file-name.file-type;version-number
この完全指定は,OpenVMS オペレーティング・システムとともに出荷される DECnet の省略時のバージョンで使用される DECnet ノード名機能を反映しています。詳しい説明は,『DECnet for OpenVMS Networking Manual』を参照してください。
OpenVMS バージョン 6.1 と DECnet-Plus for OpenVMS を稼動している OpenVMS システムでは,ファイルの完全指定に完全名という拡張ノード指定を含めることができます。完全名は,DECdns 命名サービスに格納することができる階層構造の DECnet-Plus for OpenVMS ノード名です。完全名は次の形式で最高 255 バイトまで可能です。
namespace:.directory ... .directory.node-name
この構文では,namespace にグローバル命名サービスを,directory ... .directory に命名サービス内の階層ディレクトリパスを,そして node-name に DECnet ノードを定義する特定のオブジェクトを指定します。
名前の体系を設定するための完全名と提案事項については,『Compaq OpenVMS システム管理者マニュアル』を参照してください。DECnet-Plus for OpenVMS については,『DECnet-Plus for OpenVMS Introduction and User's Guide』を参照してください。
ソース・ファイルのファイル完全指定が 255 文字を超えると,デバッガはファイルを検索できません。この問題を解決するには,まず論理名 "X"(DCL レベルで)を長いファイル指定に合わせて拡大するよう定義してから SET SOURCE X コマンドを使用します。
/DISPLAY 修飾子または /EDIT 修飾子のどちらもない SET SOURCE コマンドはディスプレイおよび編集検索ディレクトリの両方を変更します。
/DEBUG 修飾子を使用してプログラムをコンパイルする場合,ルート・ディレクトリ論理名を使用してソース・ファイルの記憶位置を指定するときは,それが 隠し ルート・ディレクトリ論理名でなければなりません。隠しルート・ディレクトリ論理名でない場合ソース・ファイルを他のディレクトリに移動すると,デバッガの SET SOURCE コマンドを使用してソース・ファイルの新しい記憶位置を指定することができません。
隠しルート・ディレクトリ論理名を作成するには,DCL の DEFINE コマンドに /TRANSLATION_ATTR=CONCEALED 修飾子を指定します。
SET SOURCE コマンドを実行する場合,2 つの修飾子 /LATEST と /EXACT のいずれかが必ず有効でなければなりません。これらの修飾子は,デバッガの検索方法に影響を与えます。/LATEST 修飾子は,最後に作成されたバージョン(ディレクトリ内の一番大きい番号のバージョン)を検索するようデバッガに指示します。/EXACT 修飾子は,最後にコンパイルされたバージョン(コンパイル時に作成されたデバッガ・シンボル・テーブルに記録されているバージョン)を検索するようデバッガに指示します。たとえば,SET SOURCE/LATEST コマンドはSORT.FOR;3 を検索し,SET SOURCE/EXACT コマンドは SORT.FOR;1 を検索するという具合です。
デバッガはディレクトリ検索リストを使用してバージョンを見つけると,作成日時,更新日時,ファイル・サイズ,レコード形式,およびファイル構成がコンパイル時の元のソース・ファイルと同じかどうかを調べます。これらがすべて一致した場合,デバッガは元のソース・ファイルが新しいディレクトリにそのままのバージョンで存在していると結論づけます。
デバッガはディレクトリ検索リストを使用してバージョンを見つけられないと,ソース・コードを初めて表示するときに,更新日時が最も近いファイル(そのようなファイルがディレクトリ内に存在している場合)を識別し,NOTORIGSRC メッセージ("original version of source file not found")を発行します。
ソース・コードの表示に使用するファイルが EDIT コマンドを使用して編集しようとしているファイルと異なる場合は,/EDIT 修飾子を指定しなければなりません。これは,Ada プログラムの場合に当てはまります。Ada プログラムの場合,(SET, SHOW, CANCEL)SOURCE コマンドは,ソース・ディスプレイに使用するファイル(Ada プログラム・ライブラリ内の"コピーされた"ソース・ファイル)の検索に影響を与えます。(SET, SHOW, CANCEL)SOURCE/EDIT コマンドは,EDIT コマンドを使用して編集するソース・ファイルの検索に影響を与えます。/EDIT とともに /MODULE を使用すると,/EDIT の効果を/MODULE で修飾することができます。
Ada プログラムについての詳しい説明は,ヘルプ・トピック Language_Support Ada を参照してください。
システムに別売レイヤード・プロダクトのコリレーション・ファシリティ(Cor relation Facility)をインストールしなければ,SET SOURCE コマンドに /ORIGINAL を修飾子を使用することはできません。デバッグ前にコリレーション・ライブラリを作成する方法については,コリレーション・ファシリティのドキュメントを参照してください。
次に,保持デバッガ(Kept Debugger)を起動して SET SOURCE/ORIGINAL コマンドを次のように実行します。
$ DEBUG/KEEP DBG> SET SOURCE/ORIGINAL DBG> RUN filename.EXE
以上のコマンドを実行すると,他のサポート言語のプログラムと同じように STDL ソース・コードをデバッグすることができるようになります。
関連コマンド
(SHOW,CANCEL)SOURCE
#1 |
---|
DBG> SHOW SOURCE no directory search list in effect DBG> SET SOURCE [PROJA],[PROJB],[PETER.PROJC] DBG> SHOW SOURCE source directory list for all modules, match the latest source file version: [PROJA] [PROJB] [PETER.PROJC] |
この例では SET SOURCE コマンドによって,デバッガがディレクトリ [PROJA],[PROJB],[PETER.PROJC] をこの順に検索してソース・ファイルの最新バージョンを検索するようにしています。
#2 |
---|
DBG> SET SOURCE/MODULE=CTEST/EXACT [],SYSTEM::DEVICE:[PROJD] DBG> SHOW SOURCE source directory search list for CTEST, match the exact source file version: [] SYSTEM::DEVICE:[PROJD] source directory list for all other modules, match the latest source file version: [PROJA] [PROJB] [PETER.PROJC] |
前の例の続きのこの例では,SET SOURCE/MODULE=CTEST コマンドによって,デバッガが現在の省略時のディレクトリ([]),SYSTEM::DEVICE:[PROJD] の順にソース・ファイルを検索し,CTECT モジュールで使用できるようにしています。/EXACT 修飾子は,デバッグ・シンボル・テーブルにあるバージョンと正確に一致するバージョンの CTEST ソース・ファイルを検索するように指定しています。
#3 |
---|
DBG> SET SOURCE /EXACT DBG> SHOW SOURCE no directory search list in effect, match the exact source file DBG> SET SOURCE [JONES] DBG> SHOW SOURCE source directory list for all modules, match the exact source file version: [JONES] DBG> CANCEL SOURCE /EXACT DBG> SHOW SOURCE source directory list for all modules, match the latest source file version: [JONES] |
この例では,最初の SET SOURCE/EXACT コマンドで設定した検索方法(一致バージョンの検索)は,SET SOURCE [JONES] コマンドでもそのまま有効です。CANCEL SOURCE/EXACT コマンドは,SET SOURCE/EXACT コマンドを取り消し,さらに SET SOURCE [JONES] に影響を与えています。
前へ | 次へ | 目次 | 索引 |