I was playing around with trying to persuade XEmacs to forget about an
existing colour specification, when I got a core dump.
It appears to derive from an assert() in specifier_remove_locale_type,
specifier.c, line 1490.
assert() seems to be a rather drastic way of checking arguments which
are passed from Lisp.
--
Glynn Clements <glynn(a)sensei.co.uk>
add-spec-list-to-specifier(#<color-specifier global="brightgreen" fallback=#<color-specifier global=(... . "wheat1") fallback=(... ...) 0x19c> 0x6ac8> ((global (nil . "brightgreen"))) remove-locale-type)
# bind (is-valid nval how-to-add tag-set locale value specifier)
set-specifier(#<color-specifier global="brightgreen" fallback=#<color-specifier global=(... . "wheat1") fallback=(... ...) 0x19c> 0x6ac8> "brightgreen" global nil remove-locale-type)
# bind (how-to-add tag-set locale value property face)
set-face-property(dired-face-executable foreground "brightgreen" global nil remove-locale-type)
# bind (how-to-add tag-set locale color face)
set-face-foreground(dired-face-executable "brightgreen" global nil remove-locale-type)
eval((set-face-foreground (quote dired-face-executable) "brightgreen" (quote global) nil (quote remove-locale-type)))
# bind (eval-expression-insert-value expression)
#<compiled-function (expression &optional eval-expression-insert-value) "...(26)" [eval expression values prin1 eval-expression-insert-value t] 3 732715 (list (read-from-minibuffer "Eval: " nil read-expression-map t ...) current-prefix-arg)>((set-face-foreground (quote dired-face-executable) "brightgreen" (quote global) nil (quote remove-locale-type)) nil)
call-interactively(eval-expression)
# (condition-case ... . error)
# (catch top-level ...)
(gdb) where
#0 0x403a94b1 in ?? () from /lib/libc.so.6
#1 0xbfffd808 in ?? ()
#2 0x403aa397 in ?? () from /lib/libc.so.6
#3 0x80ace1e in assert_failed (file=0x81c29a9 "specifier.c", line=1490, expr=0x81c2eac "type != LOCALE_GLOBAL") at emacs.c:2605
#4 0x815d42a in specifier_remove_locale_type (specifier={gu = {type = Lisp_Type_Record, val = 35807002}, s = {bits = 0, val = 71614004}, u = {bits = 0, val = 71614004}, ui = 143228008, i = 143228008, v = 0x8897c68, cv = 0x8897c68}, type=LOCALE_GLOBAL, tag_set={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}, exact_p=0) at specifier.c:1490
#5 0x815d8ee in specifier_add_spec (specifier={gu = {type = Lisp_Type_Record, val = 35807002}, s = {bits = 0, val = 71614004}, u = {bits = 0, val = 71614004}, ui = 143228008, i = 143228008, v = 0x8897c68, cv = 0x8897c68}, locale={gu = {type = Lisp_Type_Record, val = 34345804}, s = {bits = 0, val = 68691608}, u = {bits = 0, val = 68691608}, ui = 137383216, i = 137383216, v = 0x8304d30, cv = 0x8304d30}, inst_list={gu = {type = Lisp_Type_Record, val = 37162066}, s = {bits = 0, val = 74324132}, u = {bits = 0, val = 74324132}, ui = 148648264, i = 148648264, v = 0x8dc3148, cv = 0x8dc3148}, add_meth=SPEC_REMOVE_LOCALE_TYPE) at specifier.c:1646
#6 0x815e4be in Fadd_spec_list_to_specifier (specifier={gu = {type = Lisp_Type_Record, val = 35807002}, s = {bits = 0, val = 71614004}, u = {bits = 0, val = 71614004}, ui = 143228008, i = 143228008, v = 0x8897c68, cv = 0x8897c68}, spec_list={gu = {type = Lisp_Type_Record, val = 37162060}, s = {bits = 0, val = 74324120}, u = {bits = 0, val = 74324120}, ui = 148648240, i = 148648240, v = 0x8dc3130, cv = 0x8dc3130}, how_to_add={gu = {type = Lisp_Type_Record, val = 34349743}, s = {bits = 0, val = 68699486}, u = {bits = 0, val = 68699486}, ui = 137398972, i = 137398972, v = 0x8308abc, cv = 0x8308abc}) at specifier.c:1915
#7 0x80b124d in funcall_recording_as (recorded_as={gu = {type = Lisp_Type_Record, val = 34349589}, s = {bits = 0, val = 68699178}, u = {bits = 0, val = 68699178}, ui = 137398356, i = 137398356, v = 0x8308854, cv = 0x8308854}, nargs=3, args=0xbfffdde0) at eval.c:3197
#8 0x80b5caa in Ffuncall (nargs=4, args=0xbfffdde0) at eval.c:3238
#9 0x808a39a in Fbyte_code (bytestr={gu = {type = Lisp_Type_Record, val = 34092577}, s = {bits = 0, val = 68185154}, u = {bits = 0, val = 68185154}, ui = 136370308, i = 136370308, v = 0x820d884, cv = 0x820d884}, vector={gu = {type = Lisp_Type_Record, val = 34092621}, s = {bits = 0, val = 68185242}, u = {bits = 0, val = 68185242}, ui = 136370484, i = 136370484, v = 0x820d934, cv = 0x820d934}, maxdepth={gu = {type = Lisp_Type_Int_Even, val = 4}, s = {bits = 1, val = 8}, u = {bits = 1, val = 8}, ui = 17, i = 17, v = 0x11, cv = 0x11}) at bytecode.c:416
#10 0x80b206d in funcall_lambda (fun={gu = {type = Lisp_Type_Record, val = 34092664}, s = {bits = 0, val = 68185328}, u = {bits = 0, val = 68185328}, ui = 136370656, i = 136370656, v = 0x820d9e0, cv = 0x820d9e0}, nargs=5, arg_vector=0xbfffe2a4) at eval.c:3599
#11 0x80b138c in funcall_recording_as (recorded_as={gu = {type = Lisp_Type_Record, val = 34345147}, s = {bits = 0, val = 68690294}, u = {bits = 0, val = 68690294}, ui = 137380588, i = 137380588, v = 0x83042ec, cv = 0x83042ec}, nargs=5, args=0xbfffe2a0) at eval.c:3200
#12 0x80b5caa in Ffuncall (nargs=6, args=0xbfffe2a0) at eval.c:3238
#13 0x808a39a in Fbyte_code (bytestr={gu = {type = Lisp_Type_Record, val = 34093731}, s = {bits = 0, val = 68187462}, u = {bits = 0, val = 68187462}, ui = 136374924, i = 136374924, v = 0x820ea8c, cv = 0x820ea8c}, vector={gu = {type = Lisp_Type_Record, val = 34093754}, s = {bits = 0, val = 68187508}, u = {bits = 0, val = 68187508}, ui = 136375016, i = 136375016, v = 0x820eae8, cv = 0x820eae8}, maxdepth={gu = {type = Lisp_Type_Int_Even, val = 3}, s = {bits = 1, val = 6}, u = {bits = 1, val = 6}, ui = 13, i = 13, v = 0xd, cv = 0xd}) at bytecode.c:416
#14 0x80b206d in funcall_lambda (fun={gu = {type = Lisp_Type_Record, val = 34093770}, s = {bits = 0, val = 68187540}, u = {bits = 0, val = 68187540}, ui = 136375080, i = 136375080, v = 0x820eb28, cv = 0x820eb28}, nargs=6, arg_vector=0xbfffe6a8) at eval.c:3599
#15 0x80b138c in funcall_recording_as (recorded_as={gu = {type = Lisp_Type_Record, val = 34345161}, s = {bits = 0, val = 68690322}, u = {bits = 0, val = 68690322}, ui = 137380644, i = 137380644, v = 0x8304324, cv = 0x8304324}, nargs=6, args=0xbfffe6a4) at eval.c:3200
#16 0x80b5caa in Ffuncall (nargs=7, args=0xbfffe6a4) at eval.c:3238
#17 0x808a39a in Fbyte_code (bytestr={gu = {type = Lisp_Type_Record, val = 34094504}, s = {bits = 0, val = 68189008}, u = {bits = 0, val = 68189008}, ui = 136378016, i = 136378016, v = 0x820f6a0, cv = 0x820f6a0}, vector={gu = {type = Lisp_Type_Record, val = 34094518}, s = {bits = 0, val = 68189036}, u = {bits = 0, val = 68189036}, ui = 136378072, i = 136378072, v = 0x820f6d8, cv = 0x820f6d8}, maxdepth={gu = {type = Lisp_Type_Int_Odd, val = 3}, s = {bits = 1, val = 7}, u = {bits = 1, val = 7}, ui = 15, i = 15, v = 0xf, cv = 0xf}) at bytecode.c:416
#18 0x80b206d in funcall_lambda (fun={gu = {type = Lisp_Type_Record, val = 34094529}, s = {bits = 0, val = 68189058}, u = {bits = 0, val = 68189058}, ui = 136378116, i = 136378116, v = 0x820f704, cv = 0x820f704}, nargs=5, arg_vector=0xbfffe974) at eval.c:3599
#19 0x80b1bd2 in apply_lambda (fun={gu = {type = Lisp_Type_Record, val = 34094529}, s = {bits = 0, val = 68189058}, u = {bits = 0, val = 68189058}, ui = 136378116, i = 136378116, v = 0x820f704, cv = 0x820f704}, numargs=5, unevalled_args={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}) at eval.c:3501
#20 0x80b0bad in Feval (form={gu = {type = Lisp_Type_Record, val = 37161108}, s = {bits = 0, val = 74322216}, u = {bits = 0, val = 74322216}, ui = 148644432, i = 148644432, v = 0x8dc2250, cv = 0x8dc2250}) at eval.c:3067
#21 0x80b1209 in funcall_recording_as (recorded_as={gu = {type = Lisp_Type_Record, val = 34342077}, s = {bits = 0, val = 68684154}, u = {bits = 0, val = 68684154}, ui = 137368308, i = 137368308, v = 0x83012f4, cv = 0x83012f4}, nargs=1, args=0xbfffecd0) at eval.c:3197
#22 0x80b5caa in Ffuncall (nargs=2, args=0xbfffecd0) at eval.c:3238
#23 0x808a39a in Fbyte_code (bytestr={gu = {type = Lisp_Type_Record, val = 34113471}, s = {bits = 0, val = 68226942}, u = {bits = 0, val = 68226942}, ui = 136453884, i = 136453884, v = 0x8221efc, cv = 0x8221efc}, vector={gu = {type = Lisp_Type_Record, val = 34113521}, s = {bits = 0, val = 68227042}, u = {bits = 0, val = 68227042}, ui = 136454084, i = 136454084, v = 0x8221fc4, cv = 0x8221fc4}, maxdepth={gu = {type = Lisp_Type_Int_Odd, val = 1}, s = {bits = 1, val = 3}, u = {bits = 1, val = 3}, ui = 7, i = 7, v = 0x7, cv = 0x7}) at bytecode.c:416
#24 0x80b206d in funcall_lambda (fun={gu = {type = Lisp_Type_Record, val = 34113531}, s = {bits = 0, val = 68227062}, u = {bits = 0, val = 68227062}, ui = 136454124, i = 136454124, v = 0x8221fec, cv = 0x8221fec}, nargs=2, arg_vector=0xbffff080) at eval.c:3599
#25 0x80b138c in funcall_recording_as (recorded_as={gu = {type = Lisp_Type_Record, val = 34113531}, s = {bits = 0, val = 68227062}, u = {bits = 0, val = 68227062}, ui = 136454124, i = 136454124, v = 0x8221fec, cv = 0x8221fec}, nargs=2, args=0xbffff07c) at eval.c:3200
#26 0x80b1af5 in Fapply (nargs=2, args=0xbffff0f0) at eval.c:3463
#27 0x80b4e42 in apply1 (fn={gu = {type = Lisp_Type_Record, val = 34113531}, s = {bits = 0, val = 68227062}, u = {bits = 0, val = 68227062}, ui = 136454124, i = 136454124, v = 0x8221fec, cv = 0x8221fec}, arg={gu = {type = Lisp_Type_Record, val = 37162105}, s = {bits = 0, val = 74324210}, u = {bits = 0, val = 74324210}, ui = 148648420, i = 148648420, v = 0x8dc31e4, cv = 0x8dc31e4}) at eval.c:3895
#28 0x808c395 in Fcall_interactively (function={gu = {type = Lisp_Type_Record, val = 34465652}, s = {bits = 0, val = 68931304}, u = {bits = 0, val = 68931304}, ui = 137862608, i = 137862608, v = 0x8379dd0, cv = 0x8379dd0}, record_flag={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}, keys={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}) at callint.c:397
#29 0x80afb0b in Fcommand_execute (cmd={gu = {type = Lisp_Type_Record, val = 34465652}, s = {bits = 0, val = 68931304}, u = {bits = 0, val = 68931304}, ui = 137862608, i = 137862608, v = 0x8379dd0, cv = 0x8379dd0}, record={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}, keys={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}) at eval.c:2584
#30 0x80e6c42 in execute_command_event (command_builder=0x83301b8, event={gu = {type = Lisp_Type_Record, val = 36555314}, s = {bits = 0, val = 73110628}, u = {bits = 0, val = 73110628}, ui = 146221256, i = 146221256, v = 0x8b728c8, cv = 0x8b728c8}) at event-stream.c:4346
#31 0x80e7274 in Fdispatch_event (event={gu = {type = Lisp_Type_Record, val = 36555314}, s = {bits = 0, val = 73110628}, u = {bits = 0, val = 73110628}, ui = 146221256, i = 146221256, v = 0x8b728c8, cv = 0x8b728c8}) at event-stream.c:4685
#32 0x8094487 in Fcommand_loop_1 () at cmdloop.c:579
#33 0x8094681 in command_loop_1 (dummy={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}) at cmdloop.c:494
#34 0x80b58c2 in condition_case_1 (handlers={gu = {type = Lisp_Type_Record, val = 34321071}, s = {bits = 0, val = 68642142}, u = {bits = 0, val = 68642142}, ui = 137284284, i = 137284284, v = 0x82ecabc, cv = 0x82ecabc}, bfun=0x8094660 <command_loop_1>, barg={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}, hfun=0x8094710 <cmd_error>, harg={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}) at eval.c:1653
#35 0x8094835 in command_loop_2 (dummy={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}) at cmdloop.c:256
#36 0x80b5758 in internal_catch (tag={gu = {type = Lisp_Type_Record, val = 34339713}, s = {bits = 0, val = 68679426}, u = {bits = 0, val = 68679426}, ui = 137358852, i = 137358852, v = 0x82fee04, cv = 0x82fee04}, func=0x80947f8 <command_loop_2>, arg={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}, threw=0x0) at eval.c:1328
#37 0x8094153 in initial_command_loop (load_me={gu = {type = Lisp_Type_Record, val = 34321043}, s = {bits = 0, val = 68642086}, u = {bits = 0, val = 68642086}, ui = 137284172, i = 137284172, v = 0x82eca4c, cv = 0x82eca4c}) at cmdloop.c:305
#38 0x80ab955 in xemacs_21_0_i586_pc_linux (argc=1, argv=0xbffff898, envp=0xbffff8a0, restart=0) at emacs.c:1702
#39 0x80ad24d in main (argc=1, argv=0xbffff898, envp=0xbffff8a0) at emacs.c:2119
(gdb) quit