* debugger/trap-hooks.scm (debug-hook-membership): New, exported.
authorNeil Jerram <neil@ossau.uklinux.net>
Mon, 9 Feb 2004 19:18:01 +0000 (19:18 +0000)
committerNeil Jerram <neil@ossau.uklinux.net>
Mon, 9 Feb 2004 19:18:01 +0000 (19:18 +0000)
* debugger/commands.scm (debug-trap-hooks): New, exported.

ice-9/ChangeLog
ice-9/debugger/commands.scm
ice-9/debugger/trap-hooks.scm

index 5704261..f83e886 100644 (file)
@@ -1,3 +1,9 @@
+2004-02-09  Neil Jerram  <neil@ossau.uklinux.net>
+
+       * debugger/trap-hooks.scm (debug-hook-membership): New, exported.
+
+       * debugger/commands.scm (debug-trap-hooks): New, exported.
+
 2004-02-08  Mikael Djurfeldt  <djurfeldt@nada.kth.se>
 
        * debugger/breakpoints/Makefile.am (TAGS_FILES),
index 632d328..b72e06e 100644 (file)
@@ -21,6 +21,7 @@
   #:use-module (ice-9 debugger)
   #:use-module (ice-9 debugger behaviour)
   #:use-module (ice-9 debugger state)
+  #:use-module (ice-9 debugger trap-hooks)
   #:use-module (ice-9 debugger utils)
   #:export (backtrace
            evaluate
@@ -34,7 +35,8 @@
            finish
            trace-finish
            next
-           step))
+           step
+           debug-trap-hooks))
 
 (define (backtrace state n-frames)
   "Print backtrace of all stack frames, or innermost COUNT frames.
@@ -149,6 +151,10 @@ An argument specifies the frame to select; it must be a stack-frame number."
   (if n (set-stack-index! state (frame-number->index n (state-stack state))))
   (write-state-short state))
 
+(define (debug-trap-hooks state)
+  (debug-hook-membership)
+  state)
+
 ;;;; Additional commands that make sense when debugging code that has
 ;;;; stopped at a breakpoint.
 
index 97dbcbb..77abc0d 100644 (file)
@@ -41,7 +41,8 @@
            remove-breakpoint-hook!
            remove-enter-frame-hook!
            remove-exit-frame-hook!
-           remove-trace-hook!))
+           remove-trace-hook!
+           debug-hook-membership))
 
 ;;; The current low level traps interface is as follows.
 ;;;
@@ -298,4 +299,22 @@ it twice."
   (remove-hook! trace-hook proc)
   (set-debug-and-trap-options))
 
+(define-public (debug-hook-membership)
+  (for-each (lambda (name+hook)
+             (format #t "~A:\n" (car name+hook))
+             (for-each (lambda (proc)
+                         (format #t "  ~S\n" proc))
+                       (hook->list (cdr name+hook))))
+           `((before-enter-frame-hook . ,before-enter-frame-hook)
+             (enter-frame-hook        . ,enter-frame-hook       )
+             (breakpoint-hook         . ,breakpoint-hook        )
+             (after-enter-frame-hook  . ,after-enter-frame-hook )
+             (before-exit-frame-hook  . ,before-exit-frame-hook )
+             (exit-frame-hook         . ,exit-frame-hook        )
+             (after-exit-frame-hook   . ,after-exit-frame-hook  )
+             (before-apply-frame-hook . ,before-apply-frame-hook)
+             (apply-frame-hook        . ,apply-frame-hook       )
+             (trace-hook              . ,trace-hook             )
+             (after-apply-frame-hook  . ,after-apply-frame-hook ))))
+
 ;;; (ice-9 debugger trap-hooks) ends here.