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: James
Subject: Re: Segfault in MIDI with empty score via skipTypesetting
Date: Sun, 24 Oct 2021 13:07:50 +0000

hello,

On 23/10/2021 23:16, David Kastrup wrote:
The following eventually crashes:


-*- mode: compilation; default-directory: "/tmp/" -*-
Compilation started at Sun Oct 24 00:14:20

lilypond /tmp/bah.ly
GNU LilyPond 2.23.5 (running Guile 1.8)
Processing `/tmp/bah.ly'
Parsing...
/tmp/bah.ly:1: warning: no \version statement found, please add

\version "2.23.5"

for future compatibility
Interpreting music...
programming error: no current dynamic
continuing, cross fingers
programming error: no current dynamic
continuing, cross fingers
programming error: no dynamic span to finish
continuing, cross fingers
MIDI output to `bah.midi'...
Compilation segmentation fault (core dumped) at Sun Oct 24 00:14:21


All I could come up with is a null pointer reference issue in '

--snip-

(gdb) f 0
#0  0x00005555558ecfa6 in Rational::compare (r=..., s=...)
    at /home/james/Downloads/git_repos/lilypond-git/flower/rational.cc:207
207       if (r.sign_ < s.sign_)
(gdb) p r
$5 = (const Rational &) <error reading variable>
(gdb) p s
$6 = (const Rational &) <error reading variable>

--snip--

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

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.

Anyway, hope this was helpful,


James

--
Regards

James



reply via email to

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