日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 部:デバッガ概要
第 1 章:デバッガ概要
第 2 部:コマンド・インタフェース
第 2 章:デバッガの起動
第 3 章:プログラム実行の制御とモニタ
第 4 章:プログラム・データの検査と操作
第 5 章:プログラム内シンボルへのアクセス制御
第 6 章:ソース・コードの表示の制御
第 7 章:画面モード
第 3 部:DECwindows インタフェース
第 8 章:DECwindows Motifインタフェースの概要
第 9 章:デバッグ・セッションの開始と終了
第 10 章:デバッガの使用方法
第 4 部:PC クライアント・インタフェース
第 11 章:デバッガの PC クライアント/サーバ・インタフェースの概要
第 5 部:高度なトピック
第 12 章:ヒープ・アナライザの使用
第 13 章:その他の便利な機能
第 14 章:特殊なデバッグ
第 15 章:マルチプロセス・プログラムのデバッグ
第 16 章:タスキング・プログラムのデバッグ
第 6 部:付録
付録 A :定義済みのキー機能
付録 B :組み込みシンボルと論理名
付録 C :各言語に対するデバッガ・サポートの要約
付録 D :EIGHTQUEENS.C
索引
PDF
OpenVMS ホーム

HP OpenVMS
デバッガ説明書


目次 索引

付録 B
組み込みシンボルと論理名

この付録では,デバッガのすべての組み込みシンボルと論理名を示します。

B.1 SS$_DEBUG 条件

SS$_DEBUG (SYS$LIBRARY:STARLET.OLB で定義される ) は,プログラムからデバッガを起動するようにシグナル通知する場合の条件です。プログラムから SS$_DEBUG をシグナル通知するのは,Ctrl/Y を押したあとに DCL コマンド DEBUG を入力することと同じです。

コマンドを SS$_DEBUG とともにシグナル通知して,デバッガにコマンドを渡すことができます。デバッガに実行させたいコマンドの形式は, DBG> プロンプトに対して入力するコマンドの形式と同じにしてください。複数のコマンドを指定する場合は,セミコロンで区切らなければなりません。また,コマンドは ASCIC 文字列として参照渡しで渡さなければなりません。 ASCIC 文字列を作成する方法についての詳しい説明は,各言語のドキュメントを参照してください。

たとえば,プログラムのある地点でデバッガを起動して SHOW CALLS コマンドを入力するには,次のコードをプログラムに挿入します ( BLISS の例 )。

LIB$SIGNAL(SS$_DEBUG, 1, UPLIT BYTE(%ASCIC 'SHOW CALLS')); 

SS$_DEBUG の定義は,言語により STARLET ファイルまたは SYSDEF ファイル ( たとえば,BLISS の STARLET.L32,または Fortran の FORSYSDEF.TLB ) からコンパイルするときに得ることができます。また,リンク時に SYS$LIBRARY:STARLET.OLB から SS$_DEBUG の定義を得ることもできますが,この方法はなるべく使用しないでください。

B.2 論理名

デバッガ固有の論理名を次の表に示します。

論理名 機能
DBG$DECW$DISPLAY HP DECwindows Motif for OpenVMS を実行しているワークステーションにだけ適用される。デバッガ・インタフェース ( HP DECwindows Motif for OpenVMS またはコマンド ) またはディスプレイ装置を指定する。省略時の設定: DBG$DECW$DISPLAY は未定義であるか,またはアプリケーション単位の論理名 DECW$DISPLAY 定義と同じ定義である。

HP DECwindows Motif for OpenVMS 環境でデバッガの省略時のインタフェースを変更するために,DBG$DECW$DISPLAY を使用する方法については, 第 9.8.3 項 を参照。
DBG$IMAGE_DSF_PATH (Alpha および Integrity のみ) デバッグするイメージの .DSF ( デバッグ・シンボル・テーブル ) ファイルを格納するディレクトリを指定する。各 .DSF ファイルのファイル名は,デバッグするイメージのファイル名と同じでなければならない。 .DSF ファイルの作成の詳細については, 第 5.1.5 項 を参照。
DBG$INIT デバッガの初期化ファイルを指定する。省略時の設定では,デバッガの初期化ファイルはない。 DBG$INIT は,検索リストだけでなく,ファイルの完全指定でも部分指定でもよい。デバッガの初期化ファイルについての詳しい説明は, 第 13.2 節 を参照。
DBG$INPUT デバッガの入力装置を指定する。省略時の設定は SYS$INPUT である。DBG$INPUT と DBG$OUTPUT を使用して 2 つの端末で画面用プログラムをデバッグする方法についての詳しい説明は, 第 14.2 節 を参照。

