Subject: bug#66589: 30.0.50; core dump in redisplay

From: Evgeny Zajcev <[email-masked]>
Date: Tue, 17 Oct 2023 18:11:43 +0300

вт, 17 окт. 2023 г. в 18:02, Eli Zaretskii <[email-masked]>:

> > From: Evgeny Zajcev <[email-masked]>
> > Date: Tue, 17 Oct 2023 16:36:17 +0300
> > Cc: [email-masked]
> >
> > And which Emacs 29 are we talking about -- Emacs 29.1 as released or
> > > the current emacs-29 branch?
> > >
> > >
> > I've been using GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+
> > Version 3.24.20, cairo version 1.16.0) before moving to Emacs30
>
> Emacs 29.0.50 is before Emacs 29.1 was released?
>
> > (gdb) up 18
> > #18 produce_glyphless_glyph (it=0x7ffef46c5660,
> > for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at
> > xdisp.c:32165
> > 32165             sprintf (buf, "%0*X", it->c < 0x10000 ? 4 : 6, it->c +
> > 0u);
> > (gdb) p it->c
> > $1 = -233054
> > (gdb)
>
> This is not a valid character, I wonder how it got to this function.
> Please do the below and tell what GDB produces as result:
>
>   (gdb) frame 18
>   (gdb) p/x it->c
>   (gdb) p/x it->char_to_display
>   (gdb) p it->method
>   (gdb) pgrowx it->glyph_row
>

(gdb) frame 18
#18 produce_glyphless_glyph (it=0x7ffef46c5660,
for_no_font=for_no_font@entry=false, acronym=acronym@entry=0x0) at
xdisp.c:32165
32165             sprintf (buf, "%0*X", it->c < 0x10000 ? 4 : 6, it->c +
0u);
(gdb) p/x it->c
$2 = 0xfffc71a2
(gdb) p/x it->char_to_display
$3 = 0xa
(gdb) p it->method
$4 = GET_FROM_BUFFER
(gdb) pgrowx it->glyph_row
Undefined command: "pgrowx".  Try "help".
(gdb) source src/.gdbinit
Warning: /home/lg/dev/emacs-30/../lwlib: No such file or directory.
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from
terminal]
DISPLAY = :0
TERM = screen-256color
Breakpoint 1 at 0x55ccdf18ac6a: file emacs.c, line 446.
Breakpoint 2 at 0x55ccdf27ad60: file xterm.c, line 26945.
(gdb) pgrowx it->glyph_row
Cannot access memory at address 0x2c
(gdb)

>
> If GDB says it doesn't know abot "pgrowx", type this:
>
>   (gdb) source /path/to/emacs/src/.gdbinit
>
> and then repeat the pgrowx command.
>
> Also, any chance you can describe what were you doing when the abort
> happened?  In particular, what was in the buffer that was on display
> in this window?
>

I've been debuging process filter error, I've turned on `debug-on-error`,
waited for backtrace buffer to pop up and just after it popped up (I've
been able to see it contents) Emacs aborted.
I've restarted Emacs, did the same, backtrace buffer popped up without
abort at this time.  Also, I've been experimenting with header line at the
moment,  so my process filter has been triggering header line redrawing.
Current buffer was actually a Telegram chat opened in telega, so it might
have some strange unicode characters in it

-- 
lg