* bug#12310: crash in remember_mouse_glyph
@ 2012-08-30 5:27 Werner LEMBERG
2012-08-30 8:02 ` martin rudalics
0 siblings, 1 reply; 11+ messages in thread
From: Werner LEMBERG @ 2012-08-30 5:27 UTC (permalink / raw
To: 12310
[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
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-08-30 5:27 bug#12310: crash in remember_mouse_glyph Werner LEMBERG
@ 2012-08-30 8:02 ` martin rudalics
2012-08-30 8:16 ` Werner LEMBERG
0 siblings, 1 reply; 11+ messages in thread
From: martin rudalics @ 2012-08-30 8:02 UTC (permalink / raw
To: Werner LEMBERG; +Cc: 12310
> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-08-30 8:02 ` martin rudalics
@ 2012-08-30 8:16 ` Werner LEMBERG
2012-08-30 8:32 ` martin rudalics
0 siblings, 1 reply; 11+ messages in thread
From: Werner LEMBERG @ 2012-08-30 8:16 UTC (permalink / raw
To: rudalics; +Cc: 12310
> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-08-30 8:16 ` Werner LEMBERG
@ 2012-08-30 8:32 ` martin rudalics
2012-08-30 9:28 ` Werner LEMBERG
0 siblings, 1 reply; 11+ messages in thread
From: martin rudalics @ 2012-08-30 8:32 UTC (permalink / raw
To: Werner LEMBERG; +Cc: 12310
[-- Attachment #1: Type: text/plain, Size: 378 bytes --]
> 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
[-- Attachment #2: windowp.diff --]
[-- Type: text/plain, Size: 16070 bytes --]
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
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-08-30 8:32 ` martin rudalics
@ 2012-08-30 9:28 ` Werner LEMBERG
2012-09-05 4:42 ` Werner LEMBERG
0 siblings, 1 reply; 11+ messages in thread
From: Werner LEMBERG @ 2012-08-30 9:28 UTC (permalink / raw
To: rudalics; +Cc: 12310
> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-08-30 9:28 ` Werner LEMBERG
@ 2012-09-05 4:42 ` Werner LEMBERG
2012-09-05 9:44 ` martin rudalics
2012-09-05 16:40 ` Eli Zaretskii
0 siblings, 2 replies; 11+ messages in thread
From: Werner LEMBERG @ 2012-09-05 4:42 UTC (permalink / raw
To: rudalics; +Cc: 12310
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"
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-09-05 4:42 ` Werner LEMBERG
@ 2012-09-05 9:44 ` martin rudalics
2012-09-05 16:41 ` Eli Zaretskii
2012-09-05 16:40 ` Eli Zaretskii
1 sibling, 1 reply; 11+ messages in thread
From: martin rudalics @ 2012-09-05 9:44 UTC (permalink / raw
To: Werner LEMBERG; +Cc: 12310
> I still have the process. Anything else I can investigate?
No ideas. Eli what do you think?
martin
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-09-05 4:42 ` Werner LEMBERG
2012-09-05 9:44 ` martin rudalics
@ 2012-09-05 16:40 ` Eli Zaretskii
1 sibling, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2012-09-05 16:40 UTC (permalink / raw
To: Werner LEMBERG; +Cc: 12310
> Date: Wed, 05 Sep 2012 06:42:24 +0200 (CEST)
> From: Werner LEMBERG <wl@gnu.org>
> Cc: 12310@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.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-09-05 9:44 ` martin rudalics
@ 2012-09-05 16:41 ` Eli Zaretskii
2012-09-05 17:06 ` Werner LEMBERG
0 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2012-09-05 16:41 UTC (permalink / raw
To: martin rudalics; +Cc: 12310
> Date: Wed, 05 Sep 2012 11:44:18 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: 12310@debbugs.gnu.org, "eliz@gnu.org" <eliz@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.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-09-05 16:41 ` Eli Zaretskii
@ 2012-09-05 17:06 ` Werner LEMBERG
2012-09-26 6:44 ` Werner LEMBERG
0 siblings, 1 reply; 11+ messages in thread
From: Werner LEMBERG @ 2012-09-05 17:06 UTC (permalink / raw
To: eliz; +Cc: 12310
> 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
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#12310: crash in remember_mouse_glyph
2012-09-05 17:06 ` Werner LEMBERG
@ 2012-09-26 6:44 ` Werner LEMBERG
0 siblings, 0 replies; 11+ messages in thread
From: Werner LEMBERG @ 2012-09-26 6:44 UTC (permalink / raw
To: eliz; +Cc: 12310
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
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2012-09-26 6:44 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-30 5:27 bug#12310: crash in remember_mouse_glyph Werner LEMBERG
2012-08-30 8:02 ` martin rudalics
2012-08-30 8:16 ` Werner LEMBERG
2012-08-30 8:32 ` martin rudalics
2012-08-30 9:28 ` Werner LEMBERG
2012-09-05 4:42 ` Werner LEMBERG
2012-09-05 9:44 ` martin rudalics
2012-09-05 16:41 ` Eli Zaretskii
2012-09-05 17:06 ` Werner LEMBERG
2012-09-26 6:44 ` Werner LEMBERG
2012-09-05 16:40 ` Eli Zaretskii
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.