GNU bug report logs -
#11367
24.0.95.1 Crash: Windows 7 using egg
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#11367: 24.0.95.1 Crash: Windows 7 using egg
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 11367 <at> debbugs.gnu.org.
--
11367: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11367
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
> Date: Sat, 28 Apr 2012 23:44:15 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
> Cc: 11367 <at> debbugs.gnu.org
>
> > From: Michael Kleehammer <michael <at> kleehammer.com>
> > Date: Sat, 28 Apr 2012 14:27:00 -0500
> >
> > > I see I will need to install msysgit and debug this locally. Last
> > > request:
> > >
> > > (gdb) p (g-2)->object
> >
> > $13 = 60228101
> >
> > > (gdb) xtype
> >
> > Lisp_Vectorlike
> > PVEC_BUFFER
> >
> > > (gdb) p it3.object
> >
> > $14 = 84618657
> >
> > > (gdb) xtype
> >
> > Lisp_String
>
> Thanks. I've reproduced the problem, and will debug it (probably
> tomorrow; gray hair says it's unwise to try fixing redisplay after
> 11PM ;-).
I think I fixed this (revision 107922 on the emacs-24 branch). The
diffs are below, in case you want (and are able) to try them now.
Thanks.
=== modified file 'src/ChangeLog'
--- src/ChangeLog 2012-04-24 02:58:26 +0000
+++ src/ChangeLog 2012-04-29 17:19:08 +0000
@@ -1,3 +1,10 @@
+2012-04-29 Eli Zaretskii <eliz <at> gnu.org>
+
+ * xdisp.c (pos_visible_p): If already at a newline from the
+ display string before the 'while' loop, don't walk back the glyphs
+ from it3.glyph_row. Solves assertion violation when the display
+ string begins with a newline (egg.el). (Bug#11367)
+
2012-04-24 Chong Yidong <cyd <at> gnu.org>
* xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
=== modified file 'src/xdisp.c'
--- src/xdisp.c 2012-04-23 16:22:23 +0000
+++ src/xdisp.c 2012-04-29 17:19:08 +0000
@@ -1375,6 +1375,7 @@ pos_visible_p (struct window *w, EMACS_I
Lisp_Object startpos, endpos;
EMACS_INT start, end;
struct it it3;
+ int it3_moved;
/* Find the first and the last buffer positions
covered by the display string. */
@@ -1431,6 +1432,15 @@ pos_visible_p (struct window *w, EMACS_I
begins. */
start_display (&it3, w, top);
move_it_to (&it3, -1, 0, top_y, -1, MOVE_TO_X | MOVE_TO_Y);
+ /* If it3_moved stays zero after the 'while' loop
+ below, that means we already were at a newline
+ before the loop (e.g., the display string begins
+ with a newline), so we don't need to (and cannot)
+ inspect the glyphs of it3.glyph_row, because
+ PRODUCE_GLYPHS will not produce anything for a
+ newline, and thus it3.glyph_row stays at its
+ stale content it got at top of the window. */
+ it3_moved = 0;
/* Finally, advance the iterator until we hit the
first display element whose character position is
CHARPOS, or until the first newline from the
@@ -1442,6 +1452,7 @@ pos_visible_p (struct window *w, EMACS_I
if (IT_CHARPOS (it3) == charpos
|| ITERATOR_AT_END_OF_LINE_P (&it3))
break;
+ it3_moved = 1;
set_iterator_to_next (&it3, 0);
}
top_x = it3.current_x - it3.pixel_width;
@@ -1452,7 +1463,8 @@ pos_visible_p (struct window *w, EMACS_I
display string, move back over the glyphs
produced from the string, until we find the
rightmost glyph not from the string. */
- if (IT_CHARPOS (it3) != charpos && EQ (it3.object, string))
+ if (it3_moved
+ && IT_CHARPOS (it3) != charpos && EQ (it3.object, string))
{
struct glyph *g = it3.glyph_row->glyphs[TEXT_AREA]
+ it3.glyph_row->used[TEXT_AREA];
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
I can pretty consistently crash 24.0.95.1 (and could some previous
pre-releases).
Since I am on Windows, I'm not sure how to help debug this. How can I
generate a useful stack trace for this?
The step that crashes is to add a new file to egg (the emacs git interface).
The steps to reproduce are:
* Create an empty repository.
* Create file1, add, and commit with our without egg.
* Create 2 new files.
* Run egg-status on the directory which will show 2 untracked files.
* Put the cursor on the first untracked file and press 's' to stage it.
After the crash, the file is staged, so the error is probably during the
refresh of the status, but I am not sure.
Is there anything else I can do to test this?
I'm using msysgit: git version 1.7.7.msysgit.1
I am an admin on this box.
The information from report-emacs-bug (which I can't use because I can't
send email from it) is below. Note that the recent input is not useful
since this is a new instance.
In GNU Emacs 24.0.95.1 (i386-mingw-nt6.1.7601)
of 2012-04-02 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
`configure --with-gcc (4.6) --no-opt --enable-checking --cflags
-ID:/devel/emacs/libs/libXpm-3.5.8/include
-ID:/devel/emacs/libs/libXpm-3.5.8/src
-ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
-ID:/devel/emacs/libs/giflib-4.1.4-1/include
-ID:/devel/emacs/libs/jpeg-6b-4/include
-ID:/devel/emacs/libs/tiff-3.8.2-1/include
-ID:/devel/emacs/libs/gnutls-3.0.9/include'
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: ENU
value of $XMODIFIERS: nil
locale-coding-system: cp1252
default enable-multibyte-characters: t
Major mode: Text
Minor modes in effect:
shell-dirtrack-mode: t
diff-auto-refine-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
iswitchb-mode: t
cua-mode: t
which-function-mode: t
show-paren-mode: t
icomplete-mode: t
global-auto-revert-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
unify-8859-on-decoding-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
M-x v e r s i o n <return> M-x r e p o r t - e m <tab>
<return>
Recent messages:
Loading ~/.emacs.d/init-05-cmode...done
Loading ~/.emacs.d/init-05-dired...done
Loading ~/.emacs.d/init-05-python...done
Loading ~/.emacs.d/init-05-sql...done
Loading ~/.emacs.d/init-07-compilation...done
Loading ~/.emacs.d/init-07-modes...done
Loading ~/.emacs.d/init-09-bindings...done
Loading c:/Users/Michael/.emacs.d/init-99-local.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.
GNU Emacs 24.0.95.1 (i386-mingw-nt6.1.7601) of 2012-04-02 on MARVIN
Load-path shadows:
~/.emacs.d/custom hides c:/bin/emacs/lisp/custom
~/.emacs.d/misc/python hides c:/bin/emacs/lisp/progmodes/python
Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums
mail-utils server windmove tramp tramp-compat auth-source eieio byte-opt
bytecomp byte-compile
cconv macroexp assoc gnus-util mm-util mail-prsvr password-cache shell
pcomplete format-spec
tramp-loaddefs ack-emacs thingatpt egg edmacro kmacro derived diff-mode
easy-mmode ffap
ediff-merg ediff-diff ediff-wind ediff-help ediff-util ediff-mult
ediff-init ediff electric cl
python-21 python dired-x easymenu dired compile comint regexp-opt
ansi-color ring undo-tree
uniquify iswitchb avoid cua-base browse-kill-ring+ browse-kill-ring advice
help-fns
advice-preload whitespace align2 align icomplete+ which-func imenu paren
icomplete autorevert
cus-start cus-load time-date tooltip ediff-hook vc-hooks lisp-float-type
mwheel dos-w32
disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe
lisp-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet
lao korean japanese
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese case-table
epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files
text-properties overlay sha1 md5 base64 format env code-pages mule custom
widget
hashtable-print-readable backquote make-network-process multi-tty emacs)
Michael Kleehammer
[Message part 5 (text/html, inline)]
This bug report was last modified 13 years and 24 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.