[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Getting oriented
From: |
Han-Wen Nienhuys |
Subject: |
Re: Getting oriented |
Date: |
Wed, 30 Mar 2016 20:15:36 +0200 |
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)
<address@hidden> 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
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-devel
--
Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen