bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Segfault in MIDI with empty score via skipTypesetting


From: David Kastrup
Subject: Re: Segfault in MIDI with empty score via skipTypesetting
Date: Sun, 24 Oct 2021 15:24:30 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

James <pkx166h@posteo.net> writes:

> if I go up the stack a bit
>
> --snip-
>
> (gdb) f 3
> #3  0x0000555555705abb in audio_item_less (a=0x555555d37e90,
>  b=0x555555d37df0)
>     at /home/james/Downloads/git_repos/lilypond-git/lily/midi-walker.cc:54
> 54        return a->get_column ()->when_ < b->get_column ()->when_;
> (gdb) p a
> $1 = (Audio_item * const) 0x555555d37e90
> (gdb) p b
> $2 = (Audio_item * const) 0x555555d37df0
>
> --snip--
>
> and this gives me
>
> --snip--
>
> (gdb) p * (Audio_item *) 0x555555d37e90
> $3 = {<Audio_element> = {
>     _vptr.Audio_element = 0x555555a796b8 <vtable for Audio_text+16>},
>   audio_column_ = 0x0, channel_ = 0}
> (gdb) p * (Audio_item *) 0x555555d37df0
> $4 = {<Audio_element> = {
>     _vptr.Audio_element = 0x555555a796b8 <vtable for Audio_text+16>},
>   audio_column_ = 0x0, channel_ = 0}
>
> --snip--
>
> if I see what the code is at this point on midi-walker.cc
>
> --snip--
>
> (gdb) list
> 49
> 50      bool
> 51      audio_item_less (Audio_item *const a,
> 52                       Audio_item *const b)
> 53      {
> 54        return a->get_column ()->when_ < b->get_column ()->when_;
> 55      }
> 56
> 57      Midi_walker::Midi_walker (Audio_staff *audio_staff, Midi_track
> *track, int start_tick)
> 58      {
>
> --snip--
>
> Audio_item is not getting a value set?
>
> Unfortunately that is the limit of my already-limited knowledge :D

As someone who doesn't manage to do anything before having the feeling
to know what I am doing (not that this feeling always stands up to
reality but at least the illusion helps), I am at awe at the lengths
some people manage to go with purportedly limited knowledge.

> And I have also found out that I cannot compile master beyond the last
> few dev releases without getting a compilation error (probably python
> related) when making lilypond. So I cannot usefully git bisect.

I don't think (or at least hope) Python should be an issue regarding
"last few dev releases" since our requirements are roughly "Python 3"
(and have been for some time) and our code base should not significantly
rely on all too new features in order to stay reasonably portable.

> Anyway, hope this was helpful,

Well, I know both Dan and I have in the past invested a bit of work to
stop trivial scores from crashing MIDI generation but I guess both our
work was not really plugging the problem at its root and so one can
apparently still generate circumstances where it pops up.

So while it certainly is helpful to see where stuff crashes here (and
possibly fix this particular crash), there'd be probably some deeper
analysis warranted for not getting another such report in due time.

At least that's my gut feeling here.

-- 
David Kastrup



reply via email to

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