Rebol はエラーと行を通知しますが、どのソース ファイルに記載されていませんか。この情報をシステム変数またはその他 (開始スクリプトだけでなく) から取得する方法はありますか?
1 に答える
2
エラーが発生する前に最後に実行されたスクリプトをトレースするために、DO 関数をオーバーロードすることで (すべてのスクリプトが LOAD や READ ではなく DO を使用してメモリにロードされている場合)、エラーが発生する前に実行された最後のスクリプトをトレースすることで、これを実現できます (system/options/quiet がそのため、読み込まれた各スクリプトの DO ネイティブ ログ行は表示されません)。
do: func [value /args arg /next][
if file? value [print ["DOing script:" value]]
case [
args [system/words/do/args value arg]
next [system/words/do/next value]
;-- args + next is possible, but never used in practice
]
]
実行時エラーをソースコードに正確にリンクすることは、REBOL では必ずしも単純ではありません。メモリに読み込まれると、コード ブロックのオリジン (ファイルまたは URL) を知る方法はありません。ロード段階の前にそれをキャッチする方法を見つけるか、コンソールで詳細なトレース出力を使用します (TRACE 関数を使用するか、多くの場合、PRINT や PROBE を慎重に配置して)。
于 2010-04-14T21:52:48.310 に答える