You can call ly_display_scm from within the debugger. You can get at the music objects from within the .ly file, eg.
#(ly:display obj) getting into a REPL is tricky. On Wed, Mar 30, 2016 at 6:12 PM, Redwood (Daniel) <[email protected]> wrote: > [I’m attempting to improve the midi output from the c++ code…] > > Still getting oriented. Here’s what I need help with: > > 1) getting the guile REPL to start when the midi performer begins, so I can > inspect the music objects (not the engraver objects). > I’ve gotten the REPL to start after lilypond begins, but here’s what I’m > currently getting > > Parsing...guile> (set-current-module lilypond-module) > #<directory (guile-user) b4f36e00> > > Then I’m not sure what to do? I try this: > > (,locals) > standard input:2:2: In expression (unquote locals): > standard input:2:2: Unbound variable: unquote > ABORT: (unbound-variable) > > 2) I try debugging from within C++ > > (gdb) b Performance::output > Breakpoint 1 at 0x82d6750: file performance.cc, line 72. > (gdb) r dant.ly > […] > Breakpoint 1, Performance::output (this=0x87a74f0, midi_stream=..., > performance_name="") at performance.cc:72 > (gdb) p *this > $1 = {<Music_output> = {<Smob<Music_output>> = {<Smob_core> = { > self_scm_ = 0xb2915d30}, <Smob_base<Music_output>> = { > static smob_tag_ = 14975, static scm_init_ = {static list_ = > 0x84c3edc <Smob_base<Scale>::scm_init_>, fun_ = 0x80e12b0 > <Smob_base<Music_output>::init()>, > next_ = 0x84bd090 <Smob_base<Paper_outputter>::scm_init_>}, > static smob_name_ = "Music_output"}, protection_cons_ = 0x404}, > _vptr.Music_output = 0x83cc308 <vtable for Performance+8>, > static type_p_name_ = "ly:music-output?"}, > audio_staffs_ = std::vector of length 2, capacity 2 = {0x87a6a18, > 0x87a6c88}, audio_elements_ = std::vector of length 18, capacity 32 = { > 0x87a6a18, 0x865a798, 0x865a7b0, 0x865a900, 0x865c3b0, 0x865c4b0, > 0x865c4f0, 0x865a8e8, 0x87a4838, 0x87a6cf8, 0x87a6c88, 0x865caf0, > 0x865cd38, 0x865c910, 0x865c700, 0x865c788, 0x865ce30, 0x865c660}, midi_ = > 0x87a4ff0, ports_ = false, header_ = 0x404} > > My guess is that most of these raw numbers are actually scheme objects, which > I don’t know how to debug. > > Advice would be appreciated. > > -d > > _______________________________________________ > lilypond-devel mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/lilypond-devel -- Han-Wen Nienhuys - [email protected] - http://www.xs4all.nl/~hanwen _______________________________________________ lilypond-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/lilypond-devel
