Guile's garbage collection generates many valgrind warnings (although a quick google suggests that they've been improving the situation). I've attached a suppression file that eliminates many of the bogus warnings.
Cheers, Joe On Mon, Jan 31, 2011 at 5:52 AM, Reinhold Kainhofer <reinh...@kainhofer.com>wrote: > Due to the crash with the part-combiner (which I cannot reproduce, > unfortunately), I'm currently taking a closer look at lilypond with > valgrind. > > 1) Somehow the Rhythmic_head interface generates a "Conditional jump or > move > depends on uninitialised value(s)" warning (none of the other ADD_INTERFACE > calls does, only Rhythmic_head): > > ==1979== Conditional jump or move depends on uninitialised value(s) > ==1979== at 0x409F42C: scm_gc_mark (in /usr/lib/libguile.so.17.3.1) > ==1979== by 0x40DA964: scm_i_symbol_mark (in > /usr/lib/libguile.so.17.3.1) > ==1979== by 0x409F227: scm_gc_mark_dependencies (in > /usr/lib/libguile.so.17.3.1) > ==1979== by 0x409F44B: scm_gc_mark (in /usr/lib/libguile.so.17.3.1) > ==1979== by 0x409F4F9: scm_mark_locations (in > /usr/lib/libguile.so.17.3.1) > ==1979== by 0x40F5511: scm_threads_mark_stacks (in > /usr/lib/libguile.so.17.3.1) > ==1979== by 0x409F539: scm_mark_all (in /usr/lib/libguile.so.17.3.1) > ==1979== by 0x409E54B: scm_i_gc (in /usr/lib/libguile.so.17.3.1) > ==1979== by 0x40A02AA: ??? (in /usr/lib/libguile.so.17.3.1) > ==1979== by 0x40A079F: scm_gc_malloc (in /usr/lib/libguile.so.17.3.1) > ==1979== by 0x40DAA0C: ??? (in /usr/lib/libguile.so.17.3.1) > ==1979== by 0x40DAED4: scm_i_make_string (in > /usr/lib/libguile.so.17.3.1) > ==1979== by 0x40DB21D: scm_from_locale_stringn (in > /usr/lib/libguile.so.17.3.1) > ==1979== by 0x40DB274: scm_from_locale_string (in > /usr/lib/libguile.so.17.3.1) > ==1979== by 0x8103144: add_interface(char const*, char const*, char > const*) > (grob-interface.cc:40) > ==1979== by 0x81ECA21: Rhythmic_head_init_ifaces() (rhythmic-head.cc:62) > ==1979== by 0x810E99F: ly_init_ly_module(void*) (guile-init.cc:45) > > > This is from running only "valgrind --trace-children=yes lilypond" without > any > arguments or files to process, so that happends during initialization. The > offending string in scm_from_locale_string is the description, i.e. "Note > head > or rest." in rhythmic-head.cc. > > I fail to see any different to other interfaces, which do not trigger such > a > warning. Any idea what might be wrong here? > > > 2) The example for the 2.13.47 crash posted to the bug list does not crash > here, but running it through valgrind shows a lot of warnings like the > following: > > > ==1739== Use of uninitialised value of size 4 > ==1739== at 0x81D084A: Prob::mark_smob(scm_unused_struct*) (prob.cc:127) > ==1739== by 0x409F211: scm_gc_mark_dependencies (in > /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409F44B: scm_gc_mark (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409F4F9: scm_mark_locations (in > /usr/lib/libguile.so.17.3.1) > ==1739== by 0x40F5511: scm_threads_mark_stacks (in > /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409F539: scm_mark_all (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409E54B: scm_i_gc (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x40A02AA: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x81554AB: Moment::smobbed_copy() const (moment.cc:58) > ==1739== by 0x81640EF: ly_music_length(scm_unused_struct*) (music- > scheme.cc:32) > ==1739== by 0x4096748: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095612: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095811: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4094C5A: scm_dapply (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x40934A7: scm_apply (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4098A10: scm_call_1 (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4036713: scm_srfi1_map (in /usr/lib/libguile-srfi-srfi-1- > v-3.so.3.0.2) > ==1739== by 0x4096813: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095612: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095811: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095612: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095811: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4094C5A: scm_dapply (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x40934A7: scm_apply (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4098A10: scm_call_1 (in /usr/lib/libguile.so.17.3.1) > ==1739== Uninitialised value was created by a stack allocation > ==1739== at 0x409E424: scm_i_gc (in /usr/lib/libguile.so.17.3.1) > > > or > > > ==1739== Use of uninitialised value of size 4 > ==1739== at 0x4086735: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409F211: scm_gc_mark_dependencies (in > /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409F44B: scm_gc_mark (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409F4F9: scm_mark_locations (in > /usr/lib/libguile.so.17.3.1) > ==1739== by 0x40F5511: scm_threads_mark_stacks (in > /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409F539: scm_mark_all (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x409E54B: scm_i_gc (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x40A02AA: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x81554AB: Moment::smobbed_copy() const (moment.cc:58) > ==1739== by 0x81640EF: ly_music_length(scm_unused_struct*) (music- > scheme.cc:32) > ==1739== by 0x4096748: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095612: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095811: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4094C5A: scm_dapply (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x40934A7: scm_apply (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4098A10: scm_call_1 (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4036713: scm_srfi1_map (in /usr/lib/libguile-srfi-srfi-1- > v-3.so.3.0.2) > ==1739== by 0x4096813: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095612: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095811: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095612: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4095811: ??? (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4094C5A: scm_dapply (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x40934A7: scm_apply (in /usr/lib/libguile.so.17.3.1) > ==1739== by 0x4098A10: scm_call_1 (in /usr/lib/libguile.so.17.3.1) > ==1739== Uninitialised value was created by a stack allocation > ==1739== at 0x82A5456: yyparse(void*) (parser.cc:2264) > > > All of them have in common, that ly_music_length (or ly_moment_mul) and > Moment::smobbed_copy are called and then the condition on the uninitialized > value happens in scm_gc_mark function. > > Unfortunately, I'm unable to find out from where these are called, as it > happens from scheme apparently, and valgrind does not provide any useful > information about scheme calls... > > Any idea how to find out the offending code / moments? > > > > Thanks, > Reinhold > > -- > ------------------------------------------------------------------ > Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/ > * Financial & Actuarial Math., Vienna Univ. of Technology, Austria > * http://www.fam.tuwien.ac.at/, DVR: 0005886 > * LilyPond, Music typesetting, http://www.lilypond.org > > _______________________________________________ > lilypond-devel mailing list > lilypond-devel@gnu.org > http://lists.gnu.org/mailman/listinfo/lilypond-devel >
guile_supp
Description: Binary data
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel