(5) デバッグトレースモード < Viivi Blog < Viiviの小部屋 < 入り口 / Entrance
[NOTE]
This article is written ONLY in Japanese.
I hope you can read the contents through one of the surprisingly advanced latest machine translators,
such as Google
and DeepL.
ここに記載した内容は Viivi に関する 非公式で個人的な考えを雑然と思いつくまま書いたものです. Viivi 開発の背景にある経緯や考えかたを知っていただくために設置しています.
コマンドラインオプション「-g」「-d 7」や 手続き呼び出し「(viivi-set! debug-level 7)」で設定できます. このモードに設定することにより,入力された S式 をインタプリタが 評価していく過程が可視化されて表示されます. (旧)トップページの背景画像は デバッグトレース出力のスクリーンスナップショットの一例です.
「-dc N」または「(viivi-set! debug-fold-multiple-columns N)」を指定すれば Nの倍数本のトレース線が表示されませんから有限な幅のディスプレイ上でも 深い手続き呼び出しを目で追うことが可能です. 普通のディスプレイの解像度なら N=20 くらいが適当だと思います.
さらに,「-ds N」または「(viivi-set! debug-sleep-milliseconds N)」を指定すれば デバッグトレースの入力・出力を表示してから N ミリ秒だけ処理を停止します. これを使えば 画面のスクロールによって評価過程を見失わずに 各評価ごとの入力・出力を確認する助けになるかもしれません. (こちらは僕的にはイマイチです. 止める時間を短くしても長くしてもあまり役に立ちません. 一気に出力して後から読み直すか, 手動で画面スクロールを止めながら見たほうが便利に思えます. ご意見をお聞かせください.)
本体部のデバッグも完全ではないのに このような追加機能をもたせるのは本末転倒なので 当初はこの機能のスイッチを切って公開することも考えていました. ところが Shibuya.lisp での発表時には思いがけず 「JVM上の実装で continuation が制限なく使える!」という最大の売り物である 本体の実装部分よりもご好評をいただきました. ユーザが Scheme コードのバグを見つけるのに使えるだけでなく, Viivi の実装部のバグを見つけるのにも役立てていただけるのではないかと思います. 何よりも入力した S式 が評価されていくようすが表示されるのは 見ていて非常に楽しいものです (とにかく試してみてください.ぼーっと眺めているだけで楽しいです) ので Shibuya.lisp で発表したレベルのデバッグトレース機能は 敢えてそのままの形で公開することにしました.
(5) デバッグトレースモード < Viivi Blog < Viiviの小部屋 < 入り口 / Entrance
2010/10/24 開設
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.