X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ly%2Fguile-debugger.ly;h=c992b652364f2804d44304ee3d2f788c372b9463;hb=97a0169312a260933246ab224e4f8b0969871dd5;hp=26179d117846a371e2c8f7c3018bc65fc95790a6;hpb=794dcbdb52faf4292036cd1b0270a956cf4316a3;p=lilypond.git diff --git a/ly/guile-debugger.ly b/ly/guile-debugger.ly index 26179d1178..c992b65236 100644 --- a/ly/guile-debugger.ly +++ b/ly/guile-debugger.ly @@ -1,36 +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--2015 by Ian Hulin %%%% -%%%% (c) 2009 by Ian Hulin +%%%% 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 . + + %% \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. +%% 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.0" +\version "2.16.0" -#(use-modules (ice-9 debugger) (ice-9 debugging trace) (ice-9 debugging steps) (ice-9 debugging ice-9-debugger-extensions) ) +% 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) -#(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)))) - -#(define (trace-subtree! proc) - (install-trap (make - #:procedure proc - #:behaviour (list trace-trap - trace-until-exit)))) -#(module-define! (resolve-module '(guile-user)) 'lilypond-module (current-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)