Subject: bug#8562: Emacs 23.1 and later don't work in windows 98

From: Eli Zaretskii <[email-masked]>
Date: Tue, 24 May 2011 23:37:55 +0300

> Date: Tue, 24 May 2011 21:32:05 +0200
> From: oslsachem <[email-masked]>
> Cc: [email-masked]
> 
> > This will enable additional checking in various places in Emacs.  If
> > we are lucky, you will see Emacs aborting somewhere earlier during its
> > startup, and that will hopefully show us the problem which leads to
> > this crash.
> 
> http://www.speedyshare.com/files/28627438/Emacs-23.3GDBCFlags.txt
> 
> (gdb) where
> #0  w32_abort () at w32fns.c:7365
> #1  0x01050284 in window_box_height (w=0x37f3c00) at xdisp.c:1104
> #2  0x01207f8b in required_matrix_height (w=0x37f3c00) at dispnew.c:1999

Thanks.  It aborts here:

    INLINE int
    window_box_height (w)
	 struct window *w;
    {
      struct frame *f = XFRAME (w->frame);
      int height = WINDOW_TOTAL_HEIGHT (w);

      xassert (height >= 0);  <<<<<<<<<<<<<<<<<<<<<

Which means the value of height is non-positive.  So please go to
frame #1 and show the values of height, w->total_lines and
w->total_cols.  I suspect that they are all zero.  If that is true,
please see how did that happen, because the function make_frame was
supposed to set this window (the root window of the newly created
frame) to 10x10 dimensions, around line 385:

  /* 10 is arbitrary,
     just so that there is "something there."
     Correct size will be set up later with change_frame_size.  */

  SET_FRAME_COLS (f, 10);
  FRAME_LINES (f) = 10;

  XSETFASTINT (XWINDOW (root_window)->total_cols, 10);
  XSETFASTINT (XWINDOW (root_window)->total_lines, (mini_p ? 9 : 10));

If total_lines and total_cols get the right values here, then please
set a watchpoint on these fields, or step through the code between the
above and where it aborts, and see where they are reset to zero.

Thanks.