Ghostscript のエラーメッセージが不親切なので

Ghostscript のエラーメッセージは、例えば f という命令の中の index という命令でエラーが起きた場合

GS>/f{10 index}def
GS>f
Error: /rangecheck in index
Operand stack:
   10
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   %loop_continue   2   3   %oparray_pop   --nostringval--   --nostringval--   false   1   %stopped_push   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1058/1123(ro)(G)--   --dict:0/20(G)--   --dict:69/200(L)--
Current allocation mode is local
Current file position is 2

みたいな感じで、index が何のエラーを起こしてその時スタックに何があったかは分かるのですが、その index がどの index なのかよくわからなかったりします。
せめて f の中でエラーになったということ位は知らせてくれないかと思って、def を上書き定義してみました。

/def{
    [
        exch /stopped cvx [
            (Error: in )/print cvx
            6 index /= cvx
            /stop cvx
        ]cvx/if cvx
    ]cvx //def
}bind def

この def を使って定義した f でエラーを起こすとこうなります。

GS>/f{10 index}def
GS>f
Error: in f
Error: /rangecheck in index
Operand stack:
   10
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   %loop_continue   2   3   %oparray_pop   --nostringval--   --nostringval--   false   1   %stopped_push   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   false   1   %stopped_push   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1059/1123(ro)(G)--   --dict:0/20(G)--   --dict:70/200(L)--
Current allocation mode is local
Last OS error: 2
Current file position is 2

"Error: /rangecheck" 以下も表示されたのは想定外だった。stopped でエラーを捕まえた後に stop 命令を使うと、さっき起こしたエラー内容が表示されるらしい。