DBG$INPUT は HP DECwindows Motif for OpenVMS ユーザ・インタフェースでは無視される ( DBG$DECW$DISPLAY を参照 )。DECterm ウィンドウでデバッガのコマンド・インタフェースを表示中であれば,DBG$INPUT を使用できる。

DBG$OUTPUT デバッガの出力装置を指定する。省略時の設定は SYS$OUTPUT である。DBG$INPUT と DBG$OUTPUT を使用して 2 つの端末で画面用プログラムをデバッグする方法については, 第 14.2 節 を参照。

HP DECwindows Motif for OpenVMS ユーザ・インタフェースでは DBG$OUTPUT は無視される (DBG$DECW$DISPLAY を参照)。 DECterm ウィンドウでデバッガのコマンド・インタフェースを表示中であれば, DBG$OUTPUT を使用できる。

SSI$AUTO_ACTIVATE ( Alpha のみ ) システム・サービス・インターセプション (SSI) が有効であるかどうか指定する。ウォッチポイントで問題がある場合は,次の DCL コマンドを入力し,SSI を無効にする。
 $DEFINE SSI$AUTO_ACTIVATE OFF

静的ウォッチポイント,AST,システム・サービス・インターセプションの相互関係については,SET WATCH の説明を参照。

論理名に値を割り当てるには,DCL コマンド DEFINE または ASSIGN を使用します。たとえば,次のコマンドは,デバッガの初期化ファイルの記憶位置を指定します。

$ DEFINE DBG$INIT DISK$:[JONES.COMFILES]DEBUGINIT.COM

論理名 DBG$INPUT については,次の点に注意してください。ファイル ( たとえば PROG_IN.DAT ) から入力を得るプログラムおよび,端末からデバッガ入力を得るプログラムをデバッグする場合は,次のように定義してから,デバッガを起動しなければなりません。

$ DEFINE SYS$INPUT PROG_IN.DAT
$ DEFINE/PROCESS DBG$INPUT 'F$LOGICAL("SYS$COMMAND")

すなわち,SYS$COMMAND の変換を指すように DBG$INPUT を定義します。 SYS$COMMAND を指すように DBG$INPUT を定義すると,デバッガは PROG_IN.DAT ファイルから入力を得ようとします。

B.3 組み込みシンボル

デバッガの組み込みシンボルは,プログラムの要素と値を指定するオプションです。

デバッガのほとんどの組み込みシンボルには,パーセント記号接頭辞 (%) があります。

