日本-日本語 |
|
|
|
OpenVMS マニュアル |
日本語HP DECprint Supervisor for OpenVMS
|
目次 | 索引 |
装置制御ライブラリには,PostScriptプログラムをデバッグするのに役立つエラー・ハンドラが登録されています。エラー・ハンドラは出力の最後のページを印刷するとともに,エラーを特定するための情報も提供します。
エラー・ハンドラは通常のプリント・ジョブに自動的に組み込まれるわけではありません(システム管理者がこの省略時の設定を変更した場合を除きます)。したがって,次の方法でエラー・ハンドラを明示的に起動しなければなりません。
17.1 プリント・ジョブへのエラー・ハンドラの組み込み
$ PRINT /SETUP=LPS$ERRORHANDLER file-name |
エラー・ハンドラはPostScriptメッセージを返します。 第 18 章 に説明するように, /PARAMETERS=MESSAGES修飾子を使用すれば,これらのメッセージをファイルまたはプリンタに送信することができます。次の例を参照してください。
$ PRINT /QUEUE=PS40$A10 /PARAMETERS=MESSAGES=KEEP FILE.PS |
PostScriptアプリケーションを開発する場合には,
第 13 章 の説明に従って,エラー・ハンドラ・セットアップ・モジュールを含むようにフォームを定義することにより,エラー・ハンドラをより簡単に起動することができます。
17.2 エラー・ハンドラがPostScript環境に与える影響
エラー・ハンドラはユーザ・プログラムで変更された可能性のある定義を使用するのではなく,ディクショナリ systemdict からオペレータを参照します。
場合によっては,エラー・ハンドラがロードされるときに,プログラムが異なる動作を実行する可能性があります。たとえば,PostScriptサーバ・ループ・コンテキストの外部で exit
オペレータを実行すると,エラー・ハンドラがロードされていない場合には, invalidexit
エラーが発生します。しかし,エラー・ハンドラがロードされている場合には,プログラムは正しく終了し,エラーは発生しません。
17.3 エラー・ハンドラの例
例 17-1 に示すログ・ファイルの例は,次の PostScriptプログラムを対象にしています。
[/1st-level [/2nd-level [/3rd-level [/4th-level 56 ] ] ] (end)] /myproc { [ 8 8 ] 0 0 div setdash } def 100 200 moveto myproc |
次のコマンドにはエラー・ハンドラが指定されており,ログ・ファイルが作成されます。
$ PRINT /PARAMETERS=MESSAGES=KEEP /SETUP=LPS$ERRORHANDLER filename |
例 17-1 では,プログラムを実行したときにログ・ファイルに追加されるエラー・ハンドラからの出力を示しています。
例 17-1 エラー・ハンドラによって作成されるログ・ファイルの例 |
---|
ERROR: undefinedresult (1) OFFENDING COMMAND: div (2) OPERAND STACK: (3) 0 0 [ 8 8 ] [/1st-level [/2nd-level [/3rd-level -array- ] ] (end) ] EXECUTION STACK: (4) { setdash } GRAPHICS STATE: (5) Current Matrix: [ 4.16667 0.0 0.0 -4.16667 0.0 3298.0 ] Color: 0.0 Current position: x = 100.0, y = 200.0 Line width: 1.0 Line cap: 0 Line join: 0 Flatness: 1.0 Miter limit: 10.0 Dash pattern: [ ] 0.0 |
ここに示したサンプル・ファイルの先頭に定義されている配列には,最初の要素としてその配列自体を示すポインタが含まれています。これは3レベルの深さに展開されます。配列の最も内部のバージョンは単に--array--として表現されます。
17.4 エラー・ハンドラからの出力の解読
エラーが発生した場合には,エラー・ハンドラは showpage コマンドを実行し,出力の最後のページを印刷します ( 例 17-1 を参照)。また,次の情報も出力します。
現在の変換マトリックス
カラー(currentgray の値)
現在の位置
線幅
線端の形状
線の結合部の形状
平滑さ
結合部の限度
破線のパターン
PostScriptコードでエラーを検出した場合には,ファイルを作成したアプリケーションを変更するか,またはアプリケーション・プログラマに問題を通知しなければなりません。
17.5 PostScriptデータの出力形式
PostScriptデータは,通常はPostScriptソース・ファイルに記述されたとおりに表現されますが,エラー・ハンドラがPostScriptデータを特別に表現することもあります。
--array-- 通常の配列の場合
--proc-- 実行可能配列の場合
--packedarray-- パックされた配列の場合
--packedproc-- パックされた実行可能配列の場合
PostScript言語は,エラー・ハンドラでは認識できない新しいデータ・フォーマットを含むように拡張できます。認識できないフォーマットのデータは2つの引用符と認識できないデータ・フォーマットの名前として表現されます。
PostScriptストリームのどこでエラーが発生したかを正確に判断することは困難であり,不可能な場合もあります。これは,実行スタックがコンテキストをユニークに識別できない可能性があるからです。この場合には,診断情報をPostScriptファイルに追加することができます。たとえば,エラーが showpage
定義に関連しているように思われる場合には,次に示すようにPostScriptコードを変更します。
17.6 エラー発生箇所の判定
/myshowpage { (At the top of my showpage\n) print flush % some PostScript code (Just before real showpage call\n) print flush showpage } def |
目次 | 索引 |
|