lilypond-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]