[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: <m27kxnuqck.fsf@snail.nowhere.ch>)
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
- SIGABRT while using Emacs,
Alex Schroeder <=