ありがたい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を答えればよい。