diff --git a/collects/macro-debugger/view/debug-format.ss b/collects/macro-debugger/view/debug-format.ss index 07c938a..87cdc04 100644 --- a/collects/macro-debugger/view/debug-format.ss +++ b/collects/macro-debugger/view/debug-format.ss @@ -7,13 +7,15 @@ (define (write-debug-file file exn events) (with-output-to-file file (lambda () - (write `(list ,@(map (lambda (e) (serialize-datum e)) events))) + (pretty-print + `(list ,@(map (lambda (e) (serialize-datum e)) events))) (newline) (write (exn-message exn)) (newline) - (write (map serialize-context-frame - (continuation-mark-set->context - (exn-continuation-marks exn))))) + (pretty-print + (map serialize-context-frame + (continuation-mark-set->context + (exn-continuation-marks exn))))) #:exists 'replace)) (define (serialize-datum d) diff --git a/collects/macro-debugger/view/step-display.ss b/collects/macro-debugger/view/step-display.ss index 65be319..075c0d1 100644 --- a/collects/macro-debugger/view/step-display.ss +++ b/collects/macro-debugger/view/step-display.ss @@ -119,17 +119,15 @@ (define/private (show-lctx step shift-table) (define state (protostep-s1 step)) (define lctx (state-lctx state)) - (when (pair? lctx) - (send: sbview sb:syntax-browser<%> add-text "\n") - (for ([bf (reverse lctx)]) - (send: sbview sb:syntax-browser<%> add-text - "while executing macro transformer in:\n") - (insert-syntax/redex (bigframe-term bf) - (bigframe-foci bf) - (state-binders state) - shift-table - (state-uses state) - (state-frontier state))))) + (for ([bf lctx]) + (send: sbview sb:syntax-browser<%> add-text + "\nwhile executing macro transformer in:\n") + (insert-syntax/redex (bigframe-term bf) + (bigframe-foci bf) + (state-binders state) + shift-table + (state-uses state) + (state-frontier state)))) ;; separator : Step -> void (define/private (separator step) diff --git a/collects/macro-debugger/view/term-record.ss b/collects/macro-debugger/view/term-record.ss index fe404ad..1839dfd 100644 --- a/collects/macro-debugger/view/term-record.ss +++ b/collects/macro-debugger/view/term-record.ss @@ -275,7 +275,11 @@ ;; display-initial-term : -> void (define/public (display-initial-term) - (send: displayer step-display<%> add-syntax (wderiv-e1 deriv))) + (cond [raw-deriv-oops + (send: displayer step-display<%> add-internal-error + "derivation" raw-deriv-oops #f events)] + [else + (send: displayer step-display<%> add-syntax (wderiv-e1 deriv))])) ;; display-final-term : -> void (define/public (display-final-term)