GNU bug report logs - #28710
27.0.50; eassert failure in maybe_produce_line_number

Previous Next

Package: emacs;

Reported by: Alex <agrambot <at> gmail.com>

Date: Wed, 4 Oct 2017 22:33:02 UTC

Severity: normal

Tags: moreinfo

Merged with 27668

Found in versions 26.0.50, 27.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #52 received at 28710 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Alex <agrambot <at> gmail.com>
Cc: 28710 <at> debbugs.gnu.org
Subject: Re: bug#28710: 27.0.50; eassert failure in maybe_produce_line_number
Date: Mon, 09 Oct 2017 21:51:09 +0300
> From: Alex <agrambot <at> gmail.com>
> Cc: 28710 <at> debbugs.gnu.org
> Date: Mon, 09 Oct 2017 11:56:20 -0600
> 
> > Thanks.  I installed a change that should fix the problem, please try
> > the latest emacs-26 branch.
> 
> Looks like it's fixed, thanks.

Great, thanks for testing.

> >   Thread 1 hit Breakpoint 3, Fredraw_display () at dispnew.c:3032
> >   3032      FOR_EACH_FRAME (tail, frame)
> >   (gdb) n
> >   3033        if (FRAME_VISIBLE_P (XFRAME (frame)))
> >   (gdb) p XFRAME(frame)
> >   $1 = (struct frame *) 0x1b5e380 <dumped_data+4020672>
> >   (gdb) p $1->redisplay
> >   $2 = true
> >   (gdb) watch -l $1->redisplay
> >   Hardware watchpoint 4: -location $1->redisplay
> >   (gdb) commands
> >      > bt
> >      > continue
> >      > end
> >   (gdb) continue
> >
> > and then continue with the recipe, and show all the backtraces you get.
> 
> Unfortunately, when I try to use XFRAME, I get:
>   No symbol "__builtin_assume_aligned" in current context.

OK, then you could use a slightly different way:

  Thread 1 hit Breakpoint 3, Fredraw_display () at dispnew.c:3032
  3032      FOR_EACH_FRAME (tail, frame)
  (gdb) n
  3033        if (FRAME_VISIBLE_P (XFRAME (frame)))
  (gdb) p frame
  $1 = XIL(0xa000000001b5e380)
  (gdb) xframe
  $2 = (struct frame *) 0x1b5e380 <dumped_data+4020672>
  "emacs <at> HOME-C4E4A596F7"
  (gdb) p $2->redisplay
  $3 = true
  (gdb) watch -l $2->redisplay
  Hardware watchpoint 4: -location $2->redisplay
  (gdb) commands
  Type commands for breakpoint(s) 4, one per line.
  End with a line saying just "end".
    >bt
    >continue
    >end
  (gdb) continue

(The "xframe" command is defined in src/.gdbinit, so if you are not
running GDB from the src directory, you will need to tell it to read
that file:

  (gdb) source /path/to/emacs/src/.gdbinit

> I tried the following workaround, but no backtraces showed up:
> 
> Thread 1 "emacs-26.0.60.4" hit Breakpoint 1, Fredraw_display ()
>     at dispnew.c:3032
> 3032	  FOR_EACH_FRAME (tail, frame)
> (gdb) n
> 3033	    if (FRAME_VISIBLE_P (XFRAME (frame)))
> (gdb) p (struct frame *) XLI(frame) - Lisp_Vectorlike
> $3 = (struct frame *) 0x15c9285 <bss_sbrk_buffer+8055909>

When I try this, I get a different frame pointer and a warning message
from GDB.  So let's hope this workaround is incorrect ;-)

Thanks.




This bug report was last modified 7 years and 277 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.