mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-18 17:50:29 +02:00
,frame and related commands handle for-trap? appropriately
* module/system/repl/debug.scm (print-frame): Add #:next-source? arg, for when print-frame should use frame-next-source instead of frame-source. (print-frames): Add #:for-trap? arg. If true, the 0th frame should be printed with frame-next-source. * module/system/repl/command.scm (define-stack-command): Introduce for-trap? into the lexical env. (backtrace, up, down, frame): Update to do the right thing regarding #:for-trap?.
This commit is contained in:
parent
5414d33376
commit
5aa12c699c
2 changed files with 26 additions and 12 deletions
|
@ -472,6 +472,8 @@ Trace execution."
|
|||
(identifier-syntax (debug-frames debug)))
|
||||
(#,(datum->syntax #'repl 'message)
|
||||
(identifier-syntax (debug-error-message debug)))
|
||||
(#,(datum->syntax #'repl 'for-trap?)
|
||||
(identifier-syntax (debug-for-trap? debug)))
|
||||
(#,(datum->syntax #'repl 'index)
|
||||
(identifier-syntax
|
||||
(id (debug-index debug))
|
||||
|
@ -493,7 +495,8 @@ If COUNT is negative, the last COUNT frames will be shown."
|
|||
(print-frames frames
|
||||
#:count count
|
||||
#:width width
|
||||
#:full? full?))
|
||||
#:full? full?
|
||||
#:for-trap? for-trap?))
|
||||
|
||||
(define-stack-command (up repl #:optional (count 1))
|
||||
"up [COUNT]
|
||||
|
@ -510,10 +513,12 @@ An argument says how many frames up to go."
|
|||
(format #t "Already at outermost frame.\n"))
|
||||
(else
|
||||
(set! index (1- (vector-length frames)))
|
||||
(print-frame cur #:index index))))
|
||||
(print-frame cur #:index index
|
||||
#:next-source? (and (zero? index) for-trap?)))))
|
||||
(else
|
||||
(set! index (+ count index))
|
||||
(print-frame cur #:index index))))
|
||||
(print-frame cur #:index index
|
||||
#:next-source? (and (zero? index) for-trap?)))))
|
||||
|
||||
(define-stack-command (down repl #:optional (count 1))
|
||||
"down [COUNT]
|
||||
|
@ -530,10 +535,11 @@ An argument says how many frames down to go."
|
|||
(format #t "Already at innermost frame.\n"))
|
||||
(else
|
||||
(set! index 0)
|
||||
(print-frame cur #:index index))))
|
||||
(print-frame cur #:index index #:next-source? for-trap?))))
|
||||
(else
|
||||
(set! index (- index count))
|
||||
(print-frame cur #:index index))))
|
||||
(print-frame cur #:index index
|
||||
#:next-source? (and (zero? index) for-trap?)))))
|
||||
|
||||
(define-stack-command (frame repl #:optional idx)
|
||||
"frame [IDX]
|
||||
|
@ -548,10 +554,12 @@ With an argument, select a frame by index, then show it."
|
|||
(format #t "Invalid argument to `frame': expected a non-negative integer for IDX.~%"))
|
||||
((< idx (vector-length frames))
|
||||
(set! index idx)
|
||||
(print-frame cur #:index index))
|
||||
(print-frame cur #:index index
|
||||
#:next-source? (and (zero? index) for-trap?)))
|
||||
(else
|
||||
(format #t "No such frame.~%"))))
|
||||
(else (print-frame cur #:index index))))
|
||||
(else (print-frame cur #:index index
|
||||
#:next-source? (and (zero? index) for-trap?)))))
|
||||
|
||||
(define-stack-command (procedure repl)
|
||||
"procedure
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue