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

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

SIGABRT while using Emacs


From: Alex Schroeder
Subject: SIGABRT while using Emacs
Date: Sun, 15 Jul 2001 18:31:22 +0200
User-agent: Gnus/5.090004 (Oort Gnus v0.04) Emacs/20.7

In GNU Emacs 20.7.3 (i686-pc-linux-gnu, X toolkit)
 of Tue Jun 26 2001 on snail
configured using `configure  --with-x-toolkit=yes'

In the last weeks and months I've noticed various bad things about my
Emacs 20.7 which used to work very fine until I did something which I
cannot pin down...  I've reported "open-network-stream bug" on July 5.
(Message-ID: <address@hidden>)

Today, I've finally managed to catch another bug with GDB.  At first I
didn't even know how to reproduce it.  Today, by sheer chance, I was
able to reproduce it three times in a row, and the third time around I
had a GDB attached to Emacs.  Hopefully this clears things up.

In my .emacs, I load a lot of things: Gnus from CVS (gnus-msg), the
latest eshell, BBDB, TNT, color-theme, browse-kill-ring, lots of stuff
from my .emacs.desktop save file using desktop.el.  Today, I did this:

1. started Emacs
2. C-x C-f ~/elisp/gnus (this is where I have my Gnus from CVS)
3. M-x eshell
4. make (at the eshell prompt)
5. C-x C-f -- and Emacs disappears.  It is just gone.

Here's from my GDB session:

Program received signal SIGABRT, Aborted.
0x4025eac1 in __kill () from /lib/libc.so.6
(gdb) bt
#0  0x4025eac1 in __kill () from /lib/libc.so.6
#1  0x80981a6 in abort () at emacs.c:282
#2  0x8080ce4 in compute_char_face (f=0x82f5d60, w=0x82f1cd8, pos=1, 
    region_beg=-1, region_end=-1, endptr=0xbfffe308, limit=51, mouse=0)
    at  
#3  0x805bb93 in display_text_line (w=0x82f1cd8, start=1, start_byte=1, 
    vpos=0, hpos=0, taboffset=0, ovstr_done=0) at xdisp.c:3602
#4  0x8059aa1 in try_window (window=1211047128, pos=1) at xdisp.c:2561
#5  0x8058a17 in redisplay_window (window=1211047128, just_this_one=0, 
    preserve_echo_area=0) at xdisp.c:1995
#6  0x80582f2 in redisplay_windows (window=1211047128, preserve_echo_area=0)
    at xdisp.c:1716
#7  0x8057979 in redisplay_internal (preserve_echo_area=0) at xdisp.c:1343
#8  0x8057000 in redisplay () at xdisp.c:1021
#9  0x809baed in read_char (commandflag=1, nmaps=2, maps=0xbfffe744, 
    prev_event=404767908, used_mouse_menu=0xbfffe810) at keyboard.c:1947
#10 0x80a18fe in read_key_sequence (keybuf=0xbfffe894, bufsize=30, 
    prompt=404767908, dont_downcase_last=0, can_return_switch_frame=1, 
    fix_current_buffer=1) at keyboard.c:7023
#11 0x809aa00 in command_loop_1 () at keyboard.c:1275
#12 0x80f3b8d in internal_condition_case (bfun=0x809a730 <command_loop_1>, 
    handlers=404768412, hfun=0x809a370 <cmd_error>) at eval.c:1150
#13 0x809a5de in command_loop_2 () at keyboard.c:1093

(gdb) up
#1  0x80981a6 in abort () at emacs.c:282
282       kill (getpid (), SIGABRT);
(gdb) l
277     
278     #if ! defined (DOS_NT) && ! defined (NO_ABORT)
279     void
280     abort ()
281     {
282       kill (getpid (), SIGABRT);
283       /* This shouldn't be executed, but it prevents a warning.  */
284       exit (1);
285     }
286     #endif

(gdb) up
#2  0x8080ce4 in compute_char_face (f=0x82f5d60, w=0x82f1cd8, pos=1, 
    region_beg=-1, region_end=-1, endptr=0xbfffe308, limit=51, mouse=0)
    at xfaces.c:926
926         abort ();
(gdb) l
921       Lisp_Object propname;
922     
923       /* W must display the current buffer.  We could write this function
924          to use the frame and buffer of W, but right now it doesn't.  */
925       if (XBUFFER (w->buffer) != current_buffer)
926         abort ();
927     
928       XSETFRAME (frame, f);
929     
930       endpos = ZV;

(gdb) p current_buffer
$1 = (struct buffer *) 0x885a530
(gdb) pr
(gdb) xtype
Argument to arithmetic operation not a number or boolean.
(gdb) xbuffer current_buffer
Argument to arithmetic operation not a number or boolean.

Does that mean current_buffer is undefined / corrupted?

(gdb) p w->buffer
$2 = 1211075120
(gdb) pr
(gdb) xtype
Lisp_Vectorlike
PVEC_BUFFER
(gdb) xbuffer w->buffer
$3 = (struct buffer *) 0x82f8a30
(unsigned char (*)[1]) 0x88351a4

I tried looking at display_text_line but couldn't figure out where
current_buffer is changed.  And I figured that xdisp.c has probably
been rewritten for Emacs 21 anyway...  :(

With the help of Colin Walters:

(gdb) xreload
(gdb) p current_buffer
$12 = (struct buffer *) 0x885a530
(gdb) p $12->name
$13 = 948113452
(gdb) xstring $13
$14 = (struct Lisp_String *) 0x883102c
" *Minibuf-1*"

and

(gdb) p w->buffer
$15 = 1211075120
(gdb) xbuffer
$16 = (struct buffer *) 0x82f8a30
(unsigned char (*)[1]) 0x88351a4
(gdb) p $->name
$17 = 948130200
(gdb) xstring
$18 = (struct Lisp_String *) 0x8835198
"*eshell*"

Some more info on the window w:

(gdb) p w
$19 = (struct window *) 0x82f1cd8
(gdb) p *$
$20 = {
  size = 536875050, 
  vec_next = 0x82f5d60, 
  frame = 1211063648, 
  mini_p = 404767908, 
  next = 1211063872, 
  prev = 404767908, 
  hchild = 404767908, 
  vchild = 404767908, 
  parent = 404767908, 
  left = 0, 
  top = 0, 
  height = 39, 
  width = 80, 
  buffer = 1211075120, 
  start = 673796880, 
  pointm = 673796860, 
  force_start = 404767956, 
  optional_new_start = 404767908, 
  hscroll = 0, 
  use_time = 34, 
  sequence_number = 3, 
  temslot = 0, 
   last_modified = 0, 
  last_overlay_modified = 0, 
  last_point = 44, 
  last_had_star = 404767956, 
  vertical_scroll_bar = 404767908, 
  last_point_x = 15, 
  last_point_y = 2, 
  last_mark_x = 404767908, 
  last_mark_y = 404767908, 
  window_end_pos = 0, 
  window_end_valid = 404767908, 
  window_end_vpos = 11, 
  update_mode_line = 404767956, 
  start_at_line_beg = 404767956, 
  display_table = 404767908, 
  dedicated = 404767908, 
  base_line_number = 404767908, 
  base_line_pos = 1, 
  region_showing = 404767908, 
  column_number_displayed = 15, 
  redisplay_end_trigger = 404767908, 
  too_small_ok = 404767908
}

And some info on w->buffer:

(gdb) p *$16
$22 = {
  size = 537002069, 
  next = 0x885b398, 
  own_text = {
    beg = 0x886f6c0 "Welcome to the Emacs shell\n\n~/elisp/gnus $ make\ncd lisp 
&& /usr/bin/make EMACS=\"emacs\" lispdir=\"/usr/local/share/emacs/site-lisp\" 
all\nmake[1]: Entering directory `/home/alex/elisp/gnus/lisp'\nrm -f *.e"..., 
    gpt = 394, 
    z = 394, 
    gpt_byte = 394, 
    z_byte = 394, 
    gap_size = 1635, 
    modiff = 36, 
    save_modiff = 0, 
    overlay_modiff = 1, 
    intervals = 0x885e598, 
    markers = 679134504
  }, 
  text = 0x82f8a38, 
  pt = 44, 
  pt_byte = 44, 
  begv = 1, 
  begv_byte = 1, 
  zv = 394, 
  zv_byte = 394, 
  base_buffer = 0x0, 
  local_var_flags = 37009, 
  modtime = 0, 
  auto_save_modified = 0, 
  auto_save_failure_time = -1, 
  last_window_start = 1, 
  clip_changed = 0, 
  newline_cache = 0x0, 
  width_run_cache = 0x0, 
  undo_list = 1484624412, 
  name = 948130200, 
  filename = 404767908, 
  directory = 948113584, 
  backed_up = 404767908, 
  save_length = 0, 
  auto_save_file_name = 404767908, 
  read_only = 404767908, 
  mark = 673204440, 
  local_var_alist = 1484597868, 
  major_mode = 408087348, 
  mode_name = 948247396, 
  mode_line_format = 1484547948, 
  keymap = 1484547996, 
  abbrev_table = 1216654584, 
  syntax_table = 1216654832, 
  category_table = 1210107040, 
  case_fold_search = 404767956, 
  tab_width = 8, 
  fill_column = 70, 
  left_margin = 0, 
  auto_fill_function = 404767908, 
  buffer_file_type = 404767908, 
  downcase_table = 1210109040, 
  upcase_table = 1210451440, 
  case_canon_table = 1210612504, 
  case_eqv_table = 1210617296, 
  truncate_lines = 404767908, 
  ctl_arrow = 404767956, 
  direction_reversed = 404767908, 
  selective_display = 404767908, 
  selective_display_ellipses = 404767956, 
  minor_modes = 404767908, 
  overwrite_mode = 404767908, 
  abbrev_mode = 404767908, 
  display_table = 404767908, 
  mark_active = 404767908, 
  overlays_before = 404767908, 
  overlays_after = 404767908, 
  overlay_center = 1, 
  enable_multibyte_characters = 404767956, 
  buffer_file_coding_system = 405109948, 
  file_format = 404767908, 
  cache_long_line_scans = 404767908, 
  width_table = 404767908, 
  pt_marker = 404767908, 
  begv_marker = 404767908, 
  zv_marker = 404767908, 
  point_before_scroll = 404767908, 
  file_truename = 404767908, 
  invisibility_spec = 404767956, 
  last_selected_window = 1211047128, 
  display_count = 1, 
  display_time = 1484688676, 
  extra2 = 404767908, 
  extra3 = 404767908
}

Alex.
-- 
http://www.geocities.com/kensanata/
Coffee should be black as hell, strong as death and sweet as love.
        -- Turkish proverb



reply via email to

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