Gunnar Evermann <ge204(a)eng.cam.ac.uk> writes:
[snip]
> Fatal error: assertion failed, file /local/srcdisk/gunnar/src/XEmacs/xemacs-20/src/lisp.h, line 1154, RECORD_TYPEP (obj, lrecord_vector) || MARKED_RECORD_P (obj)
I happened again, this time I got a useable backtrace (see below)
Apparently the vector got thrashed somewhere along the way, but I'm
not sure how. There are really lots of assert(VECTORP())s in the
execution path...
I can only make the obvious wild guess here: it's a GC problem! :-)
what looks a bit fishy to me is the following part in glyphs.c
(frame#8 in the trace)
----------------------------------------------------------------------
static Lisp_Object
normalize_image_instantiator (Lisp_Object instantiator,
Lisp_Object contype,
Lisp_Object dest_mask)
{
if (IMAGE_INSTANCEP (instantiator))
return instantiator;
if (STRINGP (instantiator))
instantiator = process_image_string_instantiator (instantiator, contype,
XINT (dest_mask));
assert (VECTORP (instantiator));
/+ largish comment snipped by ge */
{
struct image_instantiator_methods * meths =
decode_image_instantiator_format (XVECTOR_DATA (instantiator)[0],
ERROR_ME);
return IIFORMAT_METH_OR_GIVEN (meths, normalize,
(instantiator, contype),
instantiator);
}
}
----------------------------------------------------------------------
In my trace 'instantiator' is a string (at least in frame #12 and up).
This weird function 'process_image_string_instantiator' seems to make
up its return value from various funny places, which I wouldn't
necessarily trust. Maybe a gcpro of 'instantiator' could save the
day???
So who wrote this stuff or understands it well enough to comment?
Gunnar
----------------------------------------------------------------------
long backtrace follows:
#0 0x4025f405 in __kill ()
#1 0x80b2055 in fatal_error_signal (sig=6) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/emacs.c:264
#2 0xbfffd994 in ?? ()
#3 0x4022c055 in raise (sig=136417024)
#4 0x80d77c7 in error_check_vector (obj=154558688) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/lisp.h:1154
#5 0x81230e3 in tagged_vector_to_alist (vector=154558688)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/glyphs.c:432
#6 0x812529d in simple_image_type_normalize (inst=154558688, console_type=137924756, image_type_tag=137945672)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/glyphs.c:1528
#7 0x812ac5e in gif_normalize (inst=154558688, console_type=137924756)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/glyphs-eimage.c:519
#8 0x81233b5 in normalize_image_instantiator (instantiator=154558688, contype=137924756, dest_mask=95)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/glyphs.c:487
#9 0x80b85fd in call_with_suspended_errors_1 (opaque_arg=137963856)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:2057
#10 0x80b74a9 in internal_catch (tag=137952656, func=0x80b8518 <call_with_suspended_errors_1>, arg=137963856,
threw=0xbfffdba4) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:1315
#11 0x80b8c07 in call_with_suspended_errors (fun=0x81232b0 <normalize_image_instantiator>, retval=137822732,
class=137822732, errb={really_unlikely_name_to_have_accidentally_in_a_non_errb_structure = 42}, nargs=3)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:2168
#12 0x812731e in image_going_to_add (specifier=154558392, locale=137922700, tag_set=137822732,
instantiator=156439428) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/glyphs.c:2290
#13 0x818d098 in build_up_processed_list (specifier=154558392, locale=137922700, inst_list=145923488)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/specifier.c:1602
#14 0x818d21c in specifier_add_spec (specifier=154558392, locale=137922700, inst_list=145923488,
add_meth=SPEC_REMOVE_TAG_SET_PREPEND) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/specifier.c:1647
#15 0x818db01 in Fadd_spec_list_to_specifier (specifier=154558392, spec_list=145923572, how_to_add=137822732)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/specifier.c:1920
#16 0x80bafce in Ffuncall (nargs=4, args=0xbfffddc0) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3189
#17 0x808c805 in execute_optimized_program (
program=0x82a26d8 "\b¬\n\tÂs«\005\t\020Ã\021Ä\rÆ\016\a!\"\r\036\b\211\036\t¬\026Ê\016\b!«\020Ë\016\b\016\a\t\016\fÃ\b&\006\210ªE\016\f«*\016\f<¬\006\016\fC\026\fÍ\016\f!\026\f\016\t¬\017\016\b:«\nÎÏ\016\b\"\026\bª\b\016\f\016\bB\026\b\t«\a\t\016\bB\026\bÐ\016\aÑ\016\bÆ\016\a!\"\b#\210*\r\207", stack_depth=8, constants_data=0x82a2628)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#18 0x808c2aa in funcall_compiled_function (fun=136979892, nargs=5, args=0xbfffdefc)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#19 0x80bb22c in Ffuncall (nargs=6, args=0xbfffdef8) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#20 0x808c805 in execute_optimized_program (
program=0x82a9fe4 "À\t!¬\006ÂÀ\t\"\021\013\fs«\021Å\t\013N\016\006\016\a\016\b\016\t%\210ª!\016\a¬\nÊ\t\013\016\006#\210ª\024Ë\t\013\"\210Ì\t\013N\016\006\016\a\016\b\016\t%\210\016\006\207", stack_depth=6,
constants_data=0x82a9f9c) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#21 0x808c2aa in funcall_compiled_function (fun=137010972, nargs=6, args=0xbfffe02c)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#22 0x80bb22c in Ffuncall (nargs=7, args=0xbfffe028) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#23 0x808c805 in execute_optimized_program (program=0x82aa444 "À\tÂ\013\f\r\016\006&\006\207", stack_depth=7,
constants_data=0x82aa414) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#24 0x808c2aa in funcall_compiled_function (fun=137012128, nargs=2, args=0xbfffe160)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#25 0x80bb22c in Ffuncall (nargs=3, args=0xbfffe15c) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#26 0x808c805 in execute_optimized_program (program=0x82aa950 "À\t!\032\013«\006Ä\n\013\"\210\n)\207",
stack_depth=3, constants_data=0x82aa928) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#27 0x808c2aa in funcall_compiled_function (fun=137013464, nargs=1, args=0xbfffe284)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#28 0x80bb22c in Ffuncall (nargs=2, args=0xbfffe280) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#29 0x808c805 in execute_optimized_program (
program=0x893bf74 "À\t!\031\n®\002Ã\032\t\nP\034Å\f\016\006\"A\036\a\016\b\036\tÊ\036\013Ê\036\f\016\t\211A\026\t@\211\026\f«/ÍÎ\n\016\fP\t\"\211\026\013!«çÊ\026\tÏ\016\013!\026\a\016\fÐk«\aÑ\016\aÒ\"\210\f\016\aB\016\006B\026\006ªÇ\016\a.\a\207eyy", stack_depth=4, constants_data=0x8893b98)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#30 0x808c2aa in funcall_compiled_function (fun=143403204, nargs=1, args=0xbfffe3ac)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#31 0x80bb22c in Ffuncall (nargs=2, args=0xbfffe3a8) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#32 0x808c805 in execute_optimized_program (
program=0x893bf2c "À\t\n\"\021ÃÄ\r!Æ\036\a\211\036\b«\024\016\b@\026\aÀ\016\a\t\"\021\016\bA\211\026\b¬îÆ\026\a\t*!\207ggle y", stack_depth=5, constants_data=0x88939f0)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#33 0x808c2aa in funcall_compiled_function (fun=143403008, nargs=2, args=0xbfffe4d8)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#34 0x80bb22c in Ffuncall (nargs=3, args=0xbfffe4d4) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#35 0x808c805 in execute_optimized_program (
program=0x893befc "À\031\n«\017\t¬\fÃ\f\n\211A\022@\"\021ªð\t)\207niI", stack_depth=4,
constants_data=0x8893a28) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#36 0x808c2aa in funcall_compiled_function (fun=143403036, nargs=2, args=0xbfffe600)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#37 0x80bb22c in Ffuncall (nargs=3, args=0xbfffe5fc) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#38 0x808c805 in execute_optimized_program (
program=0x893bebc "À\031\n<«\004\nª\003\nC\022\013«\022ÄÅ\013B\n\"\013\211A\023@D\tB\021ªí\t)\207smile1",
stack_depth=3, constants_data=0x8893ab8) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#39 0x808c2aa in funcall_compiled_function (fun=143403120, nargs=2, args=0xbfffe728)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#40 0x80bb22c in Ffuncall (nargs=3, args=0xbfffe724) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#41 0x808c805 in execute_optimized_program (program=0x893b7c4 "À\211\031\032ÃÄ!\205Å", stack_depth=8,
constants_data=0x88c2fe0) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#42 0x808c2aa in funcall_compiled_function (fun=143402952, nargs=0, args=0xbfffe9e8)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#43 0x80bb22c in Ffuncall (nargs=1, args=0xbfffe9e4) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#44 0x80bc168 in run_hook_with_args_in_buffer (buf=0x91d8fe8, nargs=1, args=0xbfffe9e4,
cond=RUN_HOOKS_TO_COMPLETION) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3671
#45 0x80bc1be in run_hook_with_args (nargs=1, args=0xbfffe9e4, cond=RUN_HOOKS_TO_COMPLETION)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3684
#46 0x80bbddb in Frun_hooks (nargs=1, args=0xbfffe9e4) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3539
#47 0x80bb1c6 in Ffuncall (nargs=2, args=0xbfffe9e0) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3206
#48 0x80bb8da in Fapply (nargs=2, args=0xbfffe9e0) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3399
#49 0x80bb1c6 in Ffuncall (nargs=3, args=0xbfffe9dc) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3206
#50 0x808c805 in execute_optimized_program (program=0x868ae74 "p\030Á\216ÂÃ\f\"*\207", stack_depth=3,
constants_data=0x863b078) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#51 0x808c2aa in funcall_compiled_function (fun=140726708, nargs=1, args=0xbfffeb04)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#52 0x80bb22c in Ffuncall (nargs=2, args=0xbfffeb00) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#53 0x808c805 in execute_optimized_program (
program=0x858d1fc "pÀ\031\032\013Äa¬\004Ä \210À\021ÅÆ!\210ÅÇ!\210\016\b«\013\016\t?\036\n\016\b \210)ÅË!*\207", stack_depth=2, constants_data=0x874c620) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#54 0x808c2aa in funcall_compiled_function (fun=142107684, nargs=0, args=0xbfffec24)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#55 0x80bb22c in Ffuncall (nargs=1, args=0xbfffec20) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#56 0x808c805 in execute_optimized_program (
program=0x88a11f4 "\212\bÁa¬\004\nq\210p\022\013«\006\013ÄHª\002\r\036\006p\036\a\016\b\036\t\016\n\036\013Ì\036\r\212Î \210\016\017q\210ÐÑ!«\b\016\021«\004Ì\026\022Ì\036\023Ô\r\016\013\")\211\026\r\204\215", stack_depth=3,
constants_data=0x874c4c8) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#57 0x808c2aa in funcall_compiled_function (fun=142107656, nargs=2, args=0xbfffed48)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#58 0x80bb22c in Ffuncall (nargs=3, args=0xbfffed44) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#59 0x808c805 in execute_optimized_program (
program=0x878db54 "À \210\t<\n«\a\n\t\013\"ª\005Ä\t\013\"ÅÆ!\210\016\a«\f\016\aÈU¬\006É\016\a!\210Ê \210\016\013«\r\016\f«\tÍ\t!\210Î\t!\210Ï\t\016\020·A!\210\207\016@`", stack_depth=4, constants_data=0x87453d0)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#60 0x808c2aa in funcall_compiled_function (fun=141777580, nargs=1, args=0xbfffee70)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#61 0x80bb22c in Ffuncall (nargs=2, args=0xbfffee6c) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#62 0x808c805 in execute_optimized_program (
program=0x8957a04 "À\t\n\013#«@ÄÅ`Æ\"\211\036\a«\006È\016\a!\210)Å`É\"®\003Ê !¬\"Å`Æ\"\211\036\a«\006È\016\a!\210)Å`É\"®\003Ê \016\013·A@\016\fa«\004Í \207\n«\021\016\016«\rÏ «\tÍ \210ÐÑÒ\"\207\016\023«\032\t¬\027\n¬\024Ô\013«\006\016\025Sª\004\016\026T×Øe`\"#\207Ù\016\032!¬\006Û\016\032!\210\016\034\212\016\035q\210`)\016\036ßa«\aà\016\032!ª\006á\013\016\036\"\036\"\036#\036$åæp!!\210\016'«\005\016$¬\016Ðèé\t«\004êª\002ë#ªT\016'ìa¬\025\016'ía«\005"..., stack_depth=7, constants_data=0x8748050) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#63 0x808c2aa in funcall_compiled_function (fun=141777664, nargs=2, args=0xbfffefa4)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#64 0x80bb22c in Ffuncall (nargs=3, args=0xbfffefa0) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#65 0x808c805 in execute_optimized_program (
program=0x896bf64 "À\tÂa?®\032ÃÄ`Å\"\211\036\006«\006Ç\016\006!\210)Ä`È\"®\003É !\016\n-ËÄ`Å\"\211\036\006«\006Ç\016\006!\210)Ä`È\"®\003É \016\f·8\211\036\r\013Î\016\r!\005\016\rÏH)\"\207", stack_depth=7,
constants_data=0x8748200) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#66 0x808c2aa in funcall_compiled_function (fun=141777720, nargs=0, args=0xbffff0d8)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#67 0x80bb22c in Ffuncall (nargs=1, args=0xbffff0d4) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#68 0x808c805 in execute_optimized_program (
program=0x896bd2c "p\020Á \210Â`Ã\"\211\034«\005Å\f!\210)Â`Æ\"®\003Ç È\016\tÊ\"Ë\036\f\036\r\211\036\016¬\005ÏÐ!\210ÑÎ!\210\016\016\016\022·A\016\023a«\031\016\024Õa«\rÖ\016\016!¬\a× \210\202\211", stack_depth=5,
constants_data=0x87482d8) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:750
#69 0x808c2aa in funcall_compiled_function (fun=141777804, nargs=1, args=0xbffff200)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/bytecode.c:527
#70 0x80bb22c in Ffuncall (nargs=2, args=0xbffff1fc) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:3221
#71 0x809294a in Fcall_interactively (function=140702892, record_flag=137822732, keys=137822732)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/callint.c:949
#72 0x80b9796 in Fcommand_execute (cmd=140702892, record=137822732, keys=137822732)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:2623
#73 0x80ede47 in execute_command_event (command_builder=0x84b6150, event=152292164)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/event-stream.c:4345
#74 0x80ee50d in Fdispatch_event (event=152292164)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/event-stream.c:4636
#75 0x8097c5b in Fcommand_loop_1 () at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/cmdloop.c:578
#76 0x8097a09 in command_loop_1 (dummy=137822732) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/cmdloop.c:493
#77 0x80b788a in condition_case_1 (handlers=137822844, bfun=0x80979e8 <command_loop_1>, barg=137822732,
hfun=0x80972ac <cmd_error>, harg=137822732) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:1640
#78 0x80973b1 in command_loop_3 () at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/cmdloop.c:255
#79 0x80973d4 in command_loop_2 (dummy=137822732) at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/cmdloop.c:266
#80 0x80b74a9 in internal_catch (tag=137897468, func=0x80973cc <command_loop_2>, arg=137822732, threw=0x0)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/eval.c:1315
#81 0x80975f8 in initial_command_loop (load_me=137822732)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/cmdloop.c:304
#82 0x80b322e in xemacs_21_2_b5_i586_pc_linux (argc=1, argv=0xbffff580, envp=0xbffff588, restart=0)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/emacs.c:1715
#83 0x80b3da7 in main (argc=1, argv=0xbffff580, envp=0xbffff588)
at /local/srcdisk/gunnar/src/XEmacs/xemacs/src/emacs.c:2144
#84 0x8079e2e in _start ()
uname -a: Linux oracle 2.0.35 #3 Wed Aug 12 15:25:32 CEST 1998 i586 unknown
../xemacs/configure '--compiler=egcs' '--gung-ho' '--cflags=-g -Wall -Wno-switch' '--with-dialogs=none'
XEmacs 21.2-b5 "Aphrodite" configured for `i586-pc-linux'.
--
Gunnar Evermann
Speech, Vision & Robotics Group
Engineering Department
Cambridge University