GNU bug report logs -
#12310
crash in remember_mouse_glyph
Previous Next
Reported by: Werner LEMBERG <wl <at> gnu.org>
Date: Thu, 30 Aug 2012 05:30:02 UTC
Severity: normal
Done: Glenn Morris <rgm <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 12310 in the body.
You can then email your comments to 12310 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Thu, 30 Aug 2012 05:30:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Werner LEMBERG <wl <at> gnu.org>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 30 Aug 2012 05:30:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[rev 109796]
This crash, which happens rather frequently, is something introduced
quite recently. My last bzr build (in June, IIRC), using the same
GNU/Linux environment (gcc 4.6.2, KDE 4.8, Qt 4.8), didn't show this.
It seems that the crash happens if I look at e-mails with CJK
characters (using Mew), then composing a simple e-mail, then trying to
send the e-mail. I have no exact recipe to reproduce, sorry.
I still have the emacs process in gdb, so please advise how to
proceed.
Werner
======================================================================
#0 0x08078108 in remember_mouse_glyph (f=0x86cdb08, gx=749, gy=521, rect=0x841c54c) at xdisp.c:2250
#1 0x080f8808 in note_mouse_movement (frame=0x86cdb08, event=0xbfffdfa8) at xterm.c:3860
#2 0x08100f4c in handle_one_xevent (dpyinfo=0x891eb50, eventptr=0xbfffe1dc, finish=0x841c564, hold_quit=
0xbfffe664) at xterm.c:6801
#3 0x08101fc9 in event_handler_gdk (gxev=0xbfffe1dc, ev=0x8586c58, data=0x0) at xterm.c:5855
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Thu, 30 Aug 2012 08:05:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 12310 <at> debbugs.gnu.org (full text, mbox):
> I still have the emacs process in gdb, so please advise how to
> proceed.
>
>
> Werner
>
> ======================================================================
>
> #0 0x08078108 in remember_mouse_glyph (f=0x86cdb08, gx=749, gy=521, rect=0x841c54c) at xdisp.c:2250
> #1 0x080f8808 in note_mouse_movement (frame=0x86cdb08, event=0xbfffdfa8) at xterm.c:3860
> #2 0x08100f4c in handle_one_xevent (dpyinfo=0x891eb50, eventptr=0xbfffe1dc, finish=0x841c564, hold_quit=
> 0xbfffe664) at xterm.c:6801
> #3 0x08101fc9 in event_handler_gdk (gxev=0xbfffe1dc, ev=0x8586c58, data=0x0) at xterm.c:5855
Looks precisely like bug#12251. Hopefully, Eli can tell you how to proceed.
Please keep it in gdb.
martin
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Thu, 30 Aug 2012 08:18:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 12310 <at> debbugs.gnu.org (full text, mbox):
> Looks precisely like bug#12251. Hopefully, Eli can tell you how to
> proceed. Please keep it in gdb.
Indeed. I've forgotten to describe the symptoms if not running under
gdb, and they are the same (visible bell while moving the mouse or
pressing any key, but no reaction otherwise; I had to kill Emacs, or
it crashed after some time).
Werner
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Thu, 30 Aug 2012 08:34:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 12310 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
> Indeed. I've forgotten to describe the symptoms if not running under
> gdb, and they are the same (visible bell while moving the mouse or
> pressing any key, but no reaction otherwise; I had to kill Emacs, or
> it crashed after some time).
Meanwhile could you try the patch I earlier sent to Sam. I'll attach it.
Basically, it should help to find the bug earlier.
martin
[windowp.diff (text/plain, inline)]
bzr diff
=== modified file 'src/buffer.c'
--- src/buffer.c 2012-08-24 04:37:57 +0000
+++ src/buffer.c 2012-08-25 13:16:19 +0000
@@ -1351,7 +1351,7 @@
A non-nil FLAG means mark the buffer modified. */)
(Lisp_Object flag)
{
- Lisp_Object fn, buffer, window;
+ Lisp_Object fn, buffer;
#ifdef CLASH_DETECTION
/* If buffer becoming modified, lock the file.
@@ -1401,8 +1401,7 @@
buffers without "modifying" buffers, or redisplay should be
smarter about updating the `*' in mode lines. --gerd */
XSETBUFFER (buffer, current_buffer);
- window = Fget_buffer_window (buffer, Qt);
- if (WINDOWP (window))
+ if (!NILP (Fget_buffer_window (buffer, Qt)))
{
++update_mode_lines;
current_buffer->prevent_redisplay_optimizations_p = 1;
@@ -3195,7 +3194,7 @@
Lisp_Object window;
window = Foverlay_get (overlay, Qwindow);
- if (WINDOWP (window) && XWINDOW (window) != w)
+ if (WINDOW_LIVE_P (window) && XWINDOW (window) != w)
continue;
}
@@ -3337,7 +3336,7 @@
if (endpos != pos && startpos != pos)
continue;
window = Foverlay_get (overlay, Qwindow);
- if (WINDOWP (window) && XWINDOW (window) != w)
+ if (WINDOW_LIVE_P (window) && XWINDOW (window) != w)
continue;
if (startpos == pos
&& (str = Foverlay_get (overlay, Qbefore_string), STRINGP (str)))
@@ -3365,7 +3364,7 @@
if (endpos != pos && startpos != pos)
continue;
window = Foverlay_get (overlay, Qwindow);
- if (WINDOWP (window) && XWINDOW (window) != w)
+ if (WINDOW_LIVE_P (window) && XWINDOW (window) != w)
continue;
if (startpos == pos
&& (str = Foverlay_get (overlay, Qbefore_string), STRINGP (str)))
=== modified file 'src/editfns.c'
--- src/editfns.c 2012-08-21 23:39:56 +0000
+++ src/editfns.c 2012-08-25 12:34:37 +0000
@@ -360,7 +360,7 @@
if (NILP (object))
XSETBUFFER (object, current_buffer);
- else if (WINDOWP (object))
+ else if (WINDOW_LIVE_P (object))
object = XWINDOW (object)->buffer;
if (!BUFFERP (object))
=== modified file 'src/frame.c'
--- src/frame.c 2012-08-22 16:05:04 +0000
+++ src/frame.c 2012-08-25 13:14:31 +0000
@@ -951,7 +951,7 @@
|| FRAME_ICONIFIED_P (XFRAME (f)))
return f;
}
- else if (WINDOWP (minibuf))
+ else if (WINDOW_LIVE_P (minibuf))
{
if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)
|| EQ (WINDOW_FRAME (XWINDOW (minibuf)), f)
@@ -1010,7 +1010,7 @@
if (! FRAME_MINIBUF_ONLY_P (XFRAME (f)))
prev = f;
}
- else if (WINDOWP (minibuf))
+ else if (WINDOW_LIVE_P (minibuf))
{
if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)
|| EQ (WINDOW_FRAME (XWINDOW (minibuf)), f)
@@ -2150,7 +2150,7 @@
set_term_frame_name (f, val);
}
- if (EQ (prop, Qminibuffer) && WINDOWP (val))
+ if (EQ (prop, Qminibuffer) && WINDOW_LIVE_P (val))
{
if (! MINI_WINDOW_P (XWINDOW (val)))
error ("Surrogate minibuffer windows must be minibuffer windows");
=== modified file 'src/keyboard.c'
--- src/keyboard.c 2012-08-23 08:33:56 +0000
+++ src/keyboard.c 2012-08-25 12:34:33 +0000
@@ -3521,7 +3521,7 @@
frame = event->frame_or_window;
if (CONSP (frame))
frame = XCAR (frame);
- else if (WINDOWP (frame))
+ else if (WINDOW_LIVE_P (frame))
frame = WINDOW_FRAME (XWINDOW (frame));
/* There are still some events that don't set this field.
@@ -3738,7 +3738,7 @@
event.kind = HELP_EVENT;
event.frame_or_window = frame;
event.arg = object;
- event.x = WINDOWP (window) ? window : frame;
+ event.x = WINDOW_LIVE_P (window) ? window : frame;
event.y = help;
event.code = pos;
kbd_buffer_store_event (&event);
@@ -4064,7 +4064,7 @@
clear_event (event);
kbd_fetch_ptr = event + 1;
- if (!WINDOWP (window))
+ if (!WINDOW_LIVE_P (window))
window = Qnil;
obj = Fcons (Qhelp_echo,
list5 (frame, help, window, object, position));
@@ -4109,7 +4109,7 @@
frame = event->frame_or_window;
if (CONSP (frame))
frame = XCAR (frame);
- else if (WINDOWP (frame))
+ else if (WINDOW_LIVE_P (frame))
frame = WINDOW_FRAME (XWINDOW (frame));
focus = FRAME_FOCUS_FRAME (XFRAME (frame));
@@ -5192,7 +5192,7 @@
? window_from_coordinates (f, XINT (x), XINT (y), &part, 0)
: Qnil;
- if (WINDOWP (window))
+ if (WINDOW_LIVE_P (window))
{
/* It's a click in window WINDOW at frame coordinates (X,Y) */
struct window *w = XWINDOW (window);
@@ -5621,7 +5621,7 @@
struct frame *f;
int fuzz;
- if (WINDOWP (event->frame_or_window))
+ if (WINDOW_LIVE_P (event->frame_or_window))
f = XFRAME (XWINDOW (event->frame_or_window)->frame);
else if (FRAMEP (event->frame_or_window))
f = XFRAME (event->frame_or_window);
@@ -5789,7 +5789,7 @@
int symbol_num;
int is_double;
- if (WINDOWP (event->frame_or_window))
+ if (WINDOW_LIVE_P (event->frame_or_window))
fr = XFRAME (XWINDOW (event->frame_or_window)->frame);
else if (FRAMEP (event->frame_or_window))
fr = XFRAME (event->frame_or_window);
@@ -9555,7 +9555,7 @@
read using the keymaps in the buffer clicked on,
not the current buffer. If we're at the
beginning of a key sequence, switch buffers. */
- if (WINDOWP (window)
+ if (WINDOW_LIVE_P (window)
&& BUFFERP (XWINDOW (window)->buffer)
&& XBUFFER (XWINDOW (window)->buffer) != current_buffer)
{
@@ -11249,7 +11249,7 @@
if (NILP (frame_or_window))
frame_or_window = selected_window;
- if (WINDOWP (frame_or_window))
+ if (WINDOW_LIVE_P (frame_or_window))
{
struct window *w = decode_live_window (frame_or_window);
=== modified file 'src/keymap.c'
--- src/keymap.c 2012-08-18 06:06:39 +0000
+++ src/keymap.c 2012-08-25 12:41:07 +0000
@@ -1559,7 +1559,7 @@
window = POSN_WINDOW (position);
- if (WINDOWP (window)
+ if (WINDOW_LIVE_P (window)
&& BUFFERP (XWINDOW (window)->buffer)
&& XBUFFER (XWINDOW (window)->buffer) != current_buffer)
{
=== modified file 'src/textprop.c'
--- src/textprop.c 2012-08-17 21:12:11 +0000
+++ src/textprop.c 2012-08-25 13:05:53 +0000
@@ -584,7 +584,7 @@
if (NILP (object))
XSETBUFFER (object, current_buffer);
- if (WINDOWP (object))
+ if (WINDOW_LIVE_P (object))
{
w = XWINDOW (object);
object = w->buffer;
=== modified file 'src/w32inevt.c'
--- src/w32inevt.c 2012-07-30 17:07:33 +0000
+++ src/w32inevt.c 2012-08-25 13:06:20 +0000
@@ -650,7 +650,7 @@
selected now, and the last mouse movement event was
not in it. A minibuffer window will be selected iff
it is active. */
- if (WINDOWP (mouse_window)
+ if (WINDOW_LIVE_P (mouse_window)
&& !EQ (mouse_window, last_mouse_window)
&& !EQ (mouse_window, selected_window))
{
=== modified file 'src/w32term.c'
--- src/w32term.c 2012-08-18 01:42:52 +0000
+++ src/w32term.c 2012-08-25 13:10:02 +0000
@@ -3927,7 +3927,7 @@
w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
struct input_event *emacs_event)
{
- if (! WINDOWP (bar->window))
+ if (! WINDOW_LIVE_P (bar->window))
abort ();
emacs_event->kind = SCROLL_BAR_CLICK_EVENT;
@@ -4420,7 +4420,7 @@
selected now and last mouse movement event was
not in it. Minibuffer window will be selected
only when it is active. */
- if (WINDOWP (window)
+ if (WINDOW_LIVE_P (window)
&& !EQ (window, last_window)
&& !EQ (window, selected_window)
/* For click-to-focus window managers
=== modified file 'src/window.c'
--- src/window.c 2012-08-21 09:27:07 +0000
+++ src/window.c 2012-08-25 12:52:42 +0000
@@ -1969,7 +1969,7 @@
So don't clobber point in that buffer. */
if (! EQ (buf, XWINDOW (selected_window)->buffer)
/* This line helps to fix Horsley's testbug.el bug. */
- && !(WINDOWP (BVAR (b, last_selected_window))
+ && !(WINDOW_LIVE_P (BVAR (b, last_selected_window))
&& w != XWINDOW (BVAR (b, last_selected_window))
&& EQ (buf, XWINDOW (BVAR (b, last_selected_window))->buffer)))
temp_set_point_both (b,
@@ -1980,7 +1980,7 @@
marker_byte_position (w->pointm),
BUF_ZV_BYTE (b)));
- if (WINDOWP (BVAR (b, last_selected_window))
+ if (WINDOW_LIVE_P (BVAR (b, last_selected_window))
&& w == XWINDOW (BVAR (b, last_selected_window)))
bset_last_selected_window (b, Qnil);
}
@@ -2205,7 +2205,7 @@
candidate_p = 0;
else if (MINI_WINDOW_P (w)
&& (EQ (minibuf, Qlambda)
- || (WINDOWP (minibuf) && !EQ (minibuf, window))))
+ || (WINDOW_LIVE_P (minibuf) && !EQ (minibuf, window))))
{
/* If MINIBUF is `lambda' don't consider any mini-windows.
If it is a window, consider only that one. */
@@ -2215,7 +2215,7 @@
candidate_p = 1;
else if (NILP (all_frames))
{
- eassert (WINDOWP (owindow));
+ eassert (WINDOW_LIVE_P (owindow));
candidate_p = EQ (w->frame, XWINDOW (owindow)->frame);
}
else if (EQ (all_frames, Qvisible))
@@ -2244,7 +2244,7 @@
&& (FRAME_TERMINAL (XFRAME (w->frame))
== FRAME_TERMINAL (XFRAME (selected_frame)));
}
- else if (WINDOWP (all_frames))
+ else if (WINDOW_LIVE_P (all_frames))
candidate_p = (EQ (FRAME_MINIBUF_WINDOW (f), all_frames)
|| EQ (XWINDOW (all_frames)->frame, w->frame)
|| EQ (XWINDOW (all_frames)->frame, FRAME_FOCUS_FRAME (f)));
@@ -2348,7 +2348,7 @@
{
if (EQ (XCAR (list), window))
{
- if (WINDOWP (candidate))
+ if (WINDOW_LIVE_P (candidate))
break;
}
else if (candidate_window_p (XCAR (list), window, minibuf,
@@ -2356,7 +2356,7 @@
candidate = XCAR (list);
}
- if (WINDOWP (candidate))
+ if (WINDOW_LIVE_P (candidate))
window = candidate;
}
@@ -2580,7 +2580,7 @@
or Qt otherwise. */
/* Pick a window to start with. */
- if (WINDOWP (obj))
+ if (WINDOW_LIVE_P (obj))
window = obj;
else if (f)
window = FRAME_SELECTED_WINDOW (f);
@@ -3321,7 +3321,7 @@
return Qt;
}
- if (WINDOWP (object))
+ if (WINDOW_LIVE_P (object))
{
struct window *w = XWINDOW (object);
mark_window_display_accurate (object, 0);
@@ -5562,7 +5562,7 @@
the current-selected-window. So we have to be careful which
point of the current-buffer we copy into old_point. */
if (EQ (XWINDOW (data->current_window)->buffer, new_current_buffer)
- && WINDOWP (selected_window)
+ && WINDOW_LIVE_P (selected_window)
&& EQ (XWINDOW (selected_window)->buffer, new_current_buffer)
&& !EQ (selected_window, data->current_window))
old_point = XMARKER (XWINDOW (data->current_window)->pointm)->charpos;
@@ -6495,7 +6495,7 @@
void *user_data)
{
/* delete_frame may set FRAME_ROOT_WINDOW (f) to Qnil. */
- if (WINDOWP (FRAME_ROOT_WINDOW (f)))
+ if (WINDOW_VALID_P (FRAME_ROOT_WINDOW (f)))
foreach_window_1 (XWINDOW (FRAME_ROOT_WINDOW (f)), fn, user_data);
}
@@ -6534,7 +6534,7 @@
freeze_window_start (struct window *w, void *freeze_p)
{
if (MINI_WINDOW_P (w)
- || (WINDOWP (selected_window) /* Can be nil in corner cases. */
+ || (WINDOW_LIVE_P (selected_window) /* Can be nil in corner cases. */
&& (w == XWINDOW (selected_window)
|| (MINI_WINDOW_P (XWINDOW (selected_window))
&& ! NILP (Vminibuf_scroll_window)
=== modified file 'src/xdisp.c'
--- src/xdisp.c 2012-08-21 23:39:56 +0000
+++ src/xdisp.c 2012-08-25 13:16:16 +0000
@@ -2714,7 +2714,7 @@
/* Or show the region if we are in the mini-buffer and W is
the window the mini-buffer refers to. */
|| (MINI_WINDOW_P (XWINDOW (selected_window))
- && WINDOWP (minibuf_selected_window)
+ && WINDOW_LIVE_P (minibuf_selected_window)
&& w == XWINDOW (minibuf_selected_window))))
{
ptrdiff_t markpos = marker_position (BVAR (current_buffer, mark));
@@ -10082,7 +10082,7 @@
Vdeactivate_mark = AREF (vector, 1);
windows_or_buffers_changed = XFASTINT (AREF (vector, 2));
- if (WINDOWP (AREF (vector, 3)))
+ if (WINDOW_LIVE_P (AREF (vector, 3)))
{
struct window *w;
Lisp_Object buffer, charpos, bytepos;
@@ -10251,7 +10251,7 @@
resize_echo_area_exactly (void)
{
if (BUFFERP (echo_area_buffer[0])
- && WINDOWP (echo_area_window))
+ && WINDOW_LIVE_P (echo_area_window))
{
struct window *w = XWINDOW (echo_area_window);
int resized_p;
@@ -13057,7 +13057,8 @@
/* do_pending_window_change could change the selected_window due to
frame resizing which makes the selected window too small. */
- if (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw)
+ if (WINDOW_LIVE_P (selected_window)
+ && (w = XWINDOW (selected_window)) != sw)
{
sw = w;
reconsider_clip_changes (w, current_buffer);
@@ -13336,7 +13337,7 @@
{
do_pending_window_change (1);
/* If selected_window changed, redisplay again. */
- if (WINDOWP (selected_window)
+ if (WINDOW_LIVE_P (selected_window)
&& (w = XWINDOW (selected_window)) != sw)
goto retry;
@@ -13647,7 +13648,8 @@
/* If we just did a pending size change, or have additional
visible frames, or selected_window changed, redisplay again. */
if ((windows_or_buffers_changed && !pending)
- || (WINDOWP (selected_window) && (w = XWINDOW (selected_window)) != sw))
+ || (WINDOW_LIVE_P (selected_window)
+ && (w = XWINDOW (selected_window)) != sw))
goto retry;
/* Clear the face and image caches.
@@ -26358,7 +26360,7 @@
Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (XFRAME (w->frame));
/* Quickly resolve the easy cases. */
- if (!(WINDOWP (hlinfo->mouse_face_window)
+ if (!(WINDOW_LIVE_P (hlinfo->mouse_face_window)
&& XWINDOW (hlinfo->mouse_face_window) == w))
return 0;
if (vpos < hlinfo->mouse_face_beg_row
@@ -27660,7 +27662,7 @@
clear_mouse_face (hlinfo);
/* Not on a window -> return. */
- if (!WINDOWP (window))
+ if (!WINDOW_LIVE_P (window))
return;
/* Reset help_echo_string. It will get recomputed below. */
=== modified file 'src/xfaces.c'
--- src/xfaces.c 2012-08-21 10:21:04 +0000
+++ src/xfaces.c 2012-08-25 13:09:58 +0000
@@ -4350,7 +4350,7 @@
matrices as invalid because they will reference faces freed
above. This function is also called when a frame is
destroyed. In this case, the root window of F is nil. */
- if (WINDOWP (f->root_window))
+ if (WINDOW_VALID_P (f->root_window))
{
clear_current_matrices (f);
++windows_or_buffers_changed;
=== modified file 'src/xterm.c'
--- src/xterm.c 2012-08-18 01:42:52 +0000
+++ src/xterm.c 2012-08-25 13:09:51 +0000
@@ -4235,7 +4235,7 @@
if (scroll_bar_p
&& strcmp (action_name, end_action) == 0
- && WINDOWP (window_being_scrolled))
+ && WINDOW_LIVE_P (window_being_scrolled))
{
struct window *w;
@@ -4512,7 +4512,7 @@
{
struct scroll_bar *bar = (struct scroll_bar *) user_data;
bar->dragging = Qnil;
- if (WINDOWP (window_being_scrolled))
+ if (WINDOW_LIVE_P (window_being_scrolled))
{
x_send_scroll_bar_event (window_being_scrolled,
scroll_bar_end_scroll, 0, 0);
@@ -5557,7 +5557,7 @@
static void
x_scroll_bar_handle_click (struct scroll_bar *bar, XEvent *event, struct input_event *emacs_event)
{
- if (! WINDOWP (bar->window))
+ if (! WINDOW_LIVE_P (bar->window))
abort ();
emacs_event->kind = SCROLL_BAR_CLICK_EVENT;
@@ -6782,7 +6782,7 @@
/* Window will be selected only when it is not selected now and
last mouse movement event was not in it. Minibuffer window
will be selected only when it is active. */
- if (WINDOWP (window)
+ if (WINDOW_LIVE_P (window)
&& !EQ (window, last_window)
&& !EQ (window, selected_window)
/* For click-to-focus window managers
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Thu, 30 Aug 2012 09:31:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 12310 <at> debbugs.gnu.org (full text, mbox):
> Meanwhile could you try the patch I earlier sent to Sam. I'll
> attach it. Basically, it should help to find the bug earlier.
Will try, thanks.
Grüße aus Wien
Werner
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Wed, 05 Sep 2012 04:43:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 12310 <at> debbugs.gnu.org (full text, mbox):
Just now I've got a crash, but I'm not sure whether it belongs to this
bug report. Since I'm using Martin's patch, I'm reporting it here.
The crash happened after composing an email with mew, then trying to
send it with C-c C-c.
I still have the process. Anything else I can investigate?
Werner
======================================================================
Program received signal SIGSEGV, Segmentation fault.
set_buffer_internal_1 (b=0x846958d) at buffer.c:2154
2154 bset_undo_list (b, BVAR (b->base_buffer, undo_list));
(gdb) p b
$1 = (struct buffer *) 0x846958d
(gdb) p b->base_buffer
$2 = (struct buffer *) 0x98000000
(gdb) p undo_list
No symbol "undo_list" in current context.
(gdb) bt full
#0 set_buffer_internal_1 (b=0x846958d) at buffer.c:2154
old_buf = 0x8480af8
tail = <optimized out>
#1 0x08147c06 in command_loop_1 () at keyboard.c:1438
cmd = <optimized out>
keybuf = {12, -1073747977, 159382230, 40, -1073746568, 134626714, 141443984, 138843538,
-1073747977, -1073747977, 159382230, 40, -1073746568, 135518707, 159382230, 138843562, -1073747977,
140927362, -1073747977, 40, 40, 135518989, 159382230, -1073747977, -1073746568, 135978019, 140497734,
4625810, -1207960904, 0}
i = <optimized out>
prev_modiff = 0
prev_buffer = 0x0
#2 0x081aa67d in internal_condition_case (bfun=0x8147b30 <command_loop_1>, handlers=138877346, hfun=
0x813da40 <cmd_error>) at eval.c:1322
val = <optimized out>
c = {
tag = 138843538,
val = 138843538,
next = 0xbfffe968,
gcpro = 0x0,
jmp = {{
__jmpbuf = {0, 142791432, 142791448, -1073746568, 1781480335, -1598877472},
__mask_was_saved = 0,
__saved_mask = {
__val = {134553001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3062816632, 3065862960, 0, 0, 0, 0,
4294967295, 3221219536, 3221219824, 135609939, 2, 3087003588, 3087005952, 1, 0, 3086922907, 3087006392,
3058843712, 1, 1, 0, 1}
}
}},
backlist = 0x0,
handlerlist = 0x0,
lisp_eval_depth = 0,
pdlcount = 2,
poll_suppress_count = 1,
interrupt_input_blocked = 0,
byte_stack = 0x0
}
h = {
handler = 138877346,
var = 138843538,
chosen_clause = 138843562,
tag = 0xbfffe844,
next = 0x0
}
#3 0x0813c375 in command_loop_2 (ignore=138843538) at keyboard.c:1204
val = 138843538
#4 0x081aa599 in internal_catch (tag=138875290, func=0x813c350 <command_loop_2>, arg=138843538)
at eval.c:1079
c = {
tag = 138875290,
val = 138843538,
next = 0x0,
gcpro = 0x0,
jmp = {{
__jmpbuf = {0, 142791432, 142791448, -1073746568, 1781398415, -1598716192},
__mask_was_saved = 0,
__saved_mask = {
__val = {0, 177, 23, 3063290583, 140685641, 140685640, 136248496, 142668888, 136562658, 14,
58, 142668888, 14, 136562658, 3221219912, 0, 0, 0, 3221219912, 400, 3221221571, 136562658, 138967378,
138967376, 138843538, 3221220728, 135976258, 138967378, 138843538, 138843538, 1, 0}
}
}},
backlist = 0x0,
handlerlist = 0x0,
lisp_eval_depth = 0,
pdlcount = 2,
poll_suppress_count = 1,
interrupt_input_blocked = 0,
byte_stack = 0x0
}
#5 0x0813d58a in command_loop () at keyboard.c:1183
No locals.
#6 recursive_edit_1 () at keyboard.c:804
count = 1
val = 0
#7 0x0813d87f in Frecursive_edit () at keyboard.c:868
count = <optimized out>
buffer = 138843538
#8 0x080599d0 in main (argc=2, argv=Cannot access memory at address 0xa0b310e4
) at emacs.c:1654
dummy = 136470960
stack_bottom_variable = 8 '\b'
do_initial_setlocale = <optimized out>
skip_args = 0
rlim = {
rlim_cur = 8388608,
rlim_max = 18446744073709551615
}
no_loadup = 0
junk = 0x0
dname_arg = 0x0
ch_to_dir = 0xb6a873c4 "\300\201\250\266\340\203\250\266\300p\250\266\264p\250\266dp\250\266\003"
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Wed, 05 Sep 2012 09:44:01 GMT)
Full text and
rfc822 format available.
Message #23 received at 12310 <at> debbugs.gnu.org (full text, mbox):
> I still have the process. Anything else I can investigate?
No ideas. Eli what do you think?
martin
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Wed, 05 Sep 2012 16:41:01 GMT)
Full text and
rfc822 format available.
Message #26 received at 12310 <at> debbugs.gnu.org (full text, mbox):
> Date: Wed, 05 Sep 2012 06:42:24 +0200 (CEST)
> From: Werner LEMBERG <wl <at> gnu.org>
> Cc: 12310 <at> debbugs.gnu.org
>
>
> Just now I've got a crash, but I'm not sure whether it belongs to this
> bug report. Since I'm using Martin's patch, I'm reporting it here.
>
> The crash happened after composing an email with mew, then trying to
> send it with C-c C-c.
>
> I still have the process. Anything else I can investigate?
Yes, please. We need to understand why it segfaulted.
> Program received signal SIGSEGV, Segmentation fault.
> set_buffer_internal_1 (b=0x846958d) at buffer.c:2154
> 2154 bset_undo_list (b, BVAR (b->base_buffer, undo_list));
>
> (gdb) p b
> $1 = (struct buffer *) 0x846958d
>
> (gdb) p b->base_buffer
> $2 = (struct buffer *) 0x98000000
What does the following show?
(gdb) p *b->base_buffer
> (gdb) p undo_list
> No symbol "undo_list" in current context.
undo_list is a name of a struct member, not a variable.
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Wed, 05 Sep 2012 16:42:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 12310 <at> debbugs.gnu.org (full text, mbox):
> Date: Wed, 05 Sep 2012 11:44:18 +0200
> From: martin rudalics <rudalics <at> gmx.at>
> CC: 12310 <at> debbugs.gnu.org, "eliz <at> gnu.org" <eliz <at> gnu.org>
>
> > I still have the process. Anything else I can investigate?
>
> No ideas. Eli what do you think?
I just sent some requests.
In any case, I don't think this crash is relevant to this bug report:
there's no mouse-highlight anywhere on the call stack. I suggest to
file a separate bug report.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Wed, 05 Sep 2012 17:07:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 12310 <at> debbugs.gnu.org (full text, mbox):
> In any case, I don't think this crash is relevant to this bug
> report: there's no mouse-highlight anywhere on the call stack. I
> suggest to file a separate bug report.
Here it is:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=12360
Werner
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#12310
; Package
emacs
.
(Wed, 26 Sep 2012 06:47:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 12310 <at> debbugs.gnu.org (full text, mbox):
I'm now running an Emacs compiled from a freshly checked out bzr on
Sept. 6th, and it seems to be stable again. I suggest to close this
bug.
Werner
bug closed, send any further explanations to
12310 <at> debbugs.gnu.org and Werner LEMBERG <wl <at> gnu.org>
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Wed, 26 Sep 2012 06:59:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 24 Oct 2012 11:24:02 GMT)
Full text and
rfc822 format available.
This bug report was last modified 12 years and 236 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.