この付録では,次のシンボルについて説明します。

  • %NAME---識別子を作成する。

  • %PARCNT---コマンド・プロシージャ内で使用し,渡すパラメータを数える。

  • %DECWINDOWS---デバッガ・コマンド・プロシージャ内または初期化ファイル内で使用し,デバッガのコマンド・インタフェースと HP DECwindows Motif for OpenVMS ユーザ・インタフェースのどちらが表示されるかを示す。

  • %BIN, %DEC, %HEX, %OCT---入力基数を制御する。

  • ピリオド(.),Return キー,サーカンフレックス (^),バックスラッシュ(\), %CURLOC,%NEXTLOC,%PREVLOC,%CURVAL---連続したプログラム記憶位置および要素の現在の値を指定する。

  • + 記号(+),- 記号(-),乗算記号 (*),除算記号(/),アットマーク (@),ピリオド(.),ビット・フィールド演算子 ( <p,s,e> ),%LABEL,%LINE,バックスラッシュ (\)-アドレス式の演算子として使用する。

  • %ADAEXC_NAME,%EXC_FACILITY,%EXC_NAME,%EXC_NUMBER, %EXC_SEVERITY---例外についての情報を入手するのに使用する。

  • %CURRENT_SCOPE_ENTRY,%NEXT_SCOPE_ENTRY, %PREVIOUS_SCOPE_ENTRY---呼び出しスタックに対して現在の有効範囲,次の有効範囲,前の有効範囲を指定する。

  • Alpha プロセッサの場合

    • %R0 〜 %R28,%FP,%SP,%R31,%PC,%PS --- Alpha 汎用レジスタを指定する。

    • %F0 〜 %F30,%F31 --- Alpha 浮動小数点レジスタを指定する。

  • Integrity プロセッサの場合

    • %R0 〜 %R127,%GP,%SP,%TP,%AP,%OUT0 〜 %OUT7 --- Integrity 汎用レジスタを指定する。

    • %F0 〜 %F127 --- Integrity 浮動小数点レジスタを指定する。

    • P0 〜 %P63,%PR --- Integrity プレディケート・レジスタを指定する。

    • %B0 〜 %B7,%RP --- Integrity 分岐レジスタを指定する。

    • %AR0 〜 %AR7,%AR17 〜 %AR19,%AR32,%AR36,%AR40, %AR64 〜 %AR66,%KR0 〜 %KR7,%RSC,%BSP,%RNAT,%CCV,%UNAT, %FPSR,%PFS,%LC,%EC,%CSD,%SSD --- Integrity アプリケーション・レジスタを指定する。

    • %CR0 〜 %CR2,%CR8,%CR16,%CR17,%CR19 〜 %CR25,%CR64, %CR66,%CR68 〜 %CR74,%CR80,%CR81,%DCR,%ITM,%IVA, %PTA,%PSR,%IPSR,%ISR, %IIP, %IFA,%ITIR,%IIPA,%IFS, %IIM,%IHA,%LID,%TPR,%IRR0 〜 %IRR3,%ITV,%PMV, %CMCV,%IRR0 〜 %IRR3 --- Integrity コントロール・レジスタを指定する。

    • %SR0,%IH,%PREV_BSP,%PC,%IP,%RETURN_PC,%CFM, %NEXT_PFS,%PSP,%CHTCTX_ADDR,%OSSD,%HANDLER_FV, %LSDA,%UM --- Integrity 特殊レジスタを指定する。

  • %ADDR,%DESCR,%REF,%VAL---CALL コマンドの引数受け渡し方式を指定する。コマンド・ディクショナリの CALL コマンドの説明を参照。

  • %PROCESS_NAME,%PROCESS_PID,%PROCESS_NUMBER,%NEXT_PROCESS, %PREVIOUS_PROCESS,%VISIBLE_PROCESS---マルチプロセス・プログラムで使用するプロセスを指定する。 第 15.16.1 項 を参照。

  • %ACTIVE_TASK,%CALLER_TASK,%NEXT_TASK,%PREVIOUS_TASK,%TASK, %VISIBLE_TASK---タスキング・プログラムまたはマルチスレッド・プログラムのタスクまたはスレッドを指定する。 第 16.3.4 項 を参照。

  • %PAGE,%WIDTH---現在の画面の高さと幅を指定する。 第 7.11.1 項 を参照。

  • %SOURCE_SCOPE,%INST_SCOPE---画面モードでソース表示と機械語命令ディスプレイの有効範囲を指定する。それぞれ 第 7.4.1 項第 7.4.4 項 を参照。

  • %CURDISP,%CURSCROLL,%NEXTDISP,%NEXTINST,  %NEXTOUTPUT,%NEXTSCROLL,%NEXTSOURCE---表示リスト中の表示を指定するため画面モードで使用する。 第 7.11.2 項 を参照。



B.3.1 レジスタの指定

VAX レジスタ,Alpha レジスタ,または Integrity レジスタのデバッガ組み込みシンボルは,レジスタ名の前にパーセント記号 (%) がついたものです。レジスタ・シンボルを指定する場合,同じ名前のシンボルをプログラムが宣言していなければパーセント記号 (%) を前につける必要はありません。

すべてのレジスタの内容を検査できます。また,SP を除くすべてのレジスタに値を格納することもできます。ただし,FP に値を格納するときは注意してください。

表 B-1 に Alpha レジスタ・シンボルを示します。

表 B-1 Alpha レジスタのデバッガ・シンボル (Alpha のみ)
シンボル 機能
Alpha 整数レジスタ
%R0...%R28 レジスタ R0...R28
%FP (%R29) スタック・フレーム基底レジスタ (FP)
%SP (%R30) スタック・ポインタ (SP)
%R31 ReadAsZero/Sink (RZ)
%PC プログラム・カウンタ (PC)
%PS プロセッサ・ステータス・レジスタ (PS)。組み込みシンボル %PSL と %PSW は Alpha プロセッサでは使用できない。
Alpha 浮動小数点レジスタ
%F0...%F30 レジスタ F0...F30
%F31 ReadAsZero/Sink

デバッガには,画面モードのレジスタ表示は用意されていません。

Alpha プロセッサの場合

  • R31 レジスタや F31 レジスタには値を格納できない。この 2 つのレジスタには,永久的に値 0 が割り当てられている。

  • ベクタ・レジスタがない。

Alpha 汎用レジスタについての詳しい説明は, 第 4.4 節第 4.4.1 項 を参照してください。

表 B-2 に,Integrity レジスタのシンボルを示します。

