- 「メインフレーム・コンピューター」で遊ぼう - http://www.arteceed.net -

ありがたいOSコマンド集(SLIPコマンド)

SLIPコマンド設定状況の表示

    D SLIP
    D SLIP=id
    

    SLIPトラップの設定状況を一覧で表示する。idを指定すればそのSLIPトラップに関する詳細を表示する。


SLIPコマンド・サンプル集

    SLIP SET,ID=xxxx,C=0C6,A=SVCD,J=jobname,
             SDATA=(ALLPSA,NUC,SQA,LPA,CSA,RGN,SUM,TRT),END
    SLIP SET,ID=xxxx,C=U1022,A=SVCD,J=jobname,END
    
    SL SET,SA,ID=xxxx,A=SVCD,RA=(357C0,35800),DATA=(357C0,EQ,F0F0F0F0),
              ASIDSA='jobname',END
    SL SET,SA,ID=xxxx,A=SVCD,RA=(1E1CE4C,1E1CE4F),DATA=(1E1CE4C,NE,00000000),
              J=jobname,PRCNTLIM=99,END
              ~~~~~~~~~~~
              CPU使用率上限
    SL SET,SA,ID=xxxx,A=TRACE,TD=(STD,REGS),RA=102A24,J=jobname,END
    SL SET,SA,ID=xxxx,A=TRACE,RANGE=(11B4EE,11B4EF),DATA=(11B4EE,EQ,6F),
              MATCHLIM=999,J=jobname,END
              ~~~~~~~~~~~~
              トラップ一致回数上限
    

    最初の2つはABEND時にSVCダンプを採るためのためのSLIPである。SDATAでダンプする範囲を選択できる。
    次の2つはPERトラップのSA(記憶域変更)である。J=またはASIDSA=で指定したジョブ空間の、RA=で指定した仮想アドレスが、DATA=で指定した値に書き換わったらダンプを採る。DATA=(357C0,EQ,F0F0F0F0)は357C0番地がC’0000’に書き換えられたらトラップに掛かる。DATA=(1E1CE4C,NE,00000000)は1E1CE4C番地がX’00000000’でなくなったら(元々x00000000の所に何かを書き込んだら)トラップに掛かる。PRCNTLIMはPERトラップに使われるCPU使用率の上限である。99はどんなにCPUを使ってもPERトラップを掛けることを示す。
    残りの2つはSVCダンプの採取ではなくGTFトレースへの出力である。PERトラップに掛かるとSLIPトレースレコードが書き込まれます。頻繁に起きるPER事象はダンプよりトレースが向いている。DATAパラメーターがないのでRAで指定されたアドレスが更新されるとトレースが出る。次の例は指定したアドレスがx6Fに書き換わったらトレースを出す。トレースデータには追加でレジスターの内容も出力する。MATCHLIMで999回トラップしたらSLIPを無効にする。

    SAトラップはメモリーが破壊される、と言うプログラム・トラブルを解決するためにとても有効な機能である。「ここが壊されるからプログラムがおかしくなる」ことまではわかっても、「誰がいつ壊すかがまったくわからない」と言う場合の救世主である。SAの他にIF(命令取り出し)、SB(分岐成功)もあるが一度も使ったことはない。内容から想像すると使うにはちょっと勇気がいる。なおPERトラップは複数設定できない。誰かがPERトラップを設定していたらあきらめるか、その人に止めてもらうしかない。

    SLIPトラップを消すときは、SLIP DEL,ID=id コマンドで削除すればよい。


複数のメモリー範囲にSAトラップを掛ける例

    SL SET,SA,J=jobname,A=SVCD,RA=(15E000,326FFF),ID=xxxx
    
     *45 IEE726D ENTER ADDITIONAL SLIP PARAMETERS, 'END', OR 'CANCEL'
    R 45,DATA=(15E09C,EQ,D2E8
    
     *46 IEE726D ENTER ADDITIONAL SLIP PARAMETERS, 'END', OR 'CANCEL'
    R 46,1AA09C,EQ,D2E8
    
    以下同様
    R nn,1F609C,EQ,D2E8
    R nn,24209C,EQ,D2E8
    R nn,28E09C,EQ,D2E8
    R nn,2DA09C,EQ,D2E8
    
    最後で括弧を閉じる
    R nn,32609C,EQ,D2E8)
    
     *nn IEE726D ENTER ADDITIONAL SLIP PARAMETERS, 'END', OR 'CANCEL'
    R nn,END
    
     *nn IEE604D SLIP ID=xxxx WILL MATCH ON ADDRESS AND DATA SPACE STORES.
    R nn,OK
    
     *nn IEE831D SLIP TRAP ID=xxxx PER RANGE (001AA000,003AA000) EXCEEDS 1M OR WRAPS.
    R nn,OK
    

    DATAパラメーターを一回で閉じないで何度も追加して答えていけばよい。
    他のパラメーターも含め、1行で足りなければ、パラメーターを分けて入力する。最終パラメーターの行にENDを付けるか、最後にENDを答えればよい。