emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs crashes, 07nov16


From: Robert J. Chassell
Subject: Re: Emacs crashes, 07nov16
Date: Wed, 21 Nov 2007 12:45:44 +0000 (UTC)

address@hidden writes

    Hmm, it looks like someone is overwriting the stack.  77 is
    X_ImageText16 (XDrawImageString16) so some parameter to that call
    is bad.  But where that corruption happens is har to know.

Interesting!  I get this 

    (gdb) l x_draw_glyph_string_foreground
    Function "x_draw_glyph_string_foreground" not defined.

both when my breakpoint is abort () at emacs.c:431 and when it is
x_connection_closed at xterm.c:7786 
even though
x_draw_glyph_string_foreground (s) is defined on line 1316 of xterm.c
and line 1374 of xterm.c is

            XDrawImageString16 (s->display, s->window, s->gc, x,

When I run and try to display the euro character having previously:

    (gdb) b 1374
         <i.e. the line that XDrawImageString16 is on.  Not to be confused with
          XDrawString16 that occurs a bit before this line>

I see this:

    (gdb) r
    The program being debugged has been started already.
    Start it from the beginning? (y or n) y
    Starting program: /usr/local/src/emacs/src/emacs -i -q     --eval 
'(emacs-version t)' -bg DodgerBlue4 -fg white     -fn 
'-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO8859-1'     -geometry 
80x44+545+51 -name '-q GNU Emacs in Debugger 4'
    [Thread debugging using libthread_db enabled]
    [New Thread 0xb71fc920 (LWP 10230)]
    [Switching to Thread 0xb71fc920 (LWP 10230)]

    Breakpoint 4, x_draw_glyph_string (s=0xbfe761b0) at xterm.c:1374

    (gdb)  p *s
    $1 = {
      x = 30, 
      y = 180, 
      ybase = 196, 
      width = 10, 
      background_width = 10, 
      height = 20, 
      left_overhang = 0, 
      right_overhang = 0, 
      f = 0x8601840, 
      w = 0x86019c8, 
      display = 0x85b8f00, 
      window = 46137561, 
      row = 0x86278cc, 
      area = TEXT_AREA, 
      char2b = 0xbfe76190, 
      nchars = 1, 
      hl = DRAW_NORMAL_TEXT, 
      face = 0x8798b40, 
      font = 0x8859550, 
      font_info = 0x8603318, 
      cmp = 0x0, 
      gidx = 0, 
      extends_to_end_of_line_p = 0, 
      background_filled_p = 0, 
      two_byte_p = 1, 
      font_not_found_p = 0, 
      stippled_p = 0, 
      for_overlaps = 0, 
      gc = 0x858e5f8, 
      first_glyph = 0x86064b8, 
      img = 0x0, 
      slice = {
        x = 0, 
        y = 0, 
        width = 0, 
        height = 0
      }, 
      clip_head = 0x0, 
      clip_tail = 0x0, 
      next = 0xbfe76100, 
      prev = 0x0
    }
    (gdb)  p *s->font
    $2 = {
      ext_data = 0x8798be8, 
      fid = 46138179, 
      direction = 0, 
      min_char_or_byte2 = 0, 
      max_char_or_byte2 = 255, 
      min_byte1 = 0, 
      max_byte1 = 255, 
      all_chars_exist = 0, 
      default_char = 0, 
      n_properties = 23, 
      properties = 0x8847370, 
      min_bounds = {
        lbearing = 0, 
        rbearing = 0, 
        width = 10, 
        ascent = -3, 
        descent = -15, 
        attributes = 0
      }, 
      max_bounds = {
        lbearing = 9, 
        rbearing = 10, 
        width = 10, 
        ascent = 16, 
        descent = 4, 
        attributes = 0
      }, 
      per_char = 0xb6d75000, 
      ascent = 16, 
      descent = 4
    }
    (gdb) p *s->font_info
    $3 = {
      ext_data = 0x8798be8, 
      fid = 46138179, 
      direction = 0, 
      min_char_or_byte2 = 0, 
      max_char_or_byte2 = 255, 
      min_byte1 = 0, 
      max_byte1 = 255, 
      all_chars_exist = 0, 
      default_char = 0, 
      n_properties = 23, 
      properties = 0x8847370, 
      min_bounds = {
        lbearing = 0, 
        rbearing = 0, 
        width = 10, 
        ascent = -3, 
        descent = -15, 
        attributes = 0
      }, 
      max_bounds = {
        lbearing = 9, 
        rbearing = 10, 
        width = 10, 
        ascent = 16, 
        descent = 4, 
        attributes = 0
      }, 
      per_char = 0xb6d75000, 
      ascent = 16, 
      descent = 4
    }
    (gdb)  p x
    ^done,locals=[{name="tem",type="long unsigned int",value="<value optimized 
out>"},{name="h",type="long unsigned int",value="<value optimized 
out>"},{name="y",type="int",value="<value optimized 
out>"},{name="relief_drawn_p",type="int",value="0"}]
    (gdb)  p boff
    ^done,locals=[{name="tem",type="long unsigned int",value="<value optimized 
out>"},{name="h",type="long unsigned int",value="<value optimized 
out>"},{name="y",type="int",value="<value optimized 
out>"},{name="relief_drawn_p",type="int",value="0"}]
    (gdb) 



Starting with fixed 20 and going to a Courier font of 18 (there are
none readily available for 20) using S-down-mouse-1 (mouse-set-font),
I can display the Euro sign as I can with fixed 18.

When I do S-down-mouse-1 (mouse-set-font) with fixed 18 (i.e., with
-Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO8859-1), I do not
see fontset startup: 20-dot medium which is visible when I start with
fixed 20 (i.e., with
-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO8859-1).

Incidentally, Courier fonts 14 and 18 are bigger than fixed 20 and
Courier font 12 is smaller.




Today's GNU Emacs CVS snapshot, Wed, 2007 Nov 21  10:49 UTC
GNU Emacs 23.0.50.9 (i686-pc-linux-gnu, GTK+ Version 2.12.1)
started in debugger with

    set args -i -q \
    --eval '(emacs-version t)' -bg DodgerBlue4 -fg white \
    -fn '-Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO8859-1' \
    -geometry 80x44+545+51 -name '-q GNU Emacs in Debugger 4'

architecture: i686
Linux kernel: 2.6.22-2-686
distribution: Debian testing, updated today


-- 
    Robert J. Chassell                          GnuPG Key ID: 004B4AC8
    address@hidden                         address@hidden
    http://www.rattlesnake.com                  http://www.teak.cc




reply via email to

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