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

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

[debbugs-tracker] bug#11367: closed (24.0.95.1 Crash: Windows 7 using eg


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#11367: closed (24.0.95.1 Crash: Windows 7 using egg)
Date: Sun, 29 Apr 2012 17:33:02 +0000

Your message dated Sun, 29 Apr 2012 20:30:31 +0300
with message-id <address@hidden>
and subject line Re: bug#11367: 24.0.95.1 Crash: Windows 7 using egg
has caused the debbugs.gnu.org bug report #11367,
regarding 24.0.95.1 Crash: Windows 7 using egg
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
11367: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11367
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.0.95.1 Crash: Windows 7 using egg Date: Fri, 27 Apr 2012 15:03:51 -0500 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


--- End Message ---
--- Begin Message --- Subject: Re: bug#11367: 24.0.95.1 Crash: Windows 7 using egg Date: Sun, 29 Apr 2012 20:30:31 +0300
> Date: Sat, 28 Apr 2012 23:44:15 +0300
> From: Eli Zaretskii <address@hidden>
> Cc: address@hidden
> 
> > From: Michael Kleehammer <address@hidden>
> > 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  <address@hidden>
+
+       * 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  <address@hidden>
 
        * 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];




--- End Message ---

reply via email to

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