[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Emacs 21.1.1 segmentation fault (!)
From: |
Bob Halley |
Subject: |
Re: Emacs 21.1.1 segmentation fault (!) |
Date: |
18 Dec 2001 00:37:43 -0800 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 |
Eli Zaretskii <eliz@is.elta.co.il> writes:
> If worse comes to worst, you could walk all the row->glyph structures
> (which are global data structures, so you should be able to display
> them from any frame), and find the offending .object member.
I did this. All but one of the .object members had values which could
not have caused the fault (though some are "suspect"; see below).
Here's the bad one that I think was the proximate cause of the seg
fault:
(gdb) p row->glyphs[1][79]
$91 = {charpos = 161, object = 1078093248, pixel_width = -20752,
voffset = 2132, type = 0, multibyte_p = 0, left_box_line_p = 0,
right_box_line_p = 0, overlaps_vertically_p = 0, padding_p = 0,
glyph_not_available_p = 0, face_id = 1, u = {ch = 45, cmp_id = 45,
img_id = 45, stretch = {height = 45, ascent = 0}, val = 45}}
1078093248 == 0x404265C0, so the type of this object is
Lisp_Vectorlike, and we will try to dereference (0x04265C0)->size,
which is an invalid address.
In case it helps, here are the row structure and the glyphs before and
after the offending one.
I also decoded the character values, and it appears that the row
contained the mode line for my zenirc channel, which ends with a long
sequence of "-". The non "-" parts of the row looked normal. All of
the "-" use object 944753324 until we get to offset [76] where things
get weird. Perhaps memory got trashed somehow? (I doubt this problem
is hardware related, BTW; haven't seen anything to indicate bad RAM
for example.)
(gdb) p *row
$92 = {glyphs = {0x854a1f8, 0x854a1f8, 0x854a8c4, 0x854a8c4}, used = {0, 83,
0}, x = 0, y = 156,
pixel_width = 582, ascent = 10, height = 13, phys_ascent = 9, phys_height =
12, visible_height = 13,
hash = 264857795, start = {pos = {charpos = 963, bytepos = 963},
overlay_string_index = 0, string_pos = {
charpos = 0, bytepos = 0}, dpvec_index = 0}, end = {pos = {charpos = 963,
bytepos = 963},
overlay_string_index = 0, string_pos = {charpos = 0, bytepos = 0},
dpvec_index = 0}, enabled_p = 0,
inverse_p = 0, truncated_on_left_p = 0, truncated_on_right_p = 0,
overlay_arrow_p = 0, continued_p = 0,
displays_text_p = 0, ends_at_zv_p = 0, fill_line_p = 0, indicate_empty_line_p
= 0,
contains_overlapping_glyphs_p = 0, full_width_p = 1, mode_line_p = 1,
overlapped_p = 0,
ends_in_middle_of_char_p = 0, starts_in_middle_of_char_p = 0, overlapping_p =
0, mouse_face_p = 0,
ends_in_newline_from_string_p = 0, continuation_lines_width = 0}
(gdb) p row->glyphs[1][72]
$80 = {charpos = 1, object = 944753324, pixel_width = 7, voffset = 0, type = 0,
multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][73]
$81 = {charpos = 1, object = 944753324, pixel_width = 7, voffset = 0, type = 0,
multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][74]
$82 = {charpos = 1, object = 944753324, pixel_width = 7, voffset = 0, type = 0,
multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][75]
$83 = {charpos = 1, object = 944753324, pixel_width = 7, voffset = 0, type = 0,
multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][76]
$84 = {charpos = 1, object = 217, pixel_width = 13600, voffset = 2137, type =
0, multibyte_p = 0,
left_box_line_p = 1, right_box_line_p = 1, overlaps_vertically_p = 1,
padding_p = 0, glyph_not_available_p = 1,
face_id = 545966, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height =
45, ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][77]
$85 = {charpos = 201, object = 139597992, pixel_width = -20792, voffset = 2132,
type = 0, multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][78]
$86 = {charpos = 1, object = 944753324, pixel_width = 7, voffset = 0, type = 0,
multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][79]
$87 = {charpos = 161, object = 1078093248, pixel_width = -20752, voffset =
2132, type = 0, multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][80]
$88 = {charpos = 1, object = 944753324, pixel_width = 7, voffset = 0, type = 0,
multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][81]
$89 = {charpos = 121, object = 139598072, pixel_width = -20712, voffset = 2132,
type = 0, multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 0, overlaps_vertically_p = 0,
padding_p = 0, glyph_not_available_p = 0,
face_id = 1, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height = 45,
ascent = 0}, val = 45}}
(gdb) p row->glyphs[1][82]
$90 = {charpos = 1, object = 97, pixel_width = 25984, voffset = 16450, type =
0, multibyte_p = 0,
left_box_line_p = 0, right_box_line_p = 1, overlaps_vertically_p = 1,
padding_p = 0, glyph_not_available_p = 0,
face_id = 545967, u = {ch = 45, cmp_id = 45, img_id = 45, stretch = {height =
45, ascent = 0}, val = 45}}