Subject: bug#38748: 28.0.50; crash on MacOS 10.15.2

From: Andrii Kolomoiets <[email-masked]>
Date: Wed, 01 Jan 2020 22:42:19 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Andrii Kolomoiets <[email-masked]>
>> Cc: [email-masked],  [email-masked]
>> Date: Sun, 29 Dec 2019 21:01:42 +0200
>> 
>> I can print the 'last_marked_index':
>> 
>> (gdb) p last_marked_index
>> $2 = 41
>> 
>> But what can I do with 'last_marked'?
>> 
>> (gdb) p last_marked[40]
>> 'last_marked' has unknown type; cast it to its declared type
>
> last_marked is an array of Lisp objects, arranged in circular order,
> i.e. when the index reaches the last element, it is reset back to
> zero.
>
> To print the object at last_marked[i], for some i, you do
>
>   (gdb) p last_marked[i]
>   (gdb) xtype
>
> The xtype command will tell you the type of the Lisp object.  You then
> display it with the corresponding xTYPE command: xint for an integer,
> xcons for a cons cell, xstring for a string, xvector for a vector,
> xbuffer for a buffer, etc.  Here's a short example:
>
>   (gdb) p last_marked_index
>   $2 = 1
>   (gdb) p last_marked[0]
>   $3 = XIL(0x8000000006287630)
>   (gdb) xtype
>   Lisp_String
>   (gdb) xstring
>   $4 = (struct Lisp_String *) 0x6287630
>   " *buffer-defaults*"

I'm still have no luck to print last_marked item:

(gdb) p last_marked_index
$1 = 278
(gdb) p last_marked[277]
'last_marked' has unknown type; cast it to its declared type

IDK if it make sense, casting last_modified to Lisp_Object gives me
this:

(gdb) p (Lisp_Object)last_marked
$6 = XIL(0x102dc4203)
(gdb) xtype
Lisp_Cons
(gdb) xcons
$7 = (struct Lisp_Cons *) 0x102dc4200
{
  u = {
    s = {
      car = XIL(0x102a3aa15), 
      u = {
        cdr = XIL(0x102dc4213), 
        chain = 0x102dc4213
      }
    }, 
    gcaligned = 0x15
  }
}

But I found the commit after which error is occurs:
b2949d39261e82c33572ba8a250298ef0b165b95

Commenting out that 'ok = false;' line make Emacs works without errors.

Justin, can you please check if Emacs prior to that commit is works fine
for you?