X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fguile-debugger.ly;h=ef4a9290f3b235993d7fc3fc6ee2d4ac75e93878;hb=e7aa6c445f463844dbaa52d38ea4aac2882b5601;hp=ecfaa5da2ad1a38aea545fa503efab0cc9daf2ab;hpb=1efdabf3b2349ea7fa3183dca5bba5104c347c36;p=lilypond.git diff --git a/ly/guile-debugger.ly b/ly/guile-debugger.ly index ecfaa5da2a..ef4a9290f3 100644 --- a/ly/guile-debugger.ly +++ b/ly/guile-debugger.ly @@ -1,43 +1,55 @@ -%%%% guile-debugger.ly +%%%% This file is part of LilyPond, the GNU music typesetter. %%%% -%%%% Source file of the GNU LilyPond music typesetter +%%%% Copyright (C) 2009--2014 by Ian Hulin %%%% -%%%% (c) 2009 by Ian Hulin - -%% \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. -%% For more information, see the Contributors' Guide. +%%%% LilyPond is free software: you can redistribute it and/or modify +%%%% it under the terms of the GNU General Public License as published by +%%%% the Free Software Foundation, either version 3 of the License, or +%%%% (at your option) any later version. +%%%% +%%%% LilyPond is distributed in the hope that it will be useful, +%%%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%%%% GNU General Public License for more details. +%%%% +%%%% You should have received a copy of the GNU General Public License +%%%% along with LilyPond. If not, see . -\version "2.13.4" -#(use-modules - (ice-9 debugger) - (ice-9 debugging trace) - (ice-9 debugging steps) - (ice-9 debugging ice-9-debugger-extensions)) +%% \include this file to enable the setting of breakpoints in guile. +%% 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. -#(define (break! proc) - (install-trap (make - #:procedure proc - #:behaviour debug-trap))) -#(define (trace! proc) - (install-trap (make - #:procedure proc - #:behaviour (list trace-trap - trace-at-exit)))) +\version "2.16.0" -#(define (trace-subtree! proc) - (install-trap (make - #:procedure proc - #:behaviour (list trace-trap - trace-until-exit)))) +% 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 the guile prompt +% +#(use-modules (ice-9 readline)) +#(activate-readline) +#(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)) +#(ly:module-copy (resolve-module '(guile-user)) + (resolve-module '(scm guile-debugger))) #(top-repl) +% +% top-repl has re-set the module to guile-user, +% so we need to set it back to lilypond-module +% +#(ly:module-copy (current-module) (resolve-module '(lilypond-module))) #(set-current-module lilypond-module)