Martin Buchholz <martin(a)xemacs.org> writes:
> >>>>> "Gunnar" == Gunnar Evermann <Gunnar.Evermann(a)nats.informatik.uni-hamburg.de> writes:
>
>
> Gunnar> in FPrin1: (dbx) pobj object
> Gunnar> warning: subscript out of range
> Gunnar> Unknown Lisp Object type
> Gunnar> object = 6067492
>
> This is a sign that a Lisp_Object has been corrupted or was never
> initialized. These bugs are very hard to track down. If the bug is
> completely reproducible, down to the memory addresses involved, you
> can put a debugger watchpoint on the actual memory locations that are
> being corrupted, and track it down that way.
OK, I tried that. First of all it is reproducible down to
address. Aparently it is related to a GC triggered during some
XPM-related stuff. This might also explain why this bug doesn't show
up in xemacs -nw. btw this b38-pre2.
If you need further info, drop me a mail.
Gunnar
I'm not sure wheter the size is right, but maybe this helps:
(dbx) stop modify 6067492, sizeof(Lisp_Object)
(2) stop modify 6067492, sizeof(Lisp_Object )
(dbx)
(dbx) run
Running: xemacs
(process id 13833)
watchpoint 6067492 (0x5c9524[4]) at line 456 in file "alloc.c"
456 (*ptr4++) = 0xDEADBEEF;
(dbx)
(dbx) where
=>[1] deadbeef_memory(ptr = 0x5c9524, size = 16U), line 456 in "alloc.c"
[2] sweep_strings(), line 4185 in "alloc.c"
[3] gc_sweep(), line 4254 in "alloc.c"
[4] garbage_collect_1(), line 4557 in "alloc.c"
[5] Feval(form = 5610556), line 2919 in "eval.c"
[6] evaluate_xpm_color_symbols(), line 1585 in "glyphs.c"
[7] x_xpm_normalize(inst = 7683168, console_type = 6096420), line 1410 in "glyphs-x.c"
[8] xpm_normalize(inst = 7683168, console_type = 6096420), line 1601 in "glyphs.c"
[9] normalize_image_instantiator(instantiator = 7683168, contype = 6096420, dest_mask = 95), line 477 in "glyphs.c"
[10] primitive_funcall(fn = 0x2210b8 = &`xemacs`glyphs.c`normalize_image_instantiator(Lisp_Object instantiator, Lisp_Object contype, Lisp_Object dest_mask), nargs = 3, args = 0xefffaeec), line 2862 in "eval.c"
[11] call_with_suspended_errors_1(opaque_arg = 5974592), line 2061 in "eval.c"
[12] internal_catch(tag = 5974720, func = 0xfd668 = &`xemacs`eval.c`call_with_suspended_errors_1(Lisp_Object opaque_arg), arg = 5974592, threw = 0xefffaed4), line 1328 in "eval.c"
[13] call_with_suspended_errors(fun = 0x2210b8 = &`xemacs`glyphs.c`normalize_image_instantiator(Lisp_Object instantiator, Lisp_Object contype, Lisp_Object dest_mask), retval = 5992452, class = 5992452, errb = RECORD, nargs = 3, ...), line 2169 in "eval.c"
[14] image_going_to_add(specifier = 7640448, locale = 6094400, tag_set = 5992452, instantiator = 7638484), line 1911 in "glyphs.c"
[15] build_up_processed_list(specifier = 7640448, locale = 6094400, inst_list = 7685576), line 1600 in "specifier.c"
[16] specifier_add_spec(specifier = 7640448, locale = 6094400, inst_list = 7685576, add_meth = SPEC_REMOVE_TAG_SET_PREPEND), line 1641 in "specifier.c"
[17] Fadd_spec_list_to_specifier(specifier = 7640448, spec_list = 7685600, how_to_add = 5992452), line 1912 in "specifier.c"
[18] funcall_recording_as(recorded_as = 6109552, nargs = 3, args = 0xefffb500), line 3197 in "eval.c"
[19] Ffuncall(nargs = 4, args = 0xefffb500), line 3238 in "eval.c"
[20] Fbyte_code(bytestr = 5112944, vector = 5113080, maxdepth = 17), line 416 in "bytecode.c"
[21] funcall_lambda(fun = 5113252, nargs = 5, arg_vector = 0xefffb9a4), line 3599 in "eval.c"
[22] funcall_recording_as(recorded_as = 6091848, nargs = 5, args = 0xefffb9a0), line 3200 in "eval.c"
[23] Ffuncall(nargs = 6, args = 0xefffb9a0), line 3238 in "eval.c"
[24] Fbyte_code(bytestr = 5140216, vector = 5140300, maxdepth = 13), line 416 in "bytecode.c"
[25] funcall_lambda(fun = 5140368, nargs = 6, arg_vector = 0xefffbd5c), line 3599 in "eval.c"
[26] funcall_recording_as(recorded_as = 6497828, nargs = 6, args = 0xefffbd58), line 3200 in "eval.c"
[27] Ffuncall(nargs = 7, args = 0xefffbd58), line 3238 in "eval.c"
[28] Fbyte_code(bytestr = 5141300, vector = 5141328, maxdepth = 15), line 416 in "bytecode.c"
[29] funcall_lambda(fun = 5141372, nargs = 2, arg_vector = 0xefffc12c), line 3599 in "eval.c"
[30] funcall_recording_as(recorded_as = 6091876, nargs = 2, args = 0xefffc128), line 3200 in "eval.c"
[31] Ffuncall(nargs = 3, args = 0xefffc128), line 3238 in "eval.c"
[32] Fbyte_code(bytestr = 5142472, vector = 5142504, maxdepth = 7), line 416 in "bytecode.c"
[33] funcall_lambda(fun = 5142540, nargs = 1, arg_vector = 0xefffc6c0), line 3599 in "eval.c"
[34] funcall_recording_as(recorded_as = 6468792, nargs = 1, args = 0xefffc6bc), line 3200 in "eval.c"
[35] Ffuncall(nargs = 2, args = 0xefffc6bc), line 3238 in "eval.c"
[36] Fbyte_code(bytestr = 5519576, vector = 5519724, maxdepth = 15), line 416 in "bytecode.c"
[37] funcall_lambda(fun = 5519792, nargs = 6, arg_vector = 0xefffcb08), line 3599 in "eval.c"
[38] funcall_recording_as(recorded_as = 6963172, nargs = 6, args = 0xefffcb04), line 3200 in "eval.c"
[39] Ffuncall(nargs = 7, args = 0xefffcb04), line 3238 in "eval.c"
[40] Fbyte_code(bytestr = 5647640, vector = 5647704, maxdepth = 19), line 416 in "bytecode.c"
[41] funcall_lambda(fun = 5647956, nargs = 1, arg_vector = 0xefffcea4), line 3599 in "eval.c"
[42] funcall_recording_as(recorded_as = 5647956, nargs = 1, args = 0xefffcea0), line 3200 in "eval.c"
[43] Ffuncall(nargs = 2, args = 0xefffcea0), line 3238 in "eval.c"
[44] call1(fn = 5647956, arg0 = 6938868), line 3912 in "eval.c"
[45] mapcar1(leni = 17, vals = 0xefffcfb0, fn = 5647956, seq = 6942416), line 3235 in "fns.c"
[46] Fmapcar(fn = 5647956, seq = 6942416), line 3285 in "fns.c"
[47] funcall_recording_as(recorded_as = 6089884, nargs = 2, args = 0xefffd1c8), line 3197 in "eval.c"
[48] Ffuncall(nargs = 3, args = 0xefffd1c8), line 3238 in "eval.c"
[49] Fbyte_code(bytestr = 5648020, vector = 5648052, maxdepth = 7), line 416 in "bytecode.c"
[50] funcall_lambda(fun = 5648092, nargs = 1, arg_vector = 0xefffd574), line 3599 in "eval.c"
[51] funcall_recording_as(recorded_as = 6991172, nargs = 1, args = 0xefffd570), line 3200 in "eval.c"
[52] Ffuncall(nargs = 2, args = 0xefffd570), line 3238 in "eval.c"
[53] Fbyte_code(bytestr = 5647480, vector = 5647508, maxdepth = 7), line 416 in "bytecode.c"
[54] funcall_lambda(fun = 5647544, nargs = 0, arg_vector = 0xefffda8c), line 3599 in "eval.c"
[55] funcall_recording_as(recorded_as = 6988508, nargs = 0, args = 0xefffda88), line 3200 in "eval.c"
[56] Ffuncall(nargs = 1, args = 0xefffda88), line 3238 in "eval.c"
[57] Fbyte_code(bytestr = 5641072, vector = 5641192, maxdepth = 9), line 416 in "bytecode.c"
[58] funcall_lambda(fun = 5641372, nargs = 0, arg_vector = 0xefffde68), line 3599 in "eval.c"
[59] funcall_recording_as(recorded_as = 6116088, nargs = 0, args = 0xefffde64), line 3200 in "eval.c"
[60] Ffuncall(nargs = 1, args = 0xefffde64), line 3238 in "eval.c"
[61] call0(fn = 6116088), line 3897 in "eval.c"
[62] x_finish_init_device(d = 0x5e8800, props = 5992452), line 595 in "device-x.c"
[63] Fmake_device(type = 6096420, connection = 5992452, props = 5992452), line 580 in "device.c"
[64] funcall_recording_as(recorded_as = 6075240, nargs = 2, args = 0xefffe0d8), line 3193 in "eval.c"
[65] Ffuncall(nargs = 3, args = 0xefffe0d8), line 3238 in "eval.c"
[66] Fbyte_code(bytestr = 5094848, vector = 5094872, maxdepth = 7), line 416 in "bytecode.c"
[67] funcall_lambda(fun = 5094900, nargs = 1, arg_vector = 0xefffe4f4), line 3599 in "eval.c"
[68] funcall_recording_as(recorded_as = 6449800, nargs = 1, args = 0xefffe4f0), line 3200 in "eval.c"
[69] Ffuncall(nargs = 2, args = 0xefffe4f0), line 3238 in "eval.c"
[70] Fbyte_code(bytestr = 5640508, vector = 5640564, maxdepth = 5), line 416 in "bytecode.c"
[71] funcall_lambda(fun = 5640660, nargs = 0, arg_vector = 0xefffe9f4), line 3599 in "eval.c"
[72] funcall_recording_as(recorded_as = 6988424, nargs = 0, args = 0xefffe9f0), line 3200 in "eval.c"
[73] Ffuncall(nargs = 1, args = 0xefffe9f0), line 3238 in "eval.c"
[74] Fbyte_code(bytestr = 5298512, vector = 5298628, maxdepth = 9), line 416 in "bytecode.c"
[75] funcall_lambda(fun = 5298848, nargs = 0, arg_vector = 0xeffff01c), line 3599 in "eval.c"
[76] funcall_recording_as(recorded_as = 6815296, nargs = 0, args = 0xeffff018), line 3200 in "eval.c"
[77] Ffuncall(nargs = 1, args = 0xeffff018), line 3238 in "eval.c"
[78] Fbyte_code(bytestr = 5296360, vector = 5296548, maxdepth = 13), line 416 in "bytecode.c"
[79] funcall_lambda(fun = 5297088, nargs = 0, arg_vector = 0xeffff278), line 3599 in "eval.c"
[80] apply_lambda(fun = 5297088, numargs = 0, unevalled_args = 5992452), line 3501 in "eval.c"
[81] Feval(form = 6275124), line 3067 in "eval.c"
[82] condition_case_1(handlers = 5992564, bfun = 0x100650 = &Feval(Lisp_Object form), barg = 6275124, hfun = 0xa5710 = &cmd_error(), harg = 5992452), line 1653 in "eval.c"
[83] top_level_1(dummy = 5992452), line 206 in "cmdloop.c"
[84] internal_catch(tag = 6070780, func = 0xa57f0 = &`xemacs`cmdloop.c`top_level_1(Lisp_Object dummy), arg = 5992452, threw = (nil)), line 1328 in "eval.c"
[85] initial_command_loop(load_me = 5992452), line 285 in "cmdloop.c"
[86] xemacs_21_0_b38_sparc_sun_solaris2_6(argc = 1, argv = 0xeffff7cc, envp = 0xeffff7d4, restart = 0), line 1673 in "emacs.c"
[87] main(argc = 1, argv = 0xeffff7cc, envp = 0xeffff7d4), line 2090 in "emacs.c"
(dbx)
(dbx) cont
watchpoint 6067492 (0x5c9524[4]) at line 4185 in file "alloc.c"
4185 SWEEP_FIXED_TYPE_BLOCK (string, struct Lisp_String);
(dbx)
(dbx) where
=>[1] sweep_strings(), line 4185 in "alloc.c"
[2] gc_sweep(), line 4254 in "alloc.c"
[3] garbage_collect_1(), line 4557 in "alloc.c"
[4] Feval(form = 5610556), line 2919 in "eval.c"
[5] evaluate_xpm_color_symbols(), line 1585 in "glyphs.c"
[6] x_xpm_normalize(inst = 7683168, console_type = 6096420), line 1410 in "glyphs-x.c"
[7] xpm_normalize(inst = 7683168, console_type = 6096420), line 1601 in "glyphs.c"
[8] normalize_image_instantiator(instantiator = 7683168, contype = 6096420, dest_mask = 95), line 477 in "glyphs.c"
[9] primitive_funcall(fn = 0x2210b8 = &`xemacs`glyphs.c`normalize_image_instantiator(Lisp_Object instantiator, Lisp_Object contype, Lisp_Object dest_mask), nargs = 3, args = 0xefffaeec), line 2862 in "eval.c"
[10] call_with_suspended_errors_1(opaque_arg = 5974592), line 2061 in "eval.c"
[11] internal_catch(tag = 5974720, func = 0xfd668 = &`xemacs`eval.c`call_with_suspended_errors_1(Lisp_Object opaque_arg), arg = 5974592, threw = 0xefffaed4), line 1328 in "eval.c"
[12] call_with_suspended_errors(fun = 0x2210b8 = &`xemacs`glyphs.c`normalize_image_instantiator(Lisp_Object instantiator, Lisp_Object contype, Lisp_Object dest_mask), retval = 5992452, class = 5992452, errb = RECORD, nargs = 3, ...), line 2169 in "eval.c"
[13] image_going_to_add(specifier = 7640448, locale = 6094400, tag_set = 5992452, instantiator = 7638484), line 1911 in "glyphs.c"
[14] build_up_processed_list(specifier = 7640448, locale = 6094400, inst_list = 7685576), line 1600 in "specifier.c"
[15] specifier_add_spec(specifier = 7640448, locale = 6094400, inst_list = 7685576, add_meth = SPEC_REMOVE_TAG_SET_PREPEND), line 1641 in "specifier.c"
[16] Fadd_spec_list_to_specifier(specifier = 7640448, spec_list = 7685600, how_to_add = 5992452), line 1912 in "specifier.c"
[17] funcall_recording_as(recorded_as = 6109552, nargs = 3, args = 0xefffb500), line 3197 in "eval.c"
[18] Ffuncall(nargs = 4, args = 0xefffb500), line 3238 in "eval.c"
[19] Fbyte_code(bytestr = 5112944, vector = 5113080, maxdepth = 17), line 416 in "bytecode.c"
[20] funcall_lambda(fun = 5113252, nargs = 5, arg_vector = 0xefffb9a4), line 3599 in "eval.c"
[21] funcall_recording_as(recorded_as = 6091848, nargs = 5, args = 0xefffb9a0), line 3200 in "eval.c"
[22] Ffuncall(nargs = 6, args = 0xefffb9a0), line 3238 in "eval.c"
[23] Fbyte_code(bytestr = 5140216, vector = 5140300, maxdepth = 13), line 416 in "bytecode.c"
[24] funcall_lambda(fun = 5140368, nargs = 6, arg_vector = 0xefffbd5c), line 3599 in "eval.c"
[25] funcall_recording_as(recorded_as = 6497828, nargs = 6, args = 0xefffbd58), line 3200 in "eval.c"
[26] Ffuncall(nargs = 7, args = 0xefffbd58), line 3238 in "eval.c"
[27] Fbyte_code(bytestr = 5141300, vector = 5141328, maxdepth = 15), line 416 in "bytecode.c"
[28] funcall_lambda(fun = 5141372, nargs = 2, arg_vector = 0xefffc12c), line 3599 in "eval.c"
[29] funcall_recording_as(recorded_as = 6091876, nargs = 2, args = 0xefffc128), line 3200 in "eval.c"
[30] Ffuncall(nargs = 3, args = 0xefffc128), line 3238 in "eval.c"
[31] Fbyte_code(bytestr = 5142472, vector = 5142504, maxdepth = 7), line 416 in "bytecode.c"
[32] funcall_lambda(fun = 5142540, nargs = 1, arg_vector = 0xefffc6c0), line 3599 in "eval.c"
[33] funcall_recording_as(recorded_as = 6468792, nargs = 1, args = 0xefffc6bc), line 3200 in "eval.c"
[34] Ffuncall(nargs = 2, args = 0xefffc6bc), line 3238 in "eval.c"
[35] Fbyte_code(bytestr = 5519576, vector = 5519724, maxdepth = 15), line 416 in "bytecode.c"
[36] funcall_lambda(fun = 5519792, nargs = 6, arg_vector = 0xefffcb08), line 3599 in "eval.c"
[37] funcall_recording_as(recorded_as = 6963172, nargs = 6, args = 0xefffcb04), line 3200 in "eval.c"
[38] Ffuncall(nargs = 7, args = 0xefffcb04), line 3238 in "eval.c"
[39] Fbyte_code(bytestr = 5647640, vector = 5647704, maxdepth = 19), line 416 in "bytecode.c"
[40] funcall_lambda(fun = 5647956, nargs = 1, arg_vector = 0xefffcea4), line 3599 in "eval.c"
[41] funcall_recording_as(recorded_as = 5647956, nargs = 1, args = 0xefffcea0), line 3200 in "eval.c"
[42] Ffuncall(nargs = 2, args = 0xefffcea0), line 3238 in "eval.c"
[43] call1(fn = 5647956, arg0 = 6938868), line 3912 in "eval.c"
[44] mapcar1(leni = 17, vals = 0xefffcfb0, fn = 5647956, seq = 6942416), line 3235 in "fns.c"
[45] Fmapcar(fn = 5647956, seq = 6942416), line 3285 in "fns.c"
[46] funcall_recording_as(recorded_as = 6089884, nargs = 2, args = 0xefffd1c8), line 3197 in "eval.c"
[47] Ffuncall(nargs = 3, args = 0xefffd1c8), line 3238 in "eval.c"
[48] Fbyte_code(bytestr = 5648020, vector = 5648052, maxdepth = 7), line 416 in "bytecode.c"
[49] funcall_lambda(fun = 5648092, nargs = 1, arg_vector = 0xefffd574), line 3599 in "eval.c"
[50] funcall_recording_as(recorded_as = 6991172, nargs = 1, args = 0xefffd570), line 3200 in "eval.c"
[51] Ffuncall(nargs = 2, args = 0xefffd570), line 3238 in "eval.c"
[52] Fbyte_code(bytestr = 5647480, vector = 5647508, maxdepth = 7), line 416 in "bytecode.c"
[53] funcall_lambda(fun = 5647544, nargs = 0, arg_vector = 0xefffda8c), line 3599 in "eval.c"
[54] funcall_recording_as(recorded_as = 6988508, nargs = 0, args = 0xefffda88), line 3200 in "eval.c"
[55] Ffuncall(nargs = 1, args = 0xefffda88), line 3238 in "eval.c"
[56] Fbyte_code(bytestr = 5641072, vector = 5641192, maxdepth = 9), line 416 in "bytecode.c"
[57] funcall_lambda(fun = 5641372, nargs = 0, arg_vector = 0xefffde68), line 3599 in "eval.c"
[58] funcall_recording_as(recorded_as = 6116088, nargs = 0, args = 0xefffde64), line 3200 in "eval.c"
[59] Ffuncall(nargs = 1, args = 0xefffde64), line 3238 in "eval.c"
[60] call0(fn = 6116088), line 3897 in "eval.c"
[61] x_finish_init_device(d = 0x5e8800, props = 5992452), line 595 in "device-x.c"
[62] Fmake_device(type = 6096420, connection = 5992452, props = 5992452), line 580 in "device.c"
[63] funcall_recording_as(recorded_as = 6075240, nargs = 2, args = 0xefffe0d8), line 3193 in "eval.c"
[64] Ffuncall(nargs = 3, args = 0xefffe0d8), line 3238 in "eval.c"
[65] Fbyte_code(bytestr = 5094848, vector = 5094872, maxdepth = 7), line 416 in "bytecode.c"
[66] funcall_lambda(fun = 5094900, nargs = 1, arg_vector = 0xefffe4f4), line 3599 in "eval.c"
[67] funcall_recording_as(recorded_as = 6449800, nargs = 1, args = 0xefffe4f0), line 3200 in "eval.c"
[68] Ffuncall(nargs = 2, args = 0xefffe4f0), line 3238 in "eval.c"
[69] Fbyte_code(bytestr = 5640508, vector = 5640564, maxdepth = 5), line 416 in "bytecode.c"
[70] funcall_lambda(fun = 5640660, nargs = 0, arg_vector = 0xefffe9f4), line 3599 in "eval.c"
[71] funcall_recording_as(recorded_as = 6988424, nargs = 0, args = 0xefffe9f0), line 3200 in "eval.c"
[72] Ffuncall(nargs = 1, args = 0xefffe9f0), line 3238 in "eval.c"
[73] Fbyte_code(bytestr = 5298512, vector = 5298628, maxdepth = 9), line 416 in "bytecode.c"
[74] funcall_lambda(fun = 5298848, nargs = 0, arg_vector = 0xeffff01c), line 3599 in "eval.c"
[75] funcall_recording_as(recorded_as = 6815296, nargs = 0, args = 0xeffff018), line 3200 in "eval.c"
[76] Ffuncall(nargs = 1, args = 0xeffff018), line 3238 in "eval.c"
[77] Fbyte_code(bytestr = 5296360, vector = 5296548, maxdepth = 13), line 416 in "bytecode.c"
[78] funcall_lambda(fun = 5297088, nargs = 0, arg_vector = 0xeffff278), line 3599 in "eval.c"
[79] apply_lambda(fun = 5297088, numargs = 0, unevalled_args = 5992452), line 3501 in "eval.c"
[80] Feval(form = 6275124), line 3067 in "eval.c"
[81] condition_case_1(handlers = 5992564, bfun = 0x100650 = &Feval(Lisp_Object form), barg = 6275124, hfun = 0xa5710 = &`xemacs`cmdloop.c`cmd_error(Lisp_Object data, Lisp_Object dummy), harg = 5992452), line 1653 in "eval.c"
[82] top_level_1(dummy = 5992452), line 206 in "cmdloop.c"
[83] internal_catch(tag = 6070780, func = 0xa57f0 = &`xemacs`cmdloop.c`top_level_1(Lisp_Object dummy), arg = 5992452, threw = (nil)), line 1328 in "eval.c"
[84] initial_command_loop(load_me = 5992452), line 285 in "cmdloop.c"
[85] xemacs_21_0_b38_sparc_sun_solaris2_6(argc = 1, argv = 0xeffff7cc, envp = 0xeffff7d4, restart = 0), line 1673 in "emacs.c"
[86] main(argc = 1, argv = 0xeffff7cc, envp = 0xeffff7d4), line 2090 in "emacs.c"
(dbx)
(dbx) cont
signal ILL (illegal opcode) in (unknown) at 0x4b0360
0x004b0360: pure+0x597c: illtrap 0x4
Current function is print_internal
1203 (obj, printcharfun, escapeflag));
(dbx) pobj obj
dbx: warning: subscript out of range
Unknown Lisp Object type
obj = 6067492
(dbx)