GNU bug report logs - #43700
28.0.50; Crash creating a second frame

Previous Next

Package: emacs;

Reported by: Andy Moreton <andrewjmoreton <at> gmail.com>

Date: Tue, 29 Sep 2020 10:48:01 UTC

Severity: normal

Found in version 28.0.50

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

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Andy Moreton <andrewjmoreton <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 43700 <at> debbugs.gnu.org
Subject: bug#43700: 28.0.50; Crash creating a second frame
Date: Fri, 2 Oct 2020 01:38:25 +0100
On 01/10/2020 13:53, Eli Zaretskii wrote:
> If you put a breakpoint in lookup_image, on the line indicated below:
> 
>    ptrdiff_t
>    lookup_image (struct frame *f, Lisp_Object spec, int face_id)
>    {
>      struct image *img;
>      EMACS_UINT hash;
> 
>      struct face *face = (face_id >= 0) ? FACE_FROM_ID (f, face_id)
>        : FACE_FROM_ID (f, DEFAULT_FACE_ID);
>      unsigned long foreground = FACE_COLOR_TO_PIXEL (face->foreground, f); <<<<
>      unsigned long background = FACE_COLOR_TO_PIXEL (face->background, f);
> 
> and condition the breakpoint by face == 0, does it break before the
> crash when you perform the steps that reproduces the problem?

Yes it does.

> If 'face' is a NULL pointer there (as your backtrace shows), the next
> line will segfault, and the rest is more-or-less clear.  What I don't
> understand is this part:
> 
>> #11 0x00000004002c86e5 in lookup_image (f=0x5123410, spec=XIL(0xbc42793), face_id=0xffffffff) at C:/emacs/git/emacs/master/src/image.c:2334
> 
> Why does face_id have the value 0xffffffff?  The caller passes -1:

This seems to be because I have "set output-radix 16" in ~/.gdbinit, so 
it displays the raw hex value. After "set output-radix 10" it displays 
the value as -1. Nothing untoward here.

> Did you change anything in your development environment lately, like
> installed a different version of the compiler or Binutils or the MinGW
> runtime?

MSYS2 is a rolling release distro, so the runtime, binutils and compiler 
are regularly updated. Currently that is gcc 10.2.0, and binutils 2.35, 
and msys2 runtime 3.1.7, all of which have been updated in recent weeks.

    AndyM






This bug report was last modified 4 years and 283 days ago.

Previous Next


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