]> git.donarmstrong.com Git - lilypond.git/commitdiff
Debug: another iteration of Scheme debug aids
authorTrevor Daniels <t.daniels@treda.co.uk>
Sat, 9 Jan 2010 00:22:23 +0000 (00:22 +0000)
committerTrevor Daniels <t.daniels@treda.co.uk>
Sat, 9 Jan 2010 00:26:11 +0000 (00:26 +0000)
 - extracted from a patch prepared by Ian Hulin

ly/guile-debugger.ly
scm/guile-debugger.scm

index 401aff95fc1594755729c4ba34e2ebaeb612d883..dc8368a415241c8c8e249dd38341190fde870215 100644 (file)
 
 
 %%  \include this file to enable the setting of breakpoints in guile.
-%%  Once loaded, this file will open a guile debug prompt.  Type
-%%  help
-%%  at the debug prompt to get a list of possible commands.
+%%  Once loaded, this file will open a guile prompt.  Type
+%%  (debug-help)
+%%  at the guile prompt to get a list of possible commands.
 %%  For more information, see the Contributor's Guide.
 
 
 \version "2.13.10"
 
-% define lilypond-module as a variable in the guile-user module and set to the current
-% Scheme module (which will be the lilypond top-level
+% define lilypond-module as a variable in the guile-user module and set
+% to the current Scheme module (which will be the lilypond top-level
 % module)
 
 #(module-define! (resolve-module '(guile-user))
                  'lilypond-module
                  (current-module))
 %
-% Ensure we have command-line recall available at guile> prompt
+% Ensure we have command-line recall available at the guile prompt
 %
 #(use-modules (ice-9 readline))
 #(activate-readline)
-#(display "\n Guile debugger for Lilypond\n")
+#(display "\n Guile debugger for Lilypond")
+#(display "\n For help enter (debug-help)\n")
+%
+% Ensure debugger definitions are available in lilypond-module and guile-user
+%
 #(use-modules (scm guile-debugger))
-#(newline)
+#(ly:module-copy (resolve-module '(guile-user))
+                 (resolve-module '(scm guile-debugger)))
 #(top-repl)
 %
 % top-repl has re-set the module to guile-user,
index 809f01ef0ec2057166a9e13a6d771fc3856b15e8..0b99e1a3f44a5d40786a812ad71df689398791e8 100755 (executable)
   #:use-module (ice-9 debugging steps)
   #:use-module (ice-9 debugging ice-9-debugger-extensions)
   #:use-module (ice-9 readline)
-  #:export (set-break! set-trace! set-trace-subtree!))
+  #:export (set-break!
+           clear-break!
+           set-trace-call!
+           clear-trace-call!
+           set-trace-subtree!
+           clear-trace-subtree!
+           debug-help))
 
 (define (set-break! proc)
   (install-trap (make <procedure-trap>
-                     #:procedure proc
-                     #:behaviour debug-trap)))
+                 #:procedure proc
+                 #:behaviour debug-trap)))
+(define (clear-break! proc)
+  (uninstall-trap (make <procedure-trap>
+                   #:procedure proc
+                   #:behaviour debug-trap)))
 
-(define (set-trace! proc)
+
+(define (set-trace-call! proc)
   (install-trap (make <procedure-trap>
-                     #:procedure proc
-                     #:behaviour (list trace-trap
-                                       trace-at-exit))))
+                 #:procedure proc
+                 #:behaviour (list trace-trap
+                                   trace-at-exit))))
+(define (clear-trace-call! proc)
+  (uninstall-trap (make <procedure-trap>
+                   #:procedure proc
+                   #:behaviour (list trace-trap
+                                     trace-at-exit))))
 
 (define (set-trace-subtree! proc)
   (install-trap (make <procedure-trap>
-                     #:procedure proc
-                     #:behaviour (list trace-trap
-                                       trace-until-exit))))
+                 #:procedure proc
+                 #:behaviour (list trace-trap
+                                   trace-until-exit))))
+
+(define (clear-trace-subtree! proc)
+  (uninstall-trap (make <procedure-trap>
+                   #:procedure proc
+                   #:behaviour (list trace-trap
+                                     trace-until-exit))))
+
+(define (debug-help )
+  (display "\nYou may add the following commands as debugging statements in your source file\n")
+  (display "or enter the set-x! commands at the guile prompt:\n\n")
+  (display " (set-break! <procedure>)\n")
+  (display "   causes guile to enter debugger on a call to <procedure>\n")
+  (display " (clear-break! <procedure>)\n")
+  (display "   disables a breakpoint previously set on a call to <procedure>\n")
+  (display " (set-trace-call! <procedure>)\n")
+  (display "   prints out a line when Scheme enters or exits <procedure>\n")
+  (display " (clear-trace-call! <procedure>)\n")
+  (display "   turns off tracing calls to <procedure>\n")
+  (display " (set-trace-subtree! <procedure>)\n")
+  (display "   displays each line of Scheme code executed during a call to <procedure>\n")
+  (display " (clear-trace-subtree! <procedure>)\n")
+  (display "   turns off tracing code during calls to <procedure>\n")
+  (newline))