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)