Thomas Morley <thomasmorle...@gmail.com> writes: > 2018-07-01 21:13 GMT+02:00 David Kastrup <d...@gnu.org>: > >> Perhaps try running under a debugger and setting a breakpoint on >> ::warning (or so)? Then make a traceback when the warning is reached >> (hopefully from the right point). > > Well, I don't know what I should do. I never did something like this. > > But I tried: > > gdb lilypond/usr/bin/lilypond > [...] > (gdb) break ::error > Breakpoint 1 at 0x7ffff5b20390: file error.c, line 294. > (gdb) run file-bug.ly > [...] > (gdb) bt > No stack. > > > Probably I did it not correctly.
It's programming_error actually. dak@lola:/usr/local/tmp/lilypond$ cd /tmp dak@lola:/tmp$ gdb /usr/local/tmp/lilypond/out/bin/lilypond GNU gdb (Ubuntu 8.1-0ubuntu3) 8.1.0.20180409-git Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/local/tmp/lilypond/out/bin/lilypond...done. (gdb) break programming_error Breakpoint 1 at 0xc9880: programming_error. (3 locations) (gdb) run /tmp/harm.ly Starting program: /usr/local/tmp/lilypond/out/bin/lilypond /tmp/harm.ly [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". GNU LilyPond 2.21.0 Processing `/tmp/harm.ly' Parsing... Interpreting music...[8][16] Preprocessing graphical objects... Finding the ideal number of pages... Fitting music on 1 page... Drawing systems... Breakpoint 1, programming_error (s="no solution found for Bezier intersection", location="") at warn.cc:190 190 { (gdb) bt #0 0x0000555555923ed0 in programming_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (s="no solution found for Bezier intersection", location="") at warn.cc:190 #1 0x0000555555757968 in Bezier::get_other_coordinate(Axis, double) const (this=this@entry=0x5555562fb628, a=a@entry=X_AXIS, x=x@entry=90.173852841682958) at bezier.cc:72 #2 0x00005555557c576c in Slur_configuration::score_extra_encompass(Slur_score_state const&) (this=0x5555562fb5e0, state=...) at slur-configuration.cc:411 #3 0x00005555557c6085 in Slur_configuration::run_next_scorer(Slur_score_state const&) (this=0x5555562fb5e0, state=...) at slur-configuration.cc:522 #4 0x000055555576e1ab in Slur_score_state::get_best_curve() const (this=this@entry=0x7fffffff8f20) at slur-scoring.cc:427 #5 0x000055555576e406 in Slur::calc_control_points(scm_unused_struct*) (smob=<optimized out>) at slur-scoring.cc:363 #6 0x00007ffff7b1fb62 in scm_dapply (proc=0x7ffff3c03740, arg1=0x7ffff01c1210, args=0x404) at eval.c:4895 #7 0x000055555567e25d in Grob::try_callback_on_alist(scm_unused_struct**, scm_unused_struct*, scm_unused_struct*) (proc=0x7ffff3c03740, sym=0x7ffff2013c60, alist=0x55555611cd60, this=0x55555611cd00) at grob-property.cc:232 #8 0x000055555567e25d in Grob::internal_get_property(scm_unused_struct*) const (sym=<optimized out>, this=<optimized out>) at grob-property.cc:184 #9 0x000055555567e25d in Grob::internal_get_pure_property(scm_unused_struct*, int, int) const (end=<optimized out>, start=<optimized out>, sym=<optimized out>, this=<optimized out>) at grob-property.cc:201 #10 0x000055555567e25d in Grob::internal_get_maybe_pure_property(scm_unused_struct*, bool, int, int) const (this=<optimized out>, sym=<optimized out>, pure=<optimized out>, start=<optimized out>, end=<optimized out>) at grob-property.cc:212 #11 0x0000555555624c1c in Slur::get_curve(Grob*) (me=0x55555611cd00) at slur.cc:231 #12 0x0000555555624c1c in Slur::print(scm_unused_struct*) (smob=<optimized out>) at slur.cc:162 #13 0x00007ffff7b1fb62 in scm_dapply (proc=0x7ffff3b309c0, arg1=0x7ffff01c1210, args=0x404) at eval.c:4895 #14 0x000055555567e25d in Grob::try_callback_on_alist(scm_unused_struct**, scm_unused_struct*, scm_unused_struct*) (proc=0x7ffff3b309c0, sym=0x7ffff328ae40, alist=0x55555611cd60, this=0x55555611cd00) at grob-property.cc:232 #15 0x000055555567e25d in Grob::internal_get_property(scm_unused_struct*) const (sym=<optimized out>, this=<optimized out>) at grob-property.cc:184 #16 0x000055555567e25d in Grob::internal_get_pure_property(scm_unused_struct*, int, int) const (end=<optimized out>, start=<optimized out>, sym=<optimized out>, this=<optimized out>) at grob-property.cc:201 #17 0x000055555567e25d in Grob::internal_get_maybe_pure_property(scm_unused_struct*, bool, int, int) const (this=<optimized out>, sym=<optimized out>, pure=<optimized out>, start=<optimized out>, end=<optimized out>) at grob-property.cc:212 #18 0x0000555555619885 in Grob::get_stencil() const (this=0x55555611cd00) at grob.cc:130 #19 0x0000555555619885 in grob_stencil_extent (a=X_AXIS, me=0x55555611cd00) at grob.cc:850 #20 0x0000555555619885 in Grob::stencil_width(scm_unused_struct*) (smob=<optimized out>) at grob.cc:907 #21 0x00007ffff7b1fb62 in scm_dapply (proc=0x7ffff3b2dfd0, arg1=0x7ffff01c1210, args=0x404) at eval.c:4895 #22 0x000055555567e25d in Grob::try_callback_on_alist(scm_unused_struct**, scm_unused_struct*, scm_unused_struct*) (proc=0x7ffff3b2dfd0, sym=0x7ffff328c140, alist=0x55555611cd60, this=0x55555611cd00) at grob-property.cc:232 #23 0x000055555567e25d in Grob::internal_get_property(scm_unused_struct*) const (sym=<optimized out>, this=<optimized out>) at grob-property.cc:184 #24 0x000055555567e25d in Grob::internal_get_pure_property(scm_unused_struct*, int, int) const (end=<optimized out>, start=<optimized out>, sym=<optimized out>, this=<optimized out>) at grob-property.cc:201 #25 0x000055555567e25d in Grob::internal_get_maybe_pure_property(scm_unused_struct*, bool, int, int) const (this=<optimized out>, sym=<optimized out>, pure=<optimized out>, start=<optimized out>, end=<optimized out>) at grob-property.cc:212 #26 0x000055555561fba4 in Grob::extent(Grob*, Axis) const (this=this@entry=0x55555611cd00, refp=refp@entry=0x5555561c3d50, a=a@entry=X_AXIS) at grob.cc:471 #27 0x00005555556c21bb in Axis_group_interface::relative_maybe_bound_group_extent(std::vector<Grob*, std::allocator<Grob*> > const&, Grob*, Axis, bool) (elts=std::vector of length 180, capacity 256 = {...}, common=common@entry=0x5555561c3d50, a=a@entry=X_AXIS, bound=bound@entry=false) at axis-group-interface.cc:106 #28 0x00005555556c2525 in Axis_group_interface::relative_group_extent(std::vector<Grob*, std::allocator<Grob*> > const&, Grob*, Axis) (a=X_AXIS, common=0x5555561c3d50, elts=std::vector of length 180, capacity 256 = {...}) at axis-group-interface.cc:91 #29 0x00005555556c2525 in Axis_group_interface::generic_group_extent(Grob*, Axis) (a=X_AXIS, me=0x5555563774e0) at axis-group-interface.cc:453 #30 0x00005555556c2525 in Axis_group_interface::width(scm_unused_struct*) (smob=<optimized out>) at axis-group-interface.cc:362 #31 0x00007ffff7b1fb62 in scm_dapply (proc=0x7ffff3b8c720, arg1=0x7fffef558a10, args=0x404) at eval.c:4895 #32 0x000055555567e25d in Grob::try_callback_on_alist(scm_unused_struct**, scm_unused_struct*, scm_unused_struct*) (proc=0x7ffff3b8c720, sym=0x7ffff328c140, alist=0x555556377540, this=0x5555563774e0) at grob-property.cc:232 #33 0x000055555567e25d in Grob::internal_get_property(scm_unused_struct*) const (sym=<optimized out>, this=<optimized out>) at grob-property.cc:184 ---Type <return> to continue, or q <return> to quit--- #34 0x000055555567e25d in Grob::internal_get_pure_property(scm_unused_struct*, int, int) const (end=<optimized out>, start=<optimized out>, sym=<optimized out>, this=<optimized out>) at grob-property.cc:201 #35 0x000055555567e25d in Grob::internal_get_maybe_pure_property(scm_unused_struct*, bool, int, int) const (this=<optimized out>, sym=<optimized out>, pure=<optimized out>, start=<optimized out>, end=<optimized out>) at grob-property.cc:212 #36 0x000055555561fba4 in Grob::extent(Grob*, Axis) const (this=this@entry=0x5555563774e0, refp=refp@entry=0x5555561c3d50, a=a@entry=X_AXIS) at grob.cc:471 #37 0x0000555555874451 in Staff_grouper_interface::get_extremal_staff(Grob*, Grob*, Direction, Interval_t<double> const&) (me=me@entry=0x5555563780e0, refpoint=refpoint@entry=0x5555561c3d50, dir=dir@entry=UP, iv=...) at staff-grouper-interface.cc:47 #38 0x000055555581bd42 in Side_position_interface::move_to_extremal_staff(scm_unused_struct*) (smob=<optimized out>) at side-position-interface.cc:470 #39 0x00007ffff7b1fb62 in scm_dapply (proc=0x7ffff3c8a0c0, arg1=0x7ffff0160ef0, args=0x404) at eval.c:4895 #40 0x000055555567e25d in Grob::try_callback_on_alist(scm_unused_struct**, scm_unused_struct*, scm_unused_struct*) (proc=0x7ffff3c8a0c0, sym=0x7ffff328a900, alist=0x55555614caa0, this=0x55555614ca40) at grob-property.cc:232 #41 0x000055555567e25d in Grob::internal_get_property(scm_unused_struct*) const (sym=<optimized out>, this=<optimized out>) at grob-property.cc:184 #42 0x000055555567e25d in Grob::internal_get_pure_property(scm_unused_struct*, int, int) const (end=<optimized out>, start=<optimized out>, sym=<optimized out>, this=<optimized out>) at grob-property.cc:201 #43 0x000055555567e25d in Grob::internal_get_maybe_pure_property(scm_unused_struct*, bool, int, int) const (this=<optimized out>, sym=<optimized out>, pure=<optimized out>, start=<optimized out>, end=<optimized out>) at grob-property.cc:212 #44 0x00005555555f733c in System::do_break_substitution_and_fixup_refpoints() (this=0x555556073c60) at system.cc:187 #45 0x0000555555687475 in Page_breaking::systems() (this=this@entry=0x7fffffffa290) at page-breaking.cc:457 #46 0x0000555555752079 in Optimal_page_breaking::solve() (this=this@entry=0x7fffffffa290) at optimal-page-breaking.cc:218 #47 0x000055555564d133 in ly_optimal_breaking(scm_unused_struct*) (pb=<optimized out>) at page-breaking-scheme.cc:45 #48 0x00007ffff7b1fb62 in scm_dapply (proc=0x7ffff3b43790, arg1=0x7ffff0614770, args=0x404) at eval.c:4895 #49 0x0000555555872e70 in Paper_book::pages() (this=this@entry=0x555556051770) at paper-book.cc:653 #50 0x000055555587316e in Paper_book::output_aux(scm_unused_struct*, bool, long*, long*) (this=this@entry=0x555556051770, output_channel=output_channel@entry=0x7ffff2f13620, is_last=is_last@entry=true, first_page_number=first_page_number@entry=0x7fffffffa590, first_performance_number=first_performance_number@entry=0x7fffffffa598) at paper-book.cc:148 #51 0x000055555587340e in Paper_book::output(scm_unused_struct*) (this=this@entry=0x555556051770, output_channel=output_channel@entry=0x7ffff2f13620) at paper-book.cc:171 #52 0x000055555575ab7b in ly_book_process(scm_unused_struct*, scm_unused_struct*, scm_unused_struct*, scm_unused_struct*) (book_smob=<optimized out>, default_paper=<optimized out>, default_layout=0x7ffff0ae0970, output=0x7ffff2f13620) at book-scheme.cc:78 #53 0x00007ffff7b1fd0f in scm_dapply (proc=0x7ffff32cc4f0, arg1=0x7ffff3bf0980, args=0x7ffff0614790, args@entry=0x404) at eval.c:4930 #54 0x00007ffff7b20cb8 in deval (x=<optimized out>, env=<optimized out>) at eval.c:4378 #55 0x00007ffff7b2a252 in scm_c_with_fluid (fluid=0x7ffff3287e20, value=value@entry=0x7ffff06171a0, cproc=cproc@entry=0x55555589ccf0 <catch_protected_eval_body(void*)>, cdata=cdata@entry=0x7fffffffa8d0) at fluids.c:463 #56 0x000055555589d156 in ly_eval_scm(scm_unused_struct*, Input, bool, Lily_parser*) (form=form@entry=0x7ffff0617d50, i=..., safe=safe@entry=false, parser=parser@entry=0x555555e5f030) at parse-scm.cc:181 #57 0x0000555555900ae4 in Lily_lexer::eval_scm(scm_unused_struct*, Input, char) (this=this@entry=0x555555d84ce0, readerdata=readerdata@entry=0x7ffff0617d50, hi=..., extra_token=extra_token@entry=35 '#') at lexer.ll:1110 #58 0x0000555555917a4c in Lily_lexer::eval_scm_token(scm_unused_struct*, Input) (this=this@entry=0x555555d84ce0, sval=0x7ffff0617d50, w=...) at ./include/lily-lexer.hh:63 #59 0x000055555590d914 in yyparse(Lily_parser*, scm_unused_struct**) (parser=parser@entry=0x555555e5f030, retval=retval@entry=0x7fffffffc7e0) at parser.yy:452 #60 0x00005555559179d4 in Lily_parser::do_yyparse_trampoline(void*) (parser=parser@entry=0x555555e5f030) at parser.yy:4243 #61 0x00007ffff7b2a252 in scm_c_with_fluid (fluid=0x7ffff3287ea0, value=0x7ffff163c710, cproc=cproc@entry=0x5555559179b0 <Lily_parser::do_yyparse_trampoline(void*)>, cdata=cdata@entry=0x555555e5f030) at fluids.c:463 #62 0x000055555590704e in Lily_parser::do_yyparse() (this=this@entry=0x555555e5f030) at parser.yy:4236 #63 0x0000555555806568 in Lily_parser::parse_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (this=this@entry=0x555555e5f030, init="init.ly", name="/tmp/harm.ly", out_name="harm") at lily-parser.cc:123 #64 0x000055555584e080 in ly_parse_file(scm_unused_struct*) (name=<optimized out>) at lily-parser-scheme.cc:121 #65 0x00007ffff7b21def in deval (x=<optimized out>, x@entry=0x7ffff17d9780, env=<optimized out>, env@entry=0x7ffff163c7a0) at eval.c:4232 #66 0x00007ffff7b202dd in scm_dapply (proc=0x7ffff163c8b0, arg1=<optimized out>, args=0x7ffff163c7a0) at eval.c:5012 ---Type <return> to continue, or q <return> to quit--- #67 0x00007ffff7b78de8 in scm_c_catch (tag=<optimized out>, body=body@entry=0x7ffff7b786f0 <scm_body_thunk>, body_data=body_data@entry=0x7fffffffd040, handler=0x7ffff7b78700 <scm_handle_by_proc>, handler_data=handler_data@entry=0x7fffffffd038, pre_unwind_handler=0x0, pre_unwind_handler_data=0x7fffffffd030) at throw.c:203 #68 0x00007ffff7b78f0d in scm_catch_with_pre_unwind_handler (key=<optimized out>, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:587 #69 0x00007ffff7b1fd0f in scm_dapply (proc=0x7ffff32cc4f0, arg1=0x7ffff3cbf8e0, args=0x7ffff163c7f0, args@entry=0x404) at eval.c:4930 #70 0x00007ffff7b20cb8 in deval (x=<optimized out>, env=<optimized out>, env@entry=0x7ffff163ca50) at eval.c:4378 #71 0x00007ffff7b20f2f in deval (x=0x7ffff17dc930, x@entry=0x7ffff17dcf50, env=0x7ffff163ca50, env@entry=0x7ffff16421e0) at eval.c:3397 #72 0x00007ffff7b202dd in scm_dapply (proc=0x7ffff1642c00, arg1=<optimized out>, args=0x7ffff16421e0) at eval.c:5012 #73 0x00007ffff1de65e0 in scm_srfi1_for_each (proc=0x7ffff1642a80, arg1=0x7ffff163df90, args=<optimized out>) at srfi-1.c:1516 #74 0x00007ffff7b21055 in deval (x=<optimized out>, env=<optimized out>, env@entry=0x7ffff163d8e0) at eval.c:4509 #75 0x00007ffff7b20f2f in deval (x=0x7ffff17dbe20, env=0x7ffff163d8e0, env@entry=0x7ffff163df50) at eval.c:3397 #76 0x00007ffff7b21c13 in deval (x=0x7ffff163db10, x@entry=0x7ffff17e20a0, env=env@entry=0x7ffff163df50) at eval.c:3648 #77 0x00007ffff7b202dd in scm_dapply (proc=0x7ffff17e1ac0, arg1=<optimized out>, args=0x7ffff163df50) at eval.c:5012 #78 0x00005555557716c0 in Scm_variable::operator()(scm_unused_struct*) (arg1=<optimized out>, this=<optimized out>) at ./include/lily-modules.hh:73 #79 0x00005555557716c0 in main_with_guile(void*, int, char**) () at main.cc:539 #80 0x00007ffff7b3ae0f in invoke_main_func (body_data=0x7fffffffdc30) at init.c:367 #81 0x00007ffff7b1246a in c_body (d=d@entry=0x7fffffffdbd0) at continuations.c:349 #82 0x00007ffff7b78de8 in scm_c_catch (tag=tag@entry=0x104, body=body@entry=0x7ffff7b12460 <c_body>, body_data=body_data@entry=0x7fffffffdbd0, handler=handler@entry=0x7ffff7b12480 <c_handler>, handler_data=handler_data@entry=0x7fffffffdbd0, pre_unwind_handler=pre_unwind_handler@entry=0x7ffff7b793d0 <scm_handle_by_message_noexit>, pre_unwind_handler_data=0x0) at throw.c:203 #83 0x00007ffff7b12a44 in scm_i_with_continuation_barrier (body=body@entry=0x7ffff7b12460 <c_body>, body_data=body_data@entry=0x7fffffffdbd0, handler=handler@entry=0x7ffff7b12480 <c_handler>, handler_data=handler_data@entry=0x7fffffffdbd0, pre_unwind_handler=0x7ffff7b793d0 <scm_handle_by_message_noexit>, pre_unwind_handler_data=pre_unwind_handler_data@entry=0x0) at continuations.c:325 #84 0x00007ffff7b12b20 in scm_c_with_continuation_barrier (func=func@entry=0x7ffff7b3adf0 <invoke_main_func>, data=data@entry=0x7fffffffdc30) at continuations.c:367 #85 0x00007ffff7b77176 in scm_i_with_guile_and_parent (func=0x7ffff7b3adf0 <invoke_main_func>, data=0x7fffffffdc30, parent=<optimized out>) at threads.c:733 #86 0x00007ffff7b3af85 in scm_boot_guile (argc=<optimized out>, argv=<optimized out>, main_func=<optimized out>, closure=<optimized out>) at init.c:350 #87 0x0000555555599def in main(int, char**, char**) (argc=2, argv=0x7fffffffddf8, envp=<optimized out>) at main.cc:853 (gdb) I have to see what to make of that. -- David Kastrup _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org https://lists.gnu.org/mailman/listinfo/bug-lilypond