I'm trying to run current CVS under valgrind [1] in the hope of tracking
down the elusive "freed lrecord" bug, which has killed my Gnus session 3
times today. However, I'm drowning under a deluge of errors from the
garbage collector. Valgrind says:
Conditional jump or move depends on uninitialised value(s)
at 0x8093855: kkcc_marking (lrecord.h:1583)
by 0x8095D19: garbage_collect_1 (alloc.c:4610)
by 0x80EB006: Feval (eval.c:3522)
by 0x81BC0B4: readevalloop (lread.c:1418)
(It truncates the backtrace to only the last 4 frames.) Attaching GDB
to the XEmacs process reveals that the offending memory_description
array has first element XD_INT, second element XD_UNION, and third
element XD_END, and that kkcc_marking (actually
lispdesc_process_xd_union) is currently working on element 1 of the
array, the XD_UNION element.
The only memory_description I see in the sources that matches this
pattern is rune_description_1 in redisplay.c. Valgrind is complaining
about this one, and this one only, and lots. I got over 30000 of these
before I managed to enter my first Gnus group. I don't understand why
valgrind doesn't like it, since it's a static array. Any clues?
And the number of bad memory accesses inside the X library is just
scary....
Footnotes:
[1]
http://developer.kde.org/~sewardj/
--
Jerry James
http://www.ittc.ku.edu/~james/