Racket/Debug

維基教科書,自由的教學讀本


Racket的內置debug僅限列印異常的上下文信息(即棧追蹤) errortrace庫提供更詳細的信息,racket/trace庫提供簡單的上下文。

(require racket/trace)導入trace庫

這裡的是racket/trace庫,而不是racket/base,他模仿了chez scheme的跟蹤程序。

(trace id ...) 每個id必須綁定一個trace環境中的一個過程。每個 id 都set!為一個新過程,該過程通過 current-trace-notify 列印調用的參數和結果來跟蹤過程調用和返回。如果返回值有多個,每個值在單獨的一行開始顯示。

當追蹤的過程相互調用的時候,嵌套調用只展示嵌套前綴,當嵌套深度超過了10,只會顯示一個數表示嵌套深度。