diff options
author | Andy Wingo <wingo@pobox.com> | 2013-11-07 18:00:40 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2013-11-07 18:00:40 +0100 |
commit | e15aa022847507c3eeb84c180d20a4209ece1cb6 (patch) | |
tree | 9612fffd37c5e623f8b6206c31e8da090c4bc407 /module/system/vm | |
parent | 0128bb9c38b28e74675e72539a162b5cf9848845 (diff) | |
download | guile-e15aa022847507c3eeb84c180d20a4209ece1cb6.tar.gz |
Program sources are always pre-retire now
* module/system/repl/debug.scm (<debug>): Remove for-trap?. Backtraces
with RTL will always happen pre-retire on the top frame, source info
is pre-retire, and continuations will always have a source-marked
receive or receive-values or whatever with the right source marking,
so we can remove this complication.
(print-frame): Use frame-source.
(print-frames): Remove for-trap? kw.
* module/system/repl/command.scm (define-stack-command, backtrace)
(up, down, frame): Remove for-trap? introduced local, and its uses.
(repl-pop-continuation-resumer): Adapt to make-debug change.
* module/system/repl/error-handling.scm (call-with-error-handling):
Adapt to make-debug change.
* module/system/vm/frame.scm (frame-next-source): Remove. RTL sources
are pre-retire.
* module/system/vm/trap-state.scm (add-ephemeral-stepping-trap!): Adapt
to use frame-source. Still some work to do here.
Diffstat (limited to 'module/system/vm')
-rw-r--r-- | module/system/vm/frame.scm | 11 | ||||
-rw-r--r-- | module/system/vm/trap-state.scm | 6 |
2 files changed, 4 insertions, 13 deletions
diff --git a/module/system/vm/frame.scm b/module/system/vm/frame.scm index ea2faafd7..8aba837d1 100644 --- a/module/system/vm/frame.scm +++ b/module/system/vm/frame.scm @@ -26,7 +26,7 @@ #:export (frame-bindings frame-lookup-binding frame-binding-ref frame-binding-set! - frame-next-source frame-call-representation + frame-call-representation frame-environment frame-object-binding frame-object-name)) @@ -71,15 +71,6 @@ ;;; Pretty printing ;;; -(define (frame-next-source frame) - (let ((proc (frame-procedure frame))) - (if (or (program? proc) (rtl-program? proc)) - (program-source proc - (frame-instruction-pointer frame) - (program-sources-pre-retire proc)) - '()))) - - ;; Basically there are two cases to deal with here: ;; ;; 1. We've already parsed the arguments, and bound them to local diff --git a/module/system/vm/trap-state.scm b/module/system/vm/trap-state.scm index 82d4e0ef4..e334c018c 100644 --- a/module/system/vm/trap-state.scm +++ b/module/system/vm/trap-state.scm @@ -1,6 +1,6 @@ ;;; trap-state.scm: a set of traps -;; Copyright (C) 2010 Free Software Foundation, Inc. +;; Copyright (C) 2010, 2013 Free Software Foundation, Inc. ;;; This library is free software; you can redistribute it and/or ;;; modify it under the terms of the GNU Lesser General Public @@ -275,13 +275,13 @@ (and (<= (frame-address f) fp) (predicate f)))))) - (let* ((source (frame-next-source frame)) + (let* ((source (frame-source frame)) (idx (next-ephemeral-index! trap-state)) (trap (trap-matching-instructions (wrap-predicate-according-to-into (if instruction? (lambda (f) #t) - (lambda (f) (not (equal? (frame-next-source f) source))))) + (lambda (f) (not (equal? (frame-source f) source))))) (ephemeral-handler-for-index trap-state idx handler)))) (add-trap-wrapper! trap-state |