表 B-2 Integrity レジスタのデバッガ・シンボル (Integrity のみ)
シンボル 説明
Integrity アプリケーション・レジスタ
%KR0...%KR7 カーネル・レジスタ 0...7
%RSC (%AR16) レジスタ・スタック・コンフィギュレーション
%BSP (%AR17) バッキング・ストア・ポインタ
%BSPSTORE (%AR18) メモリ・ストア用バッキング・ストア・ポインタ
%RNAT (%AR19) RSE NaT コレクション
%CCV ($AR32) 比較交換での比較値
%UNAT (%AR36) ユーザ NaT コレクション
%FPSR (%AR40) 浮動小数点ステータス
%PFS (%AR64) 以前のファンクション状態
%LC (%AR65) ループ・カウント
%EC (%AR66) エピローグ・カウント
%CSD コード・セグメント
%SSD スタック・セグメント
コントロール・レジスタ
%DCR (%CR0) デフォルト・コントロール
%ITM (%CR1) インターバル・タイマ・マッチ (SCD でのみ参照可能)
%IVA (%CR2) 割り込みベクタ・アドレス (SCD でのみ参照可能)
%PTA (%CR8) ページ・テーブル・アドレス (SCD でのみ参照可能)
%PSR (%CR9, %ISPR) 割り込みプロセッサ・ステータス
%ISR (%CR17) 割り込みステータス
%IIP (%CR19) 割り込み命令ポインタ
%IFA (%CR20) 割り込みフォルト・アドレス
%ITIR (%CR21) 割り込み TLB 挿入
%IIPA (%CR22) 割り込み命令前アドレス
%IFS (%CR23) 割り込みファンクション状態
%IIM (%CR24) 割り込み即値
%IHA (%CR25) 割り込みハッシュ・アドレス
%LID (%CR64) ローカル割り込み ID (SCDでのみ参照可能)
%TPR (%CR66) タスク・プライオリティ (SCDでのみ参照可能)
%IRR0...%IRR3 (%CR68...%CR71) 外部割り込み要求 0...3 (SCDでのみ参照可能)
%ITV (%CR72) インターバル・タイマ (SCDでのみ参照可能)
%PMV (%CR73) パフォーマンス監視 (SCDでのみ参照可能)
%CMCV (%CR74) 訂正済みマシン・チェック・ベクタ (SCDでのみ参照可能)
%IRR0 および %IRR1 (%CR80 および %CR81) ローカル・リダイレクション 0:1 (SCDでのみ参照可能)
特殊レジスタ
%IH (%SR0) インボケーション・ハンドル
%PREV_BSP 以前のバッキング・ストア・ポインタ
%PC (%IP) プログラム・カウンタ (命令ポインタ | スロット番号)
%RETURN_PC リターン・プログラム・カウンタ
%CFM 現在のフレーム・マーカ
%NEXT_PFS 前々回のファンクション状態
%PSP 以前のスタック・ポインタ
%CHFCTX_ADDR コンディション・ハンドリング・ファシリティ・コンテキスト・アドレス
%OSSD オペレーティング・システム固有データ
%HANDLER_FV ハンドラ・ファンクション値
%LSDA 言語固有データ領域
%UM ユーザ・マスク
プレディケート・レジスタ
%PR (%PRED) プレディケート・コレクション・レジスタ---%P0...%P63 の集まり
%P0...%P63 プレディケート (1 ビット) レジスタ 0...63
分岐レジスタ
%RP (%B0) リターン・ポインタ
%B1...%B7 分岐レジスタ 1...7
汎用整数レジスタ
%R0 汎用整数レジスタ 0
%GP (%R1) グローバル・データ・ポインタ
%R2...%R11 汎用整数レジスタ 2...11
%SP (%R12) スタック・ポインタ
%TP (%R13) スレッド・ポインタ
%R14...%R24 汎用整数レジスタ 14...24
%AP (%R25) 引数情報
%R26...%R127 汎用整数レジスタ 26...127
出力レジスタ
%OUT0...%OUT7 出力レジスタ,実行時別名 (たとえば,フレームが出力レジスタに割り当てられた場合, %OUT0 は,最初に割り当てられた出力レジスタ,たとえば %R38 に対応する)。
汎用レジスタ
%GRNAT0 および %GRNAT1 それぞれ 64 ビットの汎用レジスタの NAT (Not A Thing) コレクション・レジスタ。たとえば %GRNAT0<3,1,0> は,%R3 の NAT ビット。
浮動小数点レジスタ
%F0...%F127 浮動小数点レジスタ 0...127

Integrity レジスタについての詳細は, 第 4.4 節 および 第 4.4.2 項 を参照してください。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項