コマンド

72. デバックのときだけに有効なコマンドを作成するには

デバッグ環境のときのみに使うコマンドを作成するには
コマンドの一時変更プログラムで現在の環境を調べて
デバッグ環境でなければエラーにするというような
難しいことをする必要はない。
 
 
コマンド作成時の CRTCMD コマンドで
「有効なモード」を *DEBUGと指定してコンパイルするだけでよい。

                             コマンド作成  (CRTCMD)                           
                                                                              
 選択項目を入力して,実行キーを押してください。                               
                                                                              
 コマンド  . . . . . . . . . . . > EVAL           名前                        
  [bボ[メー  . . . . . . . . . . . >   CHAO.COM     名前 , *CURLIB              
 コマンドを処理するプログラム    > EVALCL         名前 , *REXX                
  [bボ[メー  . . . . . . . . . . . >   CHAO.COM     名前 , *LIBL, *CURLIB       
 ソース・ファイル  . . . . . . . > QCMDSRC        名前                        
  [bボ[メー  . . . . . . . . . . . >   R710SRC      名前 , *LIBL, *CURLIB       
 ソース・メンバー  . . . . . . .   *CMD           名前 , *CMD                 
 スレッド・セーフ  . . . . . . .   *NO           *YES, *NO, *COND             
 マルチスレッド・ジョブの処置      *SYSVAL       *SYSVAL, *RUN, *MSG, *NORUN  
 テキスト ' 記述 ' . . . . . . .   *SRCMBRTXT                                 
妥当性検査プログラム  . . . . .   *NONE          名前 , *NONE         
 ライブラリー  . . . . . . . . . . .                  名前 , *LIBL, *CURLIB
有効なモード  . . . . . . . . . > *DEBUG        *ALL, *PROD, *DEBUG, *SERVICE
               値の続きは+                                                  
実行可能な環境  . . . . . . . .   *ALL          *ALL, *BATCH, *INTERACT...   
               値の続きは+                                                  
制限ユーザー可能  . . . . . . .   *NO           *NO, *YES                    
最大定位置パラメーター数  . . .   *NOMAX        0-75, *NOMAX                 
プロンプト・テキスト 用 メッセージ・ファイル:                                                 
  メッセージ・ファイル  . . . .   *NONE          名前 , *NONE                
   ライブラリー  . . . . . . . . . .                  名前 , *LIBL, *CURLIB       
  メッセージ・テキスト  . . . .                 *STATIC, *DYNAMIC            
メッセージ・ファイル  . . . . .   QCPFMSG        名前                        
 ライブラリー  . . . . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB       
ヘルプ・ブックシェルフ  . . . .   *NONE          名前 , *NONE, *LIST         
ヘルプ・パネル・グループ  . . .   *NONE          名前 , *NONE                
 ライブラリー  . . . . . . . . . . .                  名前 , *LIBL, *CURLIB       
ヘルプ ID . . . . . . . . . . .   *NONE          文字値 , *CMD, *NONE        
ヘルプ検索見出し  . . . . . . .   *NONE          名前 , *NONE             
 ライブラリー  . . . . . . . . . . .                  名前 , *LIBL, *CURLIB    
現行ライブラリー  . . . . . . .   *NOCHG         名前 , *NOCHG, *CRTDFT   
実行ライブラリー  . . . . . . .   *NOCHG         名前 , *NOCHG, *NONE     
プロンプト一時変更プログラム      *NONE          名前 , *NONE             
 ライブラリー  . . . . . . . . . . .                  名前 , *LIBL, *CURLIB    
権限  . . . . . . . . . . . . . > *ALL           名前 , *LIBCRTAUT, *USE..
コマンドの置き換え  . . . . . .   *YES          *YES, *NO                 
GUI 使用可能  . . . . . . . . .   *NO           *YES, *NO                                                                                               

[コンパイル]

CRTCMD CMD(CHAO.COM/EVAL) PGM(CHAO.COM/EVALCL) SRCFILE(R710SRC/QCMDSRC) M
ODE(*DEBUG) AUT(*ALL)

[解説]

このように *DEBUGとして有効なモードを指定してコンパイルすると
デバッグ・モードでない状態でコマンドを起動しようとすると

                          変数値の表示 FOR AI (EVAL)     
                                                         
選択項目を入力して,実行キーを押してください。           
                                                         
変数名  . . . . . . . . . . . .                  文字値  
                                                         

このモードではコマンド EVAL は正しくない。

としてエラー・メッセージが表示される。