bug-gnu-emacs
[Top][All Lists]
Advanced

[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}}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]