Subject: bug#70760: 29.3.50; core dumps when copy in other apps

From: Eli Zaretskii <[email-masked]>
Date: Sat, 04 May 2024 10:11:03 +0300

> From: Kun Liu <[email-masked]>
> Date: Fri, 3 May 2024 14:30:37 -0700
> 
> Emacs is running inside VirtualBox on Windows 11. It randomly crashes
> when I do a copy from other apps running on the host, e.g., Chrome on
> Windows 11.

Emacs seems to segfault trying to display an invalid Lisp object.  The
invalid object seems to come from an error message.  IOW, Emacs tried
to signal an error, and crashed showing the data of the error.  I have
no idea how VirtualBox converts Windows clipboard data into X
clipboard/selection data -- do you happen to know?  The reason of this
problem is probably there.

However, please provide more details, as the backtrace below doesn't
say enough.

First, please say "source src/.gdbinit" in GDB, to have special
commands in .gdbinit defined, which help in debugging Emacs.

Second, please rebuild Emacs with "-O0 -g3", so that debug info is
more comprehensive.

After that, when Emacs crashes, show the backtrace, which should now
include the Lisp backtrace as well (by virtue of src/.gdbinit).

And finally, the values of the following variables are of interest:

> #11 0x000055b069603f3e in print_error_message (data=<optimized out>, data@entry=0x55b085976613,
> stream=stream@entry=0x30, context=<optimized out>, caller=caller@entry=0x7fe0) at lisp.h:1172
>         obj = <optimized out>
>         li = {tortoise = 0x55b0859765f3, max = 2, n = 0, q = 1}
>         sep = 0x55b0696ad6a0 ", "
>         errname = 0x11f40
>         errmsg = 0x55b06c78e6e4
>         file_error = 0x0
>         tail = 0x55b0859765e3

In this call-stack frame, what is the value of 'data'?  It is a Lisp
object, so showing it should involve using the commands xtype, xcar,
and xcdr, and probably also xstring (which are defined in .gdbinit).

Also, if you know what was the text copied from the other application,
please show that text.

Thanks.