GNU bug report logs - #76091
31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion failed: BUFFERP (a)

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Gregor Zattler <telegraph@HIDDEN>; Done: Pip Cet <pipcet@HIDDEN>; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 8 Feb 2025 12:28:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 08 07:28:28 2025
Received: from localhost ([127.0.0.1]:39006 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgjwi-00060H-38
	for submit <at> debbugs.gnu.org; Sat, 08 Feb 2025 07:28:28 -0500
Received: from mail-4322.protonmail.ch ([185.70.43.22]:35505)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgjwf-000600-2p
 for 76091 <at> debbugs.gnu.org; Sat, 08 Feb 2025 07:28:26 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1739017698; x=1739276898;
 bh=x/bd1xmitPCG4CtzzFIjpXkCW1FybGOVfw5ItqMVrHg=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=cx2IHKia7R1W5R7ScJW5pPSYWo3Z3oVR5E6XlSeWbNGb0hP8gVgfNr4nmVp42Ulnn
 BVt+8n508zyExPz9JRKF3EXsnviQWg5JbYfSPx9tObkbDT9CvUSmsr6iScDlLV1JrL
 QE28eM0KHn5ZQHVTn4esJYwVX7O214oQlOus2wI1WIbcDsgExEWChRYBPY11f97cmV
 rqqY0y7N4TrbniEmAwU6UMpjK2HXw9MSBm3Nd4Cn6XV0IJYRO7gqj3DKxSgOT9T89i
 InVSqVqDQ6VR6NbbsP3B+k6d1wpehI3kgo7870HPOQsdfpeXdRnb71VEzWd3YIRF2k
 BnMuUIQIT6CTg==
Date: Sat, 08 Feb 2025 12:28:12 +0000
To: Eli Zaretskii <eliz@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <87y0ygaaf5.fsf@HIDDEN>
In-Reply-To: <8634go3b3l.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <m2ed094uqc.fsf@HIDDEN>
 <8734gpeo2i.fsf@HIDDEN>
 <4FBD732C-609F-4A2B-94FB-4E11566DDBC2@HIDDEN>
 <1B7A2AD7-E15B-4C5D-8DBA-6D878FC9E1F1@HIDDEN>
 <878qqhczid.fsf@HIDDEN> <86msew528r.fsf@HIDDEN>
 <87wme0buql.fsf@HIDDEN> <8634go3b3l.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 3cfdf0607e7f8c56d6ab4b42f59ed1c472c59629
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: gerd.moellmann@HIDDEN, 76091 <at> debbugs.gnu.org, telegraph@HIDDEN,
 eller.helmut@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Eli Zaretskii" <eliz@HIDDEN> writes:

>> Date: Sat, 08 Feb 2025 10:24:01 +0000
>> From: Pip Cet <pipcet@HIDDEN>
>> Cc: gerd.moellmann@HIDDEN, eller.helmut@HIDDEN, telegraph@HIDDEN,=
 76091 <at> debbugs.gnu.org
>>
>> "Eli Zaretskii" <eliz@HIDDEN> writes:
>>
>> >> Date: Fri, 07 Feb 2025 19:43:18 +0000
>> >> From: Pip Cet <pipcet@HIDDEN>
>> >> Cc: Helmut Eller <eller.helmut@HIDDEN>, Gregor Zattler <telegraph@=
gmx.net>, Eli Zaretskii <eliz@HIDDEN>, 76091-done <at> debbugs.gnu.org
>> >>
>> >> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes:
>> >>
>> >> >>> Well, yes.  I'll split it up into individual patches, so we can r=
eview
>> >> >>> them one by one?
>> >> >>
>> >> >> Not necessary, but thanks.
>> >> >
>> >> > I'm through. Except for the shrinking case that you already mention=
ed I haven't found other problems.
>> >> >
>> >> > So LGTM.
>> >>
>> >> Thanks!
>> >>
>> >> Hope I didn't break anything, but I just pushed the series.  Please f=
eel
>> >> free to revert or fix as appropriate!
>> >
>> > Here I get compilation warnings:
>> >
>> >   igc.c: In function 'igc_realloc_ambig':
>> >   igc.c:3324:55: warning: potential null pointer dereference [-Wnull-d=
ereference]
>> >    3324 |   ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.sta=
rt;
>> > =09|                                                   ~~~~^~~~~~
>> >   igc.c:3324:36: warning: potential null pointer dereference [-Wnull-d=
ereference]
>> >    3324 |   ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.sta=
rt;
>> > =09|                                ~~~~^~~~
>> >   igc.c:3324:55: warning: potential null pointer dereference [-Wnull-d=
ereference]
>> >    3324 |   ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.sta=
rt;
>> > =09|                                                   ~~~~^~~~~~
>> >   igc.c:3324:36: warning: potential null pointer dereference [-Wnull-d=
ereference]
>> >    3324 |   ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.sta=
rt;
>> > =09|                                ~~~~^~~~
>> >   igc.c: In function 'igc_xpalloc_exact':
>> >   igc.c:3397:27: warning: argument to variable-length array may be too=
 large [-Wvla-larger-than=3D]
>> >    3397 |       volatile mps_word_t area[(item_size + (sizeof (mps_wor=
d_t) - 1))
>> > =09|                           ^~~~
>> >   igc.c:3397:27: note: limit is 4031 bytes, but argument may be as lar=
ge as 4294967292
>> >   igc.c: In function 'igc_xnrealloc_ambig':
>> >   igc.c:3415:57: warning: potential null pointer dereference [-Wnull-d=
ereference]
>> >    3415 |   ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.s=
tart;
>> > =09|                                                     ~~~~^~~~~~
>> >   igc.c:3415:38: warning: potential null pointer dereference [-Wnull-d=
ereference]
>> >    3415 |   ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.s=
tart;
>> > =09|                                  ~~~~^~~~
>> >   igc.c:3415:57: warning: potential null pointer dereference [-Wnull-d=
ereference]
>> >    3415 |   ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.s=
tart;
>> > =09|                                                     ~~~~^~~~~~
>> >   igc.c:3415:38: warning: potential null pointer dereference [-Wnull-d=
ereference]
>> >    3415 |   ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.s=
tart;
>> > =09|                                  ~~~~^~~~
>> >
>> > Most of them seem to be because root_find can return NULL.  The nit
>>
>> Those are harmless; I'll add an eassert (r), that should prevent the
>> warnings (together with Gerd's fix for the igc_realloc (NULL) case).
>
> Not sure if you already did, but:
>
>  . I still see the warnings, and
>  . this is an optimized build, so eassert compiles to nothing

Oh, thanks! Yeah, I can see them in optimized builds, and they require
eassume, not eassert.  I'll suggest a patch once I've thought of a good
way to avoid those, but for now, we just might have to ignore the
warnings.

>> > Also, does this:
>> >
>> >> (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unles=
s
>> >> we carefully write the scan function not to assume that the two
>> >> half-words comprising a 64-bit Lisp_Object are in sync.  As Eli was v=
ery
>> >> opposed to the idea of removing WIDE_EMACS_INT again, we might have t=
o
>> >> find a workaround there.)
>> >
>> > mean that the wide-int 32-bit build is now in trouble?
>>
>> Yes, it does.  All scanning functions need to be written to deal with
>> half-written Lisp_Object values in that case.  (Easier than it sounds
>> because we USE_LSB_TAG).
>>
>> > Or did you install some workaround for the above?
>>
>> Not yet :-)
>
> Hopefully, soon then?

I don't think there are any fundamental problems there, but it needs
some time and the setjmp() issues seem more important right now.

(Two issues: nativecomp uses %rbp and may call setjmp directly, which
scrambles the %rbp value before saving it in a jmp_buf.

And it seems that push_handler_nosignal allocates the jmp_buf from a
non-root but doesn't trace it in any way whatsoever. I have no idea why
that isn't causing more frequent crashes....)

Pip





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 8 Feb 2025 11:55:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 08 06:55:08 2025
Received: from localhost ([127.0.0.1]:38916 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgjQR-0004SY-N9
	for submit <at> debbugs.gnu.org; Sat, 08 Feb 2025 06:55:08 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:35166)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tgjQP-0004OQ-0Z
 for 76091 <at> debbugs.gnu.org; Sat, 08 Feb 2025 06:55:05 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tgjQI-0002Tn-Ho; Sat, 08 Feb 2025 06:54:58 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=eDAhu17zsTeSI4U5loV+IiK0ROMijuwvqIK3GFlF3gI=; b=PpShw409WKQeqTBG82ma
 OgQ/rmC8dMeCoIw0gcETJ388dhDuc0ofEn/eHB61p742p7tTU+g/3lGltvlwsSmpXctDNeg4v6Xfa
 nmG+iukDgwuErCEOZ2NXhjMCPYTz0KdxlAn49wRZZ9iOGLPfOoqHN17KHSw5KPkNhCQwNzBjNfdK3
 fKHAjN3bNI/BmqMOIMAVdPZfxuV6F/eWKGBSBfCQ/bShWZXb828URR7OTcdpRB65IHyk8F+odCBWi
 lC1qtNsPVndzZ06/ggGELdikeVlCQRcFzS7UQ8PLyXaSlQd4vyfLo7EAQuvqxT+dc0/WSgEOMpyyL
 E8dZW0CQhDEBHQ==;
Date: Sat, 08 Feb 2025 13:54:54 +0200
Message-Id: <8634go3b3l.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
In-Reply-To: <87wme0buql.fsf@HIDDEN> (message from Pip Cet on Sat, 08
 Feb 2025 10:24:01 +0000)
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
References: <875xlns0f9.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN> <m2ed094uqc.fsf@HIDDEN>
 <8734gpeo2i.fsf@HIDDEN>
 <4FBD732C-609F-4A2B-94FB-4E11566DDBC2@HIDDEN>
 <1B7A2AD7-E15B-4C5D-8DBA-6D878FC9E1F1@HIDDEN>
 <878qqhczid.fsf@HIDDEN> <86msew528r.fsf@HIDDEN>
 <87wme0buql.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76091
Cc: gerd.moellmann@HIDDEN, 76091 <at> debbugs.gnu.org, telegraph@HIDDEN,
 eller.helmut@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Sat, 08 Feb 2025 10:24:01 +0000
> From: Pip Cet <pipcet@HIDDEN>
> Cc: gerd.moellmann@HIDDEN, eller.helmut@HIDDEN, telegraph@HIDDEN, 76091 <at> debbugs.gnu.org
> 
> "Eli Zaretskii" <eliz@HIDDEN> writes:
> 
> >> Date: Fri, 07 Feb 2025 19:43:18 +0000
> >> From: Pip Cet <pipcet@HIDDEN>
> >> Cc: Helmut Eller <eller.helmut@HIDDEN>, Gregor Zattler <telegraph@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 76091-done <at> debbugs.gnu.org
> >>
> >> Gerd Möllmann <gerd.moellmann@HIDDEN> writes:
> >>
> >> >>> Well, yes.  I'll split it up into individual patches, so we can review
> >> >>> them one by one?
> >> >>
> >> >> Not necessary, but thanks.
> >> >
> >> > I'm through. Except for the shrinking case that you already mentioned I haven't found other problems.
> >> >
> >> > So LGTM.
> >>
> >> Thanks!
> >>
> >> Hope I didn't break anything, but I just pushed the series.  Please feel
> >> free to revert or fix as appropriate!
> >
> > Here I get compilation warnings:
> >
> >   igc.c: In function 'igc_realloc_ambig':
> >   igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference]
> >    3324 |   ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start;
> > 	|                                                   ~~~~^~~~~~
> >   igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference]
> >    3324 |   ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start;
> > 	|                                ~~~~^~~~
> >   igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference]
> >    3324 |   ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start;
> > 	|                                                   ~~~~^~~~~~
> >   igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference]
> >    3324 |   ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start;
> > 	|                                ~~~~^~~~
> >   igc.c: In function 'igc_xpalloc_exact':
> >   igc.c:3397:27: warning: argument to variable-length array may be too large [-Wvla-larger-than=]
> >    3397 |       volatile mps_word_t area[(item_size + (sizeof (mps_word_t) - 1))
> > 	|                           ^~~~
> >   igc.c:3397:27: note: limit is 4031 bytes, but argument may be as large as 4294967292
> >   igc.c: In function 'igc_xnrealloc_ambig':
> >   igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference]
> >    3415 |   ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start;
> > 	|                                                     ~~~~^~~~~~
> >   igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference]
> >    3415 |   ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start;
> > 	|                                  ~~~~^~~~
> >   igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference]
> >    3415 |   ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start;
> > 	|                                                     ~~~~^~~~~~
> >   igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference]
> >    3415 |   ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start;
> > 	|                                  ~~~~^~~~
> >
> > Most of them seem to be because root_find can return NULL.  The nit
> 
> Those are harmless; I'll add an eassert (r), that should prevent the
> warnings (together with Gerd's fix for the igc_realloc (NULL) case).

Not sure if you already did, but:

 . I still see the warnings, and
 . this is an optimized build, so eassert compiles to nothing

> > Also, does this:
> >
> >> (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless
> >> we carefully write the scan function not to assume that the two
> >> half-words comprising a 64-bit Lisp_Object are in sync.  As Eli was very
> >> opposed to the idea of removing WIDE_EMACS_INT again, we might have to
> >> find a workaround there.)
> >
> > mean that the wide-int 32-bit build is now in trouble?
> 
> Yes, it does.  All scanning functions need to be written to deal with
> half-written Lisp_Object values in that case.  (Easier than it sounds
> because we USE_LSB_TAG).
> 
> > Or did you install some workaround for the above?
> 
> Not yet :-)

Hopefully, soon then?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 8 Feb 2025 10:24:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 08 05:24:16 2025
Received: from localhost ([127.0.0.1]:38671 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgi0W-0008Qc-7y
	for submit <at> debbugs.gnu.org; Sat, 08 Feb 2025 05:24:16 -0500
Received: from mail-4316.protonmail.ch ([185.70.43.16]:11087)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgi0S-0008QL-KB
 for 76091 <at> debbugs.gnu.org; Sat, 08 Feb 2025 05:24:14 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1739010246; x=1739269446;
 bh=MBFL638q5vfYpfynLXHhmbHnrnprJivRl+EY0LCXu5Q=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=ggwPGsz01zHxvoWk0swZwsSntJIKfMbYo7wv9+OBIYq0A3lu8tqOWeaSJZS6AEtz+
 fgYYLDgpz3VGdfwvgTgfPG8gcGzOpYPaN8cHeHfknY7bal0EjApHvUiEwkT9hjV0D3
 EJ52dhHcyI/OMSnZfuR+5E7IKIZ8kuMGkCPuhTcKPT7VmGd2UAyEk6KJhpkJ3x/1lN
 yMcm9wwmRdHjzQrgHQU/xJpqZxjwIMB0mVgPtWf3iKXRsH5hBtbxOsatQ/tgC8QMUq
 skGryhgTEWbM2Lwdf/cW8YjdCB3cyLrgLNRKcRIKhOLXis+gHez1HYJ2VIkvNFYMIt
 fFj3FWihHvWTw==
Date: Sat, 08 Feb 2025 10:24:01 +0000
To: Eli Zaretskii <eliz@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <87wme0buql.fsf@HIDDEN>
In-Reply-To: <86msew528r.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN> <m2ed094uqc.fsf@HIDDEN>
 <8734gpeo2i.fsf@HIDDEN>
 <4FBD732C-609F-4A2B-94FB-4E11566DDBC2@HIDDEN>
 <1B7A2AD7-E15B-4C5D-8DBA-6D878FC9E1F1@HIDDEN>
 <878qqhczid.fsf@HIDDEN> <86msew528r.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: f67739c4174778f0cb4a8c08eb42330c36ff22b3
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: gerd.moellmann@HIDDEN, 76091 <at> debbugs.gnu.org, telegraph@HIDDEN,
 eller.helmut@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Eli Zaretskii" <eliz@HIDDEN> writes:

>> Date: Fri, 07 Feb 2025 19:43:18 +0000
>> From: Pip Cet <pipcet@HIDDEN>
>> Cc: Helmut Eller <eller.helmut@HIDDEN>, Gregor Zattler <telegraph@gmx=
.net>, Eli Zaretskii <eliz@HIDDEN>, 76091-done <at> debbugs.gnu.org
>>
>> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes:
>>
>> >>> Well, yes.  I'll split it up into individual patches, so we can revi=
ew
>> >>> them one by one?
>> >>
>> >> Not necessary, but thanks.
>> >
>> > I'm through. Except for the shrinking case that you already mentioned =
I haven't found other problems.
>> >
>> > So LGTM.
>>
>> Thanks!
>>
>> Hope I didn't break anything, but I just pushed the series.  Please feel
>> free to revert or fix as appropriate!
>
> Here I get compilation warnings:
>
>   igc.c: In function 'igc_realloc_ambig':
>   igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dere=
ference]
>    3324 |   ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.start;
> =09|                                                   ~~~~^~~~~~
>   igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dere=
ference]
>    3324 |   ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.start;
> =09|                                ~~~~^~~~
>   igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dere=
ference]
>    3324 |   ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.start;
> =09|                                                   ~~~~^~~~~~
>   igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dere=
ference]
>    3324 |   ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.start;
> =09|                                ~~~~^~~~
>   igc.c: In function 'igc_xpalloc_exact':
>   igc.c:3397:27: warning: argument to variable-length array may be too la=
rge [-Wvla-larger-than=3D]
>    3397 |       volatile mps_word_t area[(item_size + (sizeof (mps_word_t=
) - 1))
> =09|                           ^~~~
>   igc.c:3397:27: note: limit is 4031 bytes, but argument may be as large =
as 4294967292
>   igc.c: In function 'igc_xnrealloc_ambig':
>   igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dere=
ference]
>    3415 |   ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.star=
t;
> =09|                                                     ~~~~^~~~~~
>   igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dere=
ference]
>    3415 |   ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.star=
t;
> =09|                                  ~~~~^~~~
>   igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dere=
ference]
>    3415 |   ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.star=
t;
> =09|                                                     ~~~~^~~~~~
>   igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dere=
ference]
>    3415 |   ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.star=
t;
> =09|                                  ~~~~^~~~
>
> Most of them seem to be because root_find can return NULL.  The nit

Those are harmless; I'll add an eassert (r), that should prevent the
warnings (together with Gerd's fix for the igc_realloc (NULL) case).

> about arena[] is probably because one cannot use sizeof and variables
> in an array declaration?  We should probably either use the maximum as

I'll add another eassert to ensure no one is calling this with
unreasonably large item_size values.  If anyone does, it's probably best
to crash early.

> a constant, or use alloca instead.

The vla limit applies to alloca as well.

> Also, does this:
>
>> (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless
>> we carefully write the scan function not to assume that the two
>> half-words comprising a 64-bit Lisp_Object are in sync.  As Eli was very
>> opposed to the idea of removing WIDE_EMACS_INT again, we might have to
>> find a workaround there.)
>
> mean that the wide-int 32-bit build is now in trouble?

Yes, it does.  All scanning functions need to be written to deal with
half-written Lisp_Object values in that case.  (Easier than it sounds
because we USE_LSB_TAG).

> Or did you install some workaround for the above?

Not yet :-)

Pip






Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 8 Feb 2025 07:23:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 08 02:23:36 2025
Received: from localhost ([127.0.0.1]:38119 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgfBg-0004sY-9K
	for submit <at> debbugs.gnu.org; Sat, 08 Feb 2025 02:23:36 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:56780)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tgfBd-0004sE-HU
 for 76091 <at> debbugs.gnu.org; Sat, 08 Feb 2025 02:23:34 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tgfBR-0007VG-16; Sat, 08 Feb 2025 02:23:28 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=YZ9HYPZM8E4EiMMAqas3iXhtU+1WBWqmtcjdR1zsdg4=; b=EvXJpuUttguGA0JJbxKe
 kWnMd67lS47iDvKz1gAKLp1prUmCpyR0wP/YqcR5TuUg0FYbyUSjadONI28OfcTuypYqi+jvI/ttP
 mIVt22o69LS3Aas9GVzWtgDllSAkuKZi/aRjTKSK43fa2JYSvN5deUv0zKjftZWn6FGsW4sXuPat8
 uHHgYTN0ZRbqVjeJtD1z5bp0U2jtuyWgM5frwFk0cThDUt6Xzw7btIRcCRqY7q315FftFloK4Pn4c
 08lRq62KREK2QNuXS+5i4bzzrMPO97/oh0ihHaX+CM3pHe/BHVCu2/KpS/zUdHW/nB7rm/rw1V40H
 SUftlLztFiA/Bw==;
Date: Sat, 08 Feb 2025 09:23:16 +0200
Message-Id: <86msew528r.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
In-Reply-To: <878qqhczid.fsf@HIDDEN> (message from Pip Cet on Fri, 07
 Feb 2025 19:43:18 +0000)
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN> <m2ed094uqc.fsf@HIDDEN>
 <8734gpeo2i.fsf@HIDDEN>
 <4FBD732C-609F-4A2B-94FB-4E11566DDBC2@HIDDEN>
 <1B7A2AD7-E15B-4C5D-8DBA-6D878FC9E1F1@HIDDEN>
 <878qqhczid.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76091
Cc: gerd.moellmann@HIDDEN, 76091 <at> debbugs.gnu.org, telegraph@HIDDEN,
 eller.helmut@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Fri, 07 Feb 2025 19:43:18 +0000
> From: Pip Cet <pipcet@HIDDEN>
> Cc: Helmut Eller <eller.helmut@HIDDEN>, Gregor Zattler <telegraph@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 76091-done <at> debbugs.gnu.org
> 
> Gerd Möllmann <gerd.moellmann@HIDDEN> writes:
> 
> >>> Well, yes.  I'll split it up into individual patches, so we can review
> >>> them one by one?
> >>
> >> Not necessary, but thanks.
> >
> > I'm through. Except for the shrinking case that you already mentioned I haven't found other problems.
> >
> > So LGTM.
> 
> Thanks!
> 
> Hope I didn't break anything, but I just pushed the series.  Please feel
> free to revert or fix as appropriate!

Here I get compilation warnings:

  igc.c: In function 'igc_realloc_ambig':
  igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference]
   3324 |   ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start;
	|                                                   ~~~~^~~~~~
  igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference]
   3324 |   ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start;
	|                                ~~~~^~~~
  igc.c:3324:55: warning: potential null pointer dereference [-Wnull-dereference]
   3324 |   ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start;
	|                                                   ~~~~^~~~~~
  igc.c:3324:36: warning: potential null pointer dereference [-Wnull-dereference]
   3324 |   ptrdiff_t old_size = (char *)r->d.end - (char *)r->d.start;
	|                                ~~~~^~~~
  igc.c: In function 'igc_xpalloc_exact':
  igc.c:3397:27: warning: argument to variable-length array may be too large [-Wvla-larger-than=]
   3397 |       volatile mps_word_t area[(item_size + (sizeof (mps_word_t) - 1))
	|                           ^~~~
  igc.c:3397:27: note: limit is 4031 bytes, but argument may be as large as 4294967292
  igc.c: In function 'igc_xnrealloc_ambig':
  igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference]
   3415 |   ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start;
	|                                                     ~~~~^~~~~~
  igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference]
   3415 |   ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start;
	|                                  ~~~~^~~~
  igc.c:3415:57: warning: potential null pointer dereference [-Wnull-dereference]
   3415 |   ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start;
	|                                                     ~~~~^~~~~~
  igc.c:3415:38: warning: potential null pointer dereference [-Wnull-dereference]
   3415 |   ptrdiff_t old_nbytes = (char *)r->d.end - (char *)r->d.start;
	|                                  ~~~~^~~~

Most of them seem to be because root_find can return NULL.  The nit
about arena[] is probably because one cannot use sizeof and variables
in an array declaration?  We should probably either use the maximum as
a constant, or use alloca instead.

This is a 32-bit build on MS-Windows.

Also, does this:

> (Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless
> we carefully write the scan function not to assume that the two
> half-words comprising a 64-bit Lisp_Object are in sync.  As Eli was very
> opposed to the idea of removing WIDE_EMACS_INT again, we might have to
> find a workaround there.)

mean that the wide-int 32-bit build is now in trouble?  Or did you
install some workaround for the above?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 20:35:22 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 15:35:22 2025
Received: from localhost ([127.0.0.1]:36852 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgV4M-0003tS-Fo
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 15:35:22 -0500
Received: from mail-10629.protonmail.ch ([79.135.106.29]:44411)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgV4J-0003qZ-Q7
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 15:35:20 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1738960513; x=1739219713;
 bh=yVtO7Tl3MdLFRp/eQtq/VQhzUMxZg6KnR0M3Kz7S2Sw=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=g1qcR74PAKqR0vOlOGMgyAeQTEX3anY+WLakH3oth8Qax6Ma5gIw8A0bPmC01eZrA
 HJ/1CXRZJ/oJ0v8vMCzxqrK1CxyGTEOlImSZ05XNZleznzzdb22CKN7W4PBEr27wvI
 4C+LI5Qbpa5NJMkxm7N0r1S+A6B1aWn2KJmhtGBBH0oyBAozwsWVCbMHUP3SCLfkLr
 ZQUXJsb4KHO+79DD8xglI3i9WRKAqtHHUAcoMcXgmhnVZ1y+UaEnAANuJkcBt+gg7+
 aD281WopEeeIHpE7mLohZ+WNYauHIP/8ObimDxSSMGgbDKebkXFj7tHuT/fMOpuKFO
 8s5t1y0pnkXYw==
Date: Fri, 07 Feb 2025 20:35:10 +0000
To: Helmut Eller <eller.helmut@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <8734gpcx3y.fsf@HIDDEN>
In-Reply-To: <87v7tlh5mz.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN> <87v7tlh5mz.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: a0d5f0d83738097829becadc0019959432973b6d
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>,
 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Helmut Eller" <eller.helmut@HIDDEN> writes:

> On Fri, Feb 07 2025, Pip Cet wrote:
>
>> It still needs more testing, thought, and comments.  All the volatile
>> stuff is needed because we can't copy a union with word atomicity: all
>> we have is memcpy, which might copy bytewise and result in an invalid
>> intermediate state.
>
> But volatile doesn't guarantee atomicity.  Does it?

No, it doesn't.  But having a volatile structure on the stack guarantees
that none of the pointers in the heap structure can be moved (the
volatile stack structure pins them).

But I see now we do use union assignments in an attempt to get word
atomicity, so maybe the volatile stack structure pinning the pointers
isn't always needed.

Maybe it'd be better to define memcpy_by_words which never reveals
intermediate states.

However, this race condition window should be quite small, so probably
worth thinking about more...

Pip





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 20:17:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 15:17:09 2025
Received: from localhost ([127.0.0.1]:36731 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgUmj-0002u5-0Z
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 15:17:09 -0500
Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]:54402)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <eller.helmut@HIDDEN>)
 id 1tgUma-0002tF-W4
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 15:17:07 -0500
Received: by mail-ed1-x52e.google.com with SMTP id
 4fb4d7f45d1cf-5de51a735acso1299990a12.0
 for <76091 <at> debbugs.gnu.org>; Fri, 07 Feb 2025 12:17:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1738959414; x=1739564214; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=aMwZbPs1XFI9eTTUw0YB4z3cZ8Y0QvoFcfx1CiaI3aQ=;
 b=EXnrMoKOV8GK6oOb0BH7dUs6yu9p/Xxp/IJ0UsxIMXzZeUgfXhhMDCYod28q0otZ8j
 eIQ2k/W8iCFPuiUmMYQgsAumueSREfSGgTlFVERFeh5PkB/GhjVjga/yz5Fbj3/J4/ru
 RZQk+4lvq4hC10cWYbZbxLSa49OtSBEIn7vCZ8INaGeNLydn7MTtfkLjRklq3bEM1KcY
 VBXlQ3gLb0W0MgKMmZRlJ1y+fdDxGQeJwq5I6z9LIAGz9A3EKeDXAnSclhd4Uwb50UEk
 G14aAzphQBzuGK/rrptvNgHvzTGb+TBm0fadqh+vy33KuT84dpsUadHoTJcliib7lwYS
 KZOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1738959414; x=1739564214;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=aMwZbPs1XFI9eTTUw0YB4z3cZ8Y0QvoFcfx1CiaI3aQ=;
 b=fjX/KQwK35g4ufxsr+rZarGusyX/FYy76Au3pGElAYFggTUriNGoSJeK+zVoI6R7BM
 pjAqx6P+I89uildqp6xi3eyL02Kk74DyDdTeLtl0f70J/pD8zvs5BHMwdpoZRQjrrqwK
 qLerWuHKVc91kPaCpmgPkZzn/FmiFVFPc4pzTcbJMSaOsGKmY2UwEzEdorryMkv8I4gE
 D85YgPYZ9sp5Wq2GghdoXgeUB1FOea2KdTTpcFH//hAsncJCXAFg/SnainjitTP8szEs
 AUZ+M2HdX8+OZijrSkZc9iHGbsNWSuMuQ5NJizdlXKo3y9MoKHnxICzxfzI1a41em0ma
 1FUw==
X-Forwarded-Encrypted: i=1;
 AJvYcCVCvVncHL+Jf+FkY8HlNuevmTp+R53uDeDzWgTul7y0cfAFkEpZ2Yjl7MNikdreE9hDta4mFQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxFQMnJYKnKAIneFGiXahFUw0LJZgDgW13727ZNBVwQMnWj+jUq
 U+RrP3zDzwL6beBUuoaDHE5VKofFCCqTSHHvRJSSStYDvnllU3+XGYeRbA==
X-Gm-Gg: ASbGncuJejww8ePsBLaaq3n7XYQsJDaH3OSe5Wt9ARw2vVulOfAIUff/CN3jcHOhvr1
 Vs7QdVmMmv5oukr8IzII8YczvreNMeoxG2fl9xCV3n3JgIQoSkMufxhiZw28+ModsogN2Cj0VOe
 bsMlOWTbQAClV6xNJilMbzVOOis5NS0/zWD1Yrzj4rFXd+0+v6JAIZL+6yJpyMhN4D9YyEp99oS
 JX4b3j7Q3Pe+Z/5C0nZHyK4clRe+qC0V+PdI2sRUzT+mhcStbgH9mfzJhkVVa/duB9Ty5sBsXhG
 QdDqRGlf3Rt2ZRXKDouIwhW218B8yBPYkSULWLPhHJ8+pwq2
X-Google-Smtp-Source: AGHT+IHr1IjxA3PYlTO+2P9qnu9AILzsPq4zmpBoCUB4SI1lfdS8JwKJgdDyRtTcr4x3S4XJby9GCQ==
X-Received: by 2002:a17:907:9712:b0:a9e:b150:a99d with SMTP id
 a640c23a62f3a-ab789aa0e82mr520514166b.5.1738959413727; 
 Fri, 07 Feb 2025 12:16:53 -0800 (PST)
Received: from caladan (dialin-233080.rol.raiffeisen.net. [195.254.233.80])
 by smtp.gmail.com with ESMTPSA id
 a640c23a62f3a-ab772f49046sm323754566b.25.2025.02.07.12.16.53
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 07 Feb 2025 12:16:53 -0800 (PST)
From: Helmut Eller <eller.helmut@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal
 error: assertion failed: BUFFERP (a)
In-Reply-To: <87v7tleq4h.fsf@HIDDEN> (Pip Cet's message of "Fri, 07
 Feb 2025 15:23:08 +0000")
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN>
Date: Fri, 07 Feb 2025 21:16:52 +0100
Message-ID: <87v7tlh5mz.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN>,
 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On Fri, Feb 07 2025, Pip Cet wrote:

> It still needs more testing, thought, and comments.  All the volatile
> stuff is needed because we can't copy a union with word atomicity: all
> we have is memcpy, which might copy bytewise and result in an invalid
> intermediate state.

But volatile doesn't guarantee atomicity.  Does it?

> Helmut, can you look over the larger_marker_vector changes?  While
> testing, I hit easserts there, so I added some new ones to catch the
> situation earlier.  I think the old code was fine, but the new one
> should also be, right?

Yes, I think the same.

Helmut




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091-done <at> debbugs.gnu.org:


Received: (at 76091-done) by debbugs.gnu.org; 7 Feb 2025 19:43:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 14:43:34 2025
Received: from localhost ([127.0.0.1]:36599 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgUGD-00016Y-Ui
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 14:43:34 -0500
Received: from mail-40133.protonmail.ch ([185.70.40.133]:47133)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgUGA-00016H-Q0
 for 76091-done <at> debbugs.gnu.org; Fri, 07 Feb 2025 14:43:32 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1738957404; x=1739216604;
 bh=A4Zgp+hVtj6W8s6sAH2bJLcd8932W7UXZfMuPdejl+0=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=jZweUBzcwqXUo2R0bo4uzDWqb7ZmvRihsQyMPX/lkYlyc0wmh0Y1H+ieRAdKU9ZDK
 JErug55GXFYhlIMBfADsofiFHLOISj4kP9IY+jrDg/PLSKW7/Kia65nXgl5aXohyX3
 5fUeHKsR1oCQ413M+B+QV+Xf7c6ak4D+A5g5jnc+L8oVIT+2+HAG2LAstXvvRbMqoE
 t057817CYSqs9dCoGbmVkSJa4S/JmsByp1nAzVrk5A/IcpbJ5gxOGqdUgjUxRKHoM9
 Qda20QrGMXV4LtCU0c4yIs5mLur6AJWcFdQueOuslgKSt8rxHevVMsXtd/eroObIU0
 vAbDitO+oFh+Q==
Date: Fri, 07 Feb 2025 19:43:18 +0000
To: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <878qqhczid.fsf@HIDDEN>
In-Reply-To: <1B7A2AD7-E15B-4C5D-8DBA-6D878FC9E1F1@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN> <m2ed094uqc.fsf@HIDDEN>
 <8734gpeo2i.fsf@HIDDEN>
 <4FBD732C-609F-4A2B-94FB-4E11566DDBC2@HIDDEN>
 <1B7A2AD7-E15B-4C5D-8DBA-6D878FC9E1F1@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 243bce1ad1e1c85ed37ac68aa37c5ee49978ada9
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091-done
Cc: 76091-done <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Helmut Eller <eller.helmut@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes:

>>> Well, yes.  I'll split it up into individual patches, so we can review
>>> them one by one?
>>
>> Not necessary, but thanks.
>
> I'm through. Except for the shrinking case that you already mentioned I h=
aven't found other problems.
>
> So LGTM.

Thanks!

Hope I didn't break anything, but I just pushed the series.  Please feel
free to revert or fix as appropriate!

Gregor, I believe this should fix the bug you originally saw (the second
bug you saw when building without optimization has also been fixed), so
I'm optimistically closing this report.  If you run into any further
issues, please open a new bug or reopen this one if it looks quite
similar :-)

Thanks again for the report, please keep them coming!

Pip





Notification sent to Gregor Zattler <telegraph@HIDDEN>:
bug acknowledged by developer. Full text available.
Reply sent to Pip Cet <pipcet@HIDDEN>:
You have taken responsibility. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 16:20:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 11:20:01 2025
Received: from localhost ([127.0.0.1]:36080 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgR5F-0007vk-4a
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 11:20:01 -0500
Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:51660)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>)
 id 1tgR5C-0007vS-LW
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 11:19:59 -0500
Received: by mail-wr1-x436.google.com with SMTP id
 ffacd0b85a97d-388cae9eb9fso1190661f8f.3
 for <76091 <at> debbugs.gnu.org>; Fri, 07 Feb 2025 08:19:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1738945192; x=1739549992; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=G827Vijh1uJlS3RV0zePVH8MyZnS9bTJ1WQRCCJazXk=;
 b=Y6Wmask9vol8qoBZlQ/CCBa+tpDtuhwF61lAB433P/mDbegHMmcUFFJf27R3gi+jXo
 Urj3gmxwr9OAV4nwvsDDryGUPAVcr17ZMMZ9PPZJa+nefoPTK+FD15A7czUD282nBRMm
 PARd3Mazhro5ugSfkIEM2Y//lh9u1tikbCFL7tzYBr/nxxLaU5v8GUVF1ZM4BwPhRv2c
 nLZR0eMmPDsJ41YZYbOCmfZri/vAg+xgdpEeUBQc8cOye4WS/+AhMMv4w8Kfo6ismoQ6
 7yCG9N5RQ3HgEIjj7nYXPb1RyJvjiktEVVf+fqhKQ8KiZC4xO4nPTYrRbrUGy9zhkyQm
 Jn1g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1738945192; x=1739549992;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=G827Vijh1uJlS3RV0zePVH8MyZnS9bTJ1WQRCCJazXk=;
 b=eYT+CpXxGeIzg1rcD03MWl3tq8U5AZa3bnQRX1mJ+b6VrLvKClgomcNXIIOAHGZqHW
 OoAcICOEX/I+7iEDk67SIs27sVfR1+FEZiBnpomr716MijZUmn1LJxq7tqojuoeE7T+c
 J2ugnqBgfXyrqb/oU9+Iej8bNSrtnA/iBdKRVR6sySOf47gGoD9s2g0vYweWJhsw7HCw
 seQ68NpHxop2m00qTLTg5X3yP3nqaTnmB2YkVaYQeVLf/klZK7ywxsgu+Nfct61sq+YJ
 FNUxb4reI96mZafA6Q4gPu71u3+Oo6CZsWiz5seSDCs4JHkUmWl6WLcipCaGd1TGoyrU
 MGbA==
X-Forwarded-Encrypted: i=1;
 AJvYcCUfLb8eeIRY4MUz7aOnhtoEw43EuNFL0yC96DiugBmm+tpoDn4BPSCob/csfpAZIFzFUa9uWg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyzRKpZbW3KjGW/G6qCErhOBbvxs2HgWPlZ0WaYcIwcpjqHS26j
 xZfGYY6jKmr/GeRPpyvHVY8JPm7dF/2FzbpV9QGW7HU7K1IocTJ1
X-Gm-Gg: ASbGncuHqSUs8unihofXYa29EC8pXXG4UVfQSsaW6yQ/h3QnA0hJj5IipVdG34HXeHF
 Jaq/W+H4Nixtmo8dJB557h7Yvf9mwPn5Oxv896U7eNbcGCDzo0swKxz1YN/bwt/u1DXKmU6J66a
 yWMNf0l4P3s90j2G9/ZXgDgwp6urMcGTTKy+2rDOcZ58WD214xsDwazHWpThk9Kwkso5EYnC3Zx
 7VWEU2/7FkdfCSJRkonr7caIi4s8LxAGb2AERv4DD7lSYH5JhxiO6x9lSY8LoNeS2835KhXa/FQ
 BE6T+Uo7Fz+UPOBpQv1a2h02FloXqbBALlU7hW0iy+bHz6cKclww0+MuFhBsYWUBsSFOMnroNFA
 +VXTZdu6eybmsFHJlqa/Dva+hO/2v9gA7npsATNMw
X-Google-Smtp-Source: AGHT+IFiTU9Lz3awl59XxC1/ypmIcVr+fZqCOUy0EmnvWvjDnMssGtKhRdO48qaYbcf/+g9LU65bUA==
X-Received: by 2002:adf:f403:0:b0:387:8752:5691 with SMTP id
 ffacd0b85a97d-38dc9350ec3mr2000378f8f.47.1738945191826; 
 Fri, 07 Feb 2025 08:19:51 -0800 (PST)
Received: from smtpclient.apple
 (p200300e0b713f4006ceb49f89b3a8bd6.dip0.t-ipconnect.de.
 [2003:e0:b713:f400:6ceb:49f8:9b3a:8bd6])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-38dbde1dfaesm4966042f8f.90.2025.02.07.08.19.51
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 07 Feb 2025 08:19:51 -0800 (PST)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\))
Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error:
 assertion failed: BUFFERP (a)
From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
In-Reply-To: <4FBD732C-609F-4A2B-94FB-4E11566DDBC2@HIDDEN>
Date: Fri, 7 Feb 2025 17:19:39 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <1B7A2AD7-E15B-4C5D-8DBA-6D878FC9E1F1@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN> <m2ed094uqc.fsf@HIDDEN>
 <8734gpeo2i.fsf@HIDDEN>
 <4FBD732C-609F-4A2B-94FB-4E11566DDBC2@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
X-Mailer: Apple Mail (2.3826.400.131.1.6)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Helmut Eller <eller.helmut@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


>> Well, yes.  I'll split it up into individual patches, so we can =
review
>> them one by one?
>=20
> Not necessary, but thanks.

I'm through. Except for the shrinking case that you already mentioned I =
haven't found other problems.=20

So LGTM.=




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 16:16:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 11:16:27 2025
Received: from localhost ([127.0.0.1]:36059 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgR1m-0007p1-Va
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 11:16:27 -0500
Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:42489)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>)
 id 1tgR1l-0007ol-1I
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 11:16:25 -0500
Received: by mail-wr1-x42f.google.com with SMTP id
 ffacd0b85a97d-38db570a639so1323725f8f.1
 for <76091 <at> debbugs.gnu.org>; Fri, 07 Feb 2025 08:16:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1738944979; x=1739549779; darn=debbugs.gnu.org;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:from:to:cc:subject:date
 :message-id:reply-to;
 bh=lh6Q7pWIirCcyoKyKAtHagsT7ZblkzxdcxqdWSzVWKQ=;
 b=bNHu445/DVOfnNpRvxyMVbBPq9Zno47xfKIlRWjGFJ+jcsSndJ4/puUPbEj4iiLR0r
 5ASliRrAYyevv6WeuB8BS1qoQXLbOYCsUToj3PBozO7aW5EEUOjlwnZ93qAmaNcf4VIw
 +Z4CxZZxAI3X6hs2wrA2SyJWZ032q36F2zxdQyuUDWx4G3D24P1O7x8fusQLoNrH54LV
 wvI6MC8FuzwaUq567XkcsP077NqpENe9NpWkIYsIA8DFWge6TGWwjAPjYsaQ3fs3NYSj
 DdI9rKfiBocl62W5uqsr00WDbr247eHxDB6+dx2w7EKvkHNtmWYOm5pTKw1LU0tGcCxm
 AJZA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1738944979; x=1739549779;
 h=to:references:message-id:content-transfer-encoding:cc:date
 :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=lh6Q7pWIirCcyoKyKAtHagsT7ZblkzxdcxqdWSzVWKQ=;
 b=pfyNdKzrULWKKOFMlV6ZbrOi/Y4WuegswCb3M/+GHoCgsc3g+t/gxinx6VF0QPhlc2
 9X1j4St47G9juFoWpS2+Zsv5W3hzMDzHFAUC/88M/XJdBdhggYF7smp4Z1BZ+vdkdcQH
 7z9z7xZBhsVX4jmhQ9xxulnnJv4CsFFXq7jrm9+/NYpojteOuIxVRi5tiCeGtbCoW5Li
 m++kzZoM36fYwGjZ2gRY7+POUZkQWifh0cxOqR2te4gIUBS5OnSIcbXOjSE8Ke1fJfjQ
 l3fgUXEA0HK8N8SrXN6mN1sm1iHD2DYqOKyNlv0G7Kehsrv+4lbYxFW19pgWMrLCZN2+
 DSKA==
X-Forwarded-Encrypted: i=1;
 AJvYcCVwtJRhYKW5Jj0cGdEl1hAhyHaZVSfAA5MJc5U1vzjsHvDaoM3jml7sAosUGp/WkDq2eNQeZw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YxX1zeKf+WCkLUvZLMKE6ST89X4Iv+JcfjCvDd9CMupeGGKRg5T
 MGuRuB2djD6CKY4WSS9oC2193wf+Zt4duOT4jQkG3U1KlB/xqiZv
X-Gm-Gg: ASbGncsRKMD/EcyG1xAXhxtHI1ypMYAvZEYi+1kDVfUT3ldFf9j0LG2YZbJv7gUu+og
 6xnG1hAyJkaveNA9DNO8sNbOQZeG3+OEGQMts+Z+Z7jaWyFNpkS9ipnkTIp4ICxS0DJtIo25DHn
 yRRgA8cJbn81rskOLWzeFgdQKq31fYBeFUq0OAp8VQw+IhzgLuZ7rUajlUdua8ltArRIGt+s5Bl
 04Chr/5fVm5T3FAlc7Cbt2xjiK0p4D9GhwLlihWtvLOdN5oIstygqfYZvS1gLwCzumm4UXy8d/k
 2Jsg7XIMSJN4Ny3awflcadSzwAdpbEnhdePxd5EwqxJtkG+eyvdWdVcKPldFiUzbHnOcZ4vRxoq
 YhbuU7E+lYdpykIDdLNIo5h1jngrcq9YJa5xehXfT
X-Google-Smtp-Source: AGHT+IGzxgtdp4lIABYhkktrcjesCoxo+gifd8kpLUnGBWupWEDzgD2aep+J10lU2QNkP49vffpBOw==
X-Received: by 2002:a5d:6c61:0:b0:38d:ae4e:2267 with SMTP id
 ffacd0b85a97d-38dc993f01bmr2834822f8f.11.1738944978474; 
 Fri, 07 Feb 2025 08:16:18 -0800 (PST)
Received: from smtpclient.apple
 (p200300e0b713f4006ceb49f89b3a8bd6.dip0.t-ipconnect.de.
 [2003:e0:b713:f400:6ceb:49f8:9b3a:8bd6])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-38dc2f6aeafsm3943433f8f.20.2025.02.07.08.16.17
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 07 Feb 2025 08:16:17 -0800 (PST)
Content-Type: text/plain;
	charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\))
Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error:
 assertion failed: BUFFERP (a)
From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
In-Reply-To: <8734gpeo2i.fsf@HIDDEN>
Date: Fri, 7 Feb 2025 17:16:07 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <4FBD732C-609F-4A2B-94FB-4E11566DDBC2@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN> <m2ed094uqc.fsf@HIDDEN>
 <8734gpeo2i.fsf@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
X-Mailer: Apple Mail (2.3826.400.131.1.6)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Helmut Eller <eller.helmut@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On 7. Feb 2025, at 17:07, Pip Cet <pipcet@HIDDEN> wrote:
>=20
> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes:
>=20
>> Pip Cet <pipcet@HIDDEN> writes:
>>=20
>>> Well, here it is:
>>=20
>> IIUC, that fixes the problem with igc_on_grow_specpdl as part of a
>> grander effort that avoids parking the arena in more cases.
>=20
> My assumption was the other root resizing methods would have similar
> issues, yes.  I'm not sure this is true, but why risk it?

Yes, true.=20

>=20
>> (I'd naively just written a new igc_xpalloc_specpdl patterned after =
the
>> existing igc_xpalloc_exectly and ambig variants, but I'm also lazy =
:-).)
>=20
> Laziness is a virtue for hackers :-)
>=20
>> Hard to review. Did you take this into account?
>=20
> Well, yes.  I'll split it up into individual patches, so we can review
> them one by one?

Not necessary, but thanks.=20

>=20
>> igc.c:
>> 3240   /* Can't make a root that has zero length.  Want one to be =
able to
>> 3241      detect calling igc_free on something not having a root.  */
>> 3242   void *end =3D (char *) p + size;
>> 3243   if (end =3D=3D p)
>> 3244     end =3D (char *) p + IGC_ALIGN_DFLT;
>> 3245   root_create_ambig (global_igc, p, end, "xzalloc-ambig");
>=20
> Ugh.  No, I didn't.  Need to fix igc_realloc_ambig (also, it doesn't
> handle the "shrinking" case correctly, oops.  However, there appear to
> be no callers of igc_realloc_ambig that expect the root to shrink,
> whew).
>=20
> As for that code, is it really necessary to lie about this case?  =
Can't
> we simply force size to be >=3D IGC_ALIGN_DFLT when making the =
allocation?
>=20

We could do that. I did it only that way because it was easy and =
unproblematic at that time.





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 16:07:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 11:07:43 2025
Received: from localhost ([127.0.0.1]:36041 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgQtL-0007OR-FJ
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 11:07:43 -0500
Received: from mail-10630.protonmail.ch ([79.135.106.30]:40855)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgQtJ-0007OC-7a
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 11:07:41 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1738944454; x=1739203654;
 bh=nyMZTZ5FhCjN/Ii/IFaawKT2nONgLKnfXUV2hDmzVZM=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=KrxB6Xjh0zuJeMHkyGOl+bfvdgBsFes5H0lwPeo/yabLTbnXLAbemPlWWf+T6C7Cy
 FsueYFuVvuzoHOpnMMX+QG2ie/yIzToqbqrx4ntL6NzjBfNC75CUrqutYnB62W+nrp
 +FbFQhLHj6fKGXo+9jpsTQdYwQFcajZoxEIJBJ0SfyTLuH/a77EO47tE7VpwfqDtn/
 LQ41bQ2CBXBoU49JWOlGQV59VCWJgDCV6TncnVYxpEldOVE1U9QSyIr+MNZwqyd+ZN
 mhxJwsH9rfEvOUL6+gCK3dFdd9ebOlhbtsSftlJ7TGCfrFZzuHsJoCHWMmNMWIlSQM
 UseuRFZg6H8QQ==
Date: Fri, 07 Feb 2025 16:07:30 +0000
To: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <8734gpeo2i.fsf@HIDDEN>
In-Reply-To: <m2ed094uqc.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN> <m2ed094uqc.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 3877aa795814bfd9938fa60f547f6695a3cf6ca2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Helmut Eller <eller.helmut@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes:

> Pip Cet <pipcet@HIDDEN> writes:
>
>> Well, here it is:
>
> IIUC, that fixes the problem with igc_on_grow_specpdl as part of a
> grander effort that avoids parking the arena in more cases.

My assumption was the other root resizing methods would have similar
issues, yes.  I'm not sure this is true, but why risk it?

> (I'd naively just written a new igc_xpalloc_specpdl patterned after the
> existing igc_xpalloc_exectly and ambig variants, but I'm also lazy :-).)

Laziness is a virtue for hackers :-)

> Hard to review. Did you take this into account?

Well, yes.  I'll split it up into individual patches, so we can review
them one by one?

> igc.c:
>  3240   /* Can't make a root that has zero length.  Want one to be able t=
o
>  3241      detect calling igc_free on something not having a root.  */
>  3242   void *end =3D (char *) p + size;
>  3243   if (end =3D=3D p)
>  3244     end =3D (char *) p + IGC_ALIGN_DFLT;
>  3245   root_create_ambig (global_igc, p, end, "xzalloc-ambig");

Ugh.  No, I didn't.  Need to fix igc_realloc_ambig (also, it doesn't
handle the "shrinking" case correctly, oops.  However, there appear to
be no callers of igc_realloc_ambig that expect the root to shrink,
whew).

As for that code, is it really necessary to lie about this case?  Can't
we simply force size to be >=3D IGC_ALIGN_DFLT when making the allocation?

Pip





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 15:53:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 10:53:27 2025
Received: from localhost ([127.0.0.1]:36015 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgQfX-0006ha-JM
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 10:53:27 -0500
Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:44100)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>)
 id 1tgQfU-0006hF-OW
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 10:53:25 -0500
Received: by mail-wr1-x42c.google.com with SMTP id
 ffacd0b85a97d-385dece873cso1008726f8f.0
 for <76091 <at> debbugs.gnu.org>; Fri, 07 Feb 2025 07:53:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1738943598; x=1739548398; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=19TUEJhEWtJZE+Nz6D2DIPYpemtZ6Y2VrEom+9EJ0kM=;
 b=JsBAMDuhGzwk5UzvP79bNGhPJ+AM+S3WIwu487gC3xWJMhoR3YgGICZhvdOSXk/k00
 8SZGuVGWbWjGCfvRQngYoQeJaaDQm5OdjLnRLdhqEzEtFZTIvU9o3+oYW8dC9hBpp5Tv
 I1KkkZPddCHZLyhvISHK86duEVVaWVqQP8BqNm32e7pemS12PN76wjpVBSpjKKS59zIS
 dHv8QuWOMPfETr8v8zz+VZWH5Xvidg7gdGo6ar7xEoBGnnrJpHrzD3n5/USGIHgEixrf
 b4+UmrUJFzf3TUNukiEfglY/dt6wZgNNB4pYdYIiYjVT7xZzV2jutoaDjRf9wq5QSqgy
 4gew==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1738943598; x=1739548398;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date
 :message-id:reply-to;
 bh=19TUEJhEWtJZE+Nz6D2DIPYpemtZ6Y2VrEom+9EJ0kM=;
 b=PcZeGdydpBN2X3HAhmOYQms8hk68wfiTD5AFRuuHKzV4b2sH8GbvGKnO5In5EyZ1Zo
 wlldO+jVQ4YlH3NHoqqsbKmymQ7GhnXIYINQTo/QsEYTIacE0FvyXqZcPJN+7es3QaMa
 +lRUZEXqco6NMSQPdayVsju8XY2zeXzY0k5HHllVRLYSSHeKMfSH0eVJYWlDT0MS0gZB
 oYxa8opY3j7KnYhxeEAaUZtwBorL/N68AuRRY2wSCBzCRxBlL/io/Q3QILKlgm+HLXju
 h2Yf5HubFoCqIz5ObmwSTzC5a+b6h2+H1fDiVG28+Jet5wZ1uK3dKQ/SxzE+sT7fXTzX
 e23A==
X-Forwarded-Encrypted: i=1;
 AJvYcCVeuHr+vmaEEXgElxn/P2jc5bpNleAzxMZVj2BV7jJcUXF5LSOMeTVMvoanBWSohTqgf9RYew==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yy7ifpoZjyvkQCY0KvG+AO4i8tQhB/bo9zdYBbYMCiKRIyOUqBG
 ONgxdHPSKJ23ClqKtlRUQLwzE78N2Zf/xBsBMr3tV2wr5sZNTrQykIjyOg==
X-Gm-Gg: ASbGncvRo2aZAqjQ3idh9t3FDC2tM50xDg7xbF0+2KPdWGsaU5Sg4g5ftWU6TliQ9oj
 WIRcsdVceZTS9wlsi6gALLHEO9CgV+R9Zt+TGyUC+ZhV6J2vfhfp9TCBx5F1XSIxFNtpo6YeNK8
 ujk1rx735tDmZ7vW8gG3UA7od3fw+thhtLxJFbQpZKmLW4P+ZXYKg85nQ7ZDC/0tDWY+T21kvRW
 j5/6XOTOepIquN5ggpoE6WIORNnfdp2oq/E6wMcgXf8VNC2ejkkeTE5fAEqPA+CWSB27zxbUQg/
 1Msy7hHgFfW2ZeBCueAiyDJN4NqUceeN2au0cKV6gMXXXBoliuvz6mQDgc8bx3lgPTTWuavY9cH
 mIUAWLyyJGgQudvGLNLsMzKBs
X-Google-Smtp-Source: AGHT+IEw5kXtp3Nlr4j0O06uU61IRmcWj40KO+L6rBZnXTWXA7o9hQaZfN14sP6yPeSfBiI/cDEk+Q==
X-Received: by 2002:a05:6000:d05:b0:38d:b1e5:7e09 with SMTP id
 ffacd0b85a97d-38dc959fd42mr2169216f8f.49.1738943597809; 
 Fri, 07 Feb 2025 07:53:17 -0800 (PST)
Received: from pro2 (p200300e0b713f4006ceb49f89b3a8bd6.dip0.t-ipconnect.de.
 [2003:e0:b713:f400:6ceb:49f8:9b3a:8bd6])
 by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-38dcf35b15bsm1119020f8f.64.2025.02.07.07.53.16
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Fri, 07 Feb 2025 07:53:17 -0800 (PST)
From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal
 error: assertion failed: BUFFERP (a)
In-Reply-To: <87v7tleq4h.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
 <87v7tleq4h.fsf@HIDDEN>
Date: Fri, 07 Feb 2025 16:53:15 +0100
Message-ID: <m2ed094uqc.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Helmut Eller <eller.helmut@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Pip Cet <pipcet@HIDDEN> writes:

> Well, here it is:

IIUC, that fixes the problem with igc_on_grow_specpdl as part of a
grander effort that avoids parking the arena in more cases.

(I'd naively just written a new igc_xpalloc_specpdl patterned after the
existing igc_xpalloc_exectly and ambig variants, but I'm also lazy :-).)

Hard to review. Did you take this into account?

igc.c:
 3240   /* Can't make a root that has zero length.  Want one to be able to
 3241      detect calling igc_free on something not having a root.  */
 3242   void *end = (char *) p + size;
 3243   if (end == p)
 3244     end = (char *) p + IGC_ALIGN_DFLT;
 3245   root_create_ambig (global_igc, p, end, "xzalloc-ambig");





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 15:31:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 10:31:03 2025
Received: from localhost ([127.0.0.1]:35960 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgQJq-0005i2-L4
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 10:31:03 -0500
Received: from mail-4316.protonmail.ch ([185.70.43.16]:46777)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgQJn-0005hJ-5E
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 10:31:00 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1738942252; x=1739201452;
 bh=p66O7sXO1AzYx+X1yAkOVStrMsfEkQFJ6PHg1+Ph2U4=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=YU5CXW22b/U4F3I646GqMMYdh+KtKewIQPD/7GUDGXJsp2Vb5fz2hVmvZbjSg6JEy
 WvT4sj14R9yTuc8bYeXS+XjKsjtXdg6BRNrpYp+f98iRUfEeoIuQNuQOp0W7sJSL3E
 WGg2SaG93FqizItH/VPtR/biNJyFSIkxHGDEKJ4WRV0m/gDjmOT03IDqk0LFRCOOr+
 gFhKTEVKZK5eb881hpH4Z95FJ4DcfOGKYsKfegatpFC+5A9js+UsGP338mpjqcl6n6
 mkKs0kINupitRgMOG6B8WXdnW+XmQzCpbduK38hP4vBAO1muBH+s3wraSMe1AInwG5
 8yT0y73repQPg==
Date: Fri, 07 Feb 2025 15:30:45 +0000
To: Eli Zaretskii <eliz@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <87pljteprr.fsf@HIDDEN>
In-Reply-To: <865xlm555b.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN> <865xlm555b.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: c3b61833dd8818398234ab54b7afc0ba92d30bdb
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: gerd.moellmann@HIDDEN, 76091 <at> debbugs.gnu.org, telegraph@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Eli Zaretskii" <eliz@HIDDEN> writes:

>> Date: Fri, 07 Feb 2025 10:41:18 +0000
>> From: Pip Cet <pipcet@HIDDEN>
>> Cc: Gregor Zattler <telegraph@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 76=
091 <at> debbugs.gnu.org
>>
>> "Eli Zaretskii" <eliz@HIDDEN> writes:
>>
>> >> Date: Thu, 06 Feb 2025 13:49:30 +0100
>> >> From:  Gregor Zattler via "Bug reports for GNU Emacs,
>> >>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>> >>
>> >> Dear Emacs developers, I don't know if
>> >> this failed assertion is due to using
>> >> MPS as GC.
>> >>
>> >> I played along with pdf-tools and
>> >> org-noter when it happened.
>> >>
>> >> This time I built with a current
>> >> checkout of feature/igc.
>> >>
>> >> GDB output even further below.
>> >>
>> >> The crashed session is still in GDB.
>> >> [...]
>> >> Breakpoint 1, terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace=
_limit=3Dbacktrace_limit@entry=3D2147483647) at ./src/emacs.c:425
>> >> 425=09{
>> >> +bt
>> >> #0  terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=3Db=
acktrace_limit@entry=3D2147483647) at ./src/emacs.c:425
>> >> #1 0x00005555555b8f5b in die (msg=3Dmsg@entry=3D0x5555559b40d0 "BUFFE=
RP
>> >> (a)", file=3Dfile@entry=3D0x5555559b40c7 "buffer.h",
>> >> line=3Dline@entry=3D829) at ./src/alloc.c:7683
>> >> #2  0x00005555555a0bda in XBUFFER (a=3DPython Exception <class 'gdb.e=
rror'>: value has been optimized out
>> >> ) at ./src/buffer.h:829
>> >> #3  0x00005555555a4370 in XBUFFER (a=3DPython Exception <class 'gdb.e=
rror'>: value has been optimized out
>> >> ) at ./src/xdisp.c:17024
>> >> #4  prepare_menu_bars () at ./src/xdisp.c:14041
>> >
>> > This is here:
>> >
>> >       FOR_EACH_FRAME (tail, frame)
>> > =09{
>> > =09  struct frame *f =3D XFRAME (frame);
>> > =09  struct window *w =3D XWINDOW (FRAME_SELECTED_WINDOW (f));
>> > =09  if (some_windows
>> > =09      && !f->redisplay
>> > =09      && !w->redisplay
>> > =09      && !XBUFFER (w->contents)->text->redisplay)
>> > =09    continue;
>> >
>> > And I don't understand how w->contents of a frame's selected window
>> > could fail the BUFFERP test.
>>
>> Here's my current theory:
>>
>> 1. display_mode_lines calls
>>
>>   record_unwind_protect
>>     (restore_frame_selected_window, XFRAME (new_frame)->selected_window)=
;
>>
>> 2. that stores the selected window in the specpdl
>>
>> 3. the specpdl is then grown
>>
>> 4. we xpalloc the specpdl area, creating a copy of it and freeing the
>> old memory, which is still registered as a root.
>>
>> 5. igc_on_grow_specpdl calls mps_arena_park
>>
>> 6. the first thing mps_arena_park does is to complete the current GC
>> cycle.  This means that it will:
>>
>> * look at the old specpdl area, which has been freed and may now contain
>>   invalid data
>> * *modify* the old specpdl area, which may have been reallocated so
>>   cause random memory corruption
>> * move objects by updating their pointers in the *old* specpdl area,
>>   leaving the pointers in the *new* specpdl area invalid
>>
>> 7. in our case, the selected window was supposed to have been moved but
>> the pointer in the *new* specpdl area continues to point to the old
>> memory, which is reused for something else which fails the BUFFERP test.
>>
>> 8. we unwind and restore the invalid selected window pointer.
>>
>> I have a patch, but I'd like to discuss whether this is a plausible
>> theory first.  Gerd, if there's something that prevents this problem
>> from happening, and I missed it, could you briefly yell at me here?
>
> If this is possible, all hell will break loose.

Failing to update moved Lisp_Objects will make all hell break loose no
matter where they are.

> The selected window of any frame must be a leaf window, and its
> contents member must identify a buffer, at all times.  We must ensure
> this is true whenever our code runs.

Absolutely, which is why I think we need to remove the root reszing
code, and its no-GC assumption which turned out to be unjustified,
because parking the arena in an attempt to avoid GC turned out to
trigger GC at a very bad time.

The remaining no-GC assumptions are:

1. we don't allow the first GC to happen until things have been set up
(this seems justifiable)

2. we park the arena when walking the pool for statistics (so they
represent consistent counts)

3. (my code only) we park the arena while implementing which_symbols or
scanning the heap for references to a given object, but those are ultima
ratio debug methods which, while highly desirable, do not count as
ordinary operations.

I'll post about (3) in some more detail when I've decided whether I
would want to propose heap scanning code in time for the feature/igc
merge or not.

Pip





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 15:23:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 10:23:25 2025
Received: from localhost ([127.0.0.1]:35918 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgQCS-00056u-Bx
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 10:23:25 -0500
Received: from mail-40131.protonmail.ch ([185.70.40.131]:45553)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgQCN-00056R-Bn
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 10:23:21 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1738941792; x=1739200992;
 bh=/yHwusqmmdzsA+5TS98OUJCsL/g5kJdeSUwpOU1R4B8=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=OUP57BBR59O8F3ArzJBDUjENVt7L9CxHYeA3JqZ5EiY3SciquMdoriyxp+W4K5lRe
 4qq1HkLyOxmK/3eNRbw3pzwjXae/vxJSnlEYDcnMDQTiK6kr49eefMx2ndEpgxzsmU
 Y4+J3KTUzLmS9klqfnFu5rqjKtGDYHkbJD0dCOewUlTPfItwkIrfY1Aj2PqY3k9Ro0
 nc5KnZHXt7ACHdkC+3Si8dGxXTkRcbzmnBMEqp/aj2Umb4J+tXwuELX+hRVNSJLKjg
 OTrFKAQcccFgxs/JWdO5hMqM7Yndejpu9RI6dRr87uoaPlpXHXrH8rrGQq0ul9Yjfg
 MwInIYeLgh4ow==
Date: Fri, 07 Feb 2025 15:23:08 +0000
To: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>,
 Helmut Eller <eller.helmut@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <87v7tleq4h.fsf@HIDDEN>
In-Reply-To: <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 3e438a20fa98f28c4efb32b37782814f3ff3c5c2
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Pip Cet <pipcet@HIDDEN> writes:

> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes:
>
>> On 7. Feb 2025, at 11:41, Pip Cet <pipcet@HIDDEN> wrote:
>>
>>  I have a patch, but I'd like to discuss whether this is a plausible
>>  theory first.  Gerd, if there's something that prevents this problem
>>  from happening, and I missed it, could you briefly yell at me here?
>>
>> Good catch!
>
> Thanks!
>
>> I think he idea I had with the igc_on_... is mistaken,
>
> I've rewritten the root resizing functions to always follow the
>
> 1. allocate new zeroed root
> 2. register new root
> 3. copy contents from old root
> 4. if this fails, try again
> 5. save new root
> 6. unregister old root
> 7. free old root
>
> pattern.  It's a bit complicated, but avoids the need for parking the
> arena in these cases.  And, yes, it'll waste some memory, but these are
> roots, and roots are supposed to be small.  I'd rather do it that way
> and turn them into non-roots than figure out how to use realloc() on an
> MPS root, TBH.

I should point out that the memory waste is temporary, only while we
simulate realloc by allocating a new area, then freeing the old one.

>> one must not free the memory of a root while the MPS is not parked.
>
> I think the surprising thing is that parking the arena will cause GC
> activity.  It's best to avoid parking it except when walking the pools,
> I think.

But if you think parking the area *more* is a solution, please let me
know!

> Still testing the patch...

Well, here it is:

It still needs more testing, thought, and comments.  All the volatile
stuff is needed because we can't copy a union with word atomicity: all
we have is memcpy, which might copy bytewise and result in an invalid
intermediate state.  OTOH, we don't know anything about the type in
igc_xpalloc_ambig and igc_xpalloc_exact, so we have to fake it and hope
mps_word_t alignment is good enough.

(Of course, with WIDE_EMACS_INT, mps_word_t is not good enough; unless
we carefully write the scan function not to assume that the two
half-words comprising a 64-bit Lisp_Object are in sync.  As Eli was very
opposed to the idea of removing WIDE_EMACS_INT again, we might have to
find a workaround there.)

Also, "scrans" should be "scans", but I'd rather not edit a patch I've
tested and am about to post :-)

Helmut, can you look over the larger_marker_vector changes?  While
testing, I hit easserts there, so I added some new ones to catch the
situation earlier.  I think the old code was fine, but the new one
should also be, right?

Pip

From 8521107ab2a9033647082236517770a1604e53c9 Mon Sep 17 00:00:00 2001
From: Pip Cet <pipcet@HIDDEN>
Subject: [PATCH] Bug#76091

---
 src/alloc.c |  67 +++++++++-------
 src/eval.c  |  26 +++++--
 src/igc.c   | 219 +++++++++++++++++++++++++++++++++++++++-------------
 src/igc.h   |   2 +
 src/lisp.h  |   3 +-
 src/print.c |   5 +-
 6 files changed, 233 insertions(+), 89 deletions(-)

diff --git a/src/alloc.c b/src/alloc.c
index 8f24ca5e0f3..f0c0e0538b5 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -801,32 +801,13 @@ xnrealloc (void *pa, ptrdiff_t nitems, ptrdiff_t item=
_size)
 }
=20
=20
-/* Grow PA, which points to an array of *NITEMS items, and return the
-   location of the reallocated array, updating *NITEMS to reflect its
-   new size.  The new array will contain at least NITEMS_INCR_MIN more
-   items, but will not contain more than NITEMS_MAX items total.
-   ITEM_SIZE is the size of each item, in bytes.
+/* Calculate the new allocation size for xpalloc.  This needs to be a
+   separate function because MPS always allocates a new area, rather
+   than calling xrealloc as xpalloc does.  */
=20
-   ITEM_SIZE and NITEMS_INCR_MIN must be positive.  *NITEMS must be
-   nonnegative.  If NITEMS_MAX is -1, it is treated as if it were
-   infinity.
-
-   If PA is null, then allocate a new array instead of reallocating
-   the old one.
-
-   Block interrupt input as needed.  If memory exhaustion occurs, set
-   *NITEMS to zero if PA is null, and signal an error (i.e., do not
-   return).
-
-   Thus, to grow an array A without saving its old contents, do
-   { xfree (A); A =3D NULL; A =3D xpalloc (NULL, &AITEMS, ...); }.
-   The A =3D NULL avoids a dangling pointer if xpalloc exhausts memory
-   and signals an error, and later this code is reexecuted and
-   attempts to free A.  */
-
-void *
-xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min,
-=09 ptrdiff_t nitems_max, ptrdiff_t item_size)
+ptrdiff_t
+xpalloc_nbytes (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min,
+=09=09ptrdiff_t nitems_max, ptrdiff_t item_size)
 {
   ptrdiff_t n0 =3D *nitems;
   eassume (0 < item_size && 0 < nitems_incr_min && 0 <=3D n0 && -1 <=3D ni=
tems_max);
@@ -864,8 +845,42 @@ xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems=
_incr_min,
 =09  || (0 <=3D nitems_max && nitems_max < n)
 =09  || ckd_mul (&nbytes, n, item_size)))
     memory_full (SIZE_MAX);
-  pa =3D xrealloc (pa, nbytes);
   *nitems =3D n;
+  return nbytes;
+}
+
+/* Grow PA, which points to an array of *NITEMS items, and return the
+   location of the reallocated array, updating *NITEMS to reflect its
+   new size.  The new array will contain at least NITEMS_INCR_MIN more
+   items, but will not contain more than NITEMS_MAX items total.
+   ITEM_SIZE is the size of each item, in bytes.
+
+   ITEM_SIZE and NITEMS_INCR_MIN must be positive.  *NITEMS must be
+   nonnegative.  If NITEMS_MAX is -1, it is treated as if it were
+   infinity.
+
+   If PA is null, then allocate a new array instead of reallocating
+   the old one.
+
+   Block interrupt input as needed.  If memory exhaustion occurs, set
+   *NITEMS to zero if PA is null, and signal an error (i.e., do not
+   return).
+
+   Thus, to grow an array A without saving its old contents, do
+   { xfree (A); A =3D NULL; A =3D xpalloc (NULL, &AITEMS, ...); }.
+   The A =3D NULL avoids a dangling pointer if xpalloc exhausts memory
+   and signals an error, and later this code is reexecuted and
+   attempts to free A.  */
+
+void *
+xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min,
+=09 ptrdiff_t nitems_max, ptrdiff_t item_size)
+{
+  ptrdiff_t nitems_new =3D *nitems;
+  ptrdiff_t nbytes =3D xpalloc_nbytes (pa, &nitems_new, nitems_incr_min,
+=09=09=09=09     nitems_max, item_size);
+  pa =3D xrealloc (pa, nbytes);
+  *nitems =3D nitems_new;
   return pa;
 }
=20
diff --git a/src/eval.c b/src/eval.c
index 1fbed2d96b9..e542efd9476 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -225,12 +225,15 @@ init_eval_once (void)
 init_eval_once_for_pdumper (void)
 {
   enum { size =3D 50 };
-  union specbinding *pdlvec =3D malloc ((size + 1) * sizeof *specpdl);
+  union specbinding *pdlvec =3D xzalloc ((size + 1) * sizeof *specpdl);
   specpdl =3D specpdl_ptr =3D pdlvec + 1;
   specpdl_end =3D specpdl + size;
 #ifdef HAVE_MPS
   for (int i =3D 0; i < size; ++i)
-    specpdl[i].kind =3D SPECPDL_FREE;
+    {
+      specpdl[i].kind =3D SPECPDL_FREE;
+      memset (&specpdl[i], 0, sizeof specpdl[i]);
+    }
   igc_on_alloc_main_thread_specpdl ();
 #endif
 }
@@ -2479,15 +2482,23 @@ grow_specpdl_allocation (void)
   ptrdiff_t size =3D specpdl_end - specpdl;
   ptrdiff_t pdlvecsize =3D size + 1;
   eassert (max_size > size);
+
+#ifdef HAVE_MPS
+  ptrdiff_t old_pdlvecsize =3D pdlvecsize;
+  ptrdiff_t nbytes =3D xpalloc_nbytes (pdlvec, &pdlvecsize, 1, max_size + =
1,
+=09=09=09=09     sizeof *specpdl);
+  union specbinding *new_pdlvec =3D xzalloc (nbytes);
+  igc_replace_specpdl (pdlvec, old_pdlvecsize,
+=09=09       new_pdlvec, pdlvecsize);
+  union specbinding *old_pdlvec =3D pdlvec;
+  pdlvec =3D new_pdlvec;
+  xfree (old_pdlvec);
+#else
   pdlvec =3D xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpd=
l);
+#endif
   specpdl =3D pdlvec + 1;
   specpdl_end =3D specpdl + pdlvecsize - 1;
   specpdl_ptr =3D specpdl_ref_to_ptr (count);
-#ifdef HAVE_MPS
-  for (int i =3D size; i < pdlvecsize - 1; ++i)
-    specpdl[i].kind =3D SPECPDL_FREE;
-  igc_on_grow_specpdl ();
-#endif
 }
=20
 /* Eval a sub-expression of the current expression (i.e. in the same
@@ -3847,6 +3858,7 @@ unbind_to (specpdl_ref count, Lisp_Object value)
       this_binding =3D *--specpdl_ptr;
 #ifdef HAVE_MPS
       specpdl_ptr->kind =3D SPECPDL_FREE;
+      memset (specpdl_ptr, 0, sizeof *specpdl_ptr);
 #endif
       do_one_unbind (&this_binding, true, SET_INTERNAL_UNBIND);
     }
diff --git a/src/igc.c b/src/igc.c
index af73406cecc..08e8f37387f 100644
--- a/src/igc.c
+++ b/src/igc.c
@@ -2986,6 +2986,59 @@ igc_on_grow_specpdl (void)
   }
 }
=20
+void
+igc_replace_specpdl (volatile union specbinding *old_pdlvec, ptrdiff_t old=
_entries,
+=09=09     volatile union specbinding *new_pdlvec, ptrdiff_t new_entries)
+{
+  struct igc *gc =3D global_igc;
+  mps_root_t root;
+  for (ptrdiff_t i =3D 0; i < new_entries; i++)
+    new_pdlvec[i].kind =3D SPECPDL_FREE;
+
+  volatile union specbinding *new_specpdl =3D new_pdlvec + 1;
+  struct igc_thread_list *t =3D current_thread->gc_info;
+  mps_res_t res
+    =3D mps_root_create_area (&root, gc->arena, mps_rank_exact (), 0,
+=09=09=09    (void *)new_specpdl, (void *)(new_pdlvec + new_entries),
+=09=09=09    scan_specpdl, t);
+  IGC_CHECK_RES (res);
+  struct igc_root_list *old_root =3D t->d.specpdl_root;
+  t->d.specpdl_root
+    =3D register_root (gc, root, (void *)new_specpdl, (void *)(new_pdlvec =
+ new_entries),
+=09=09     false, "specpdl");
+  volatile union specbinding orig;
+
+  for (ptrdiff_t i =3D 0; i < old_entries; i++)
+    {
+    try_again:;
+      orig =3D old_pdlvec[i];
+      if (memcmp ((void *)&orig, (void *)(&old_pdlvec[i]), sizeof orig))
+=09{
+=09  /* We tried to create a snapshot of old_pdlvec[i] on the
+=09     stack, which would pin all pointers in old_pdlvec[i].  But
+=09     we failed, because a pointer in old_pdlvec[i] was updated
+=09     by GC while we were creating the copy.  Try again.  */
+=09  goto try_again;
+=09}
+      volatile union specbinding temp =3D orig;
+      temp.kind =3D SPECPDL_FREE;
+      new_pdlvec[i] =3D temp;
+      new_pdlvec[i].kind =3D orig.kind;
+      if (memcmp ((void *)(&new_pdlvec[i]), (void *)(&old_pdlvec[i]), size=
of orig))
+=09{
+=09  /* old_pdlvec[i] was updated by GC even though all of its
+=09     references should have been pinned by the volatile "orig"
+=09     copy on the stack!  This really shouldn't happen!  */
+=09  emacs_abort ();
+=09}
+    }
+
+  if (memcmp ((void *)new_pdlvec, (void *)old_pdlvec, old_entries * sizeof=
 (old_pdlvec[0])))
+    emacs_abort ();
+
+  igc_destroy_root_with_start (old_root->d.start);
+}
+
 static igc_root_list *
 root_create_exact_n (Lisp_Object *start, size_t n)
 {
@@ -3193,16 +3246,42 @@ igc_park_arena (void)
 igc_grow_rdstack (struct read_stack *rs)
 {
   struct igc *gc =3D global_igc;
-  IGC_WITH_PARKED (gc)
-  {
-    igc_destroy_root_with_start (rs->stack);
-    ptrdiff_t old_nitems =3D rs->size;
-    rs->stack =3D xpalloc (rs->stack, &rs->size, 1, -1, sizeof *rs->stack)=
;
-    for (ptrdiff_t i =3D old_nitems; i < rs->size; ++i)
-      rs->stack[i].type =3D RE_free;
-    root_create_exact (gc, rs->stack, rs->stack + rs->size, scan_rdstack,
-=09=09       "rdstack");
-  }
+  ptrdiff_t old_nitems =3D rs->size;
+  ptrdiff_t nbytes =3D xpalloc_nbytes (rs->stack, &rs->size, 1, -1, sizeof=
 *rs->stack);
+  struct read_stack_entry *new_stack =3D xzalloc (nbytes);
+  for (ptrdiff_t i =3D 0; i < rs->size; i++)
+    new_stack[i].type =3D RE_free;
+  volatile struct read_stack_entry orig;
+  struct read_stack *old_stack =3D rs;
+  root_create_exact (gc, new_stack, (char *)new_stack + nbytes, scan_rdsta=
ck,
+=09=09     "rdstack");
+  for (ptrdiff_t i =3D 0; i < old_nitems; i++)
+    {
+    try_again:;
+      orig =3D old_stack->stack[i];
+      if (memcmp ((void *)&orig, (void *)(&old_stack->stack[i]), sizeof or=
ig))
+=09{
+=09  /* We tried to create a snapshot of old_stack[i] on the
+=09     stack, which would pin all pointers in old_stack[i].  But
+=09     we failed, because a pointer in old_stack[i] was updated
+=09     by GC while we were creating the copy.  Try again.  */
+=09  goto try_again;
+=09}
+      volatile struct read_stack_entry temp =3D orig;
+      temp.type =3D RE_free;
+      new_stack[i] =3D temp;
+      new_stack[i].type =3D orig.type;
+      if (memcmp ((void *)(&new_stack[i]), (void *)(&old_stack->stack[i]),=
 sizeof orig))
+=09{
+=09  /* old_pdlvec[i] was updated by GC even though all of its
+=09     references should have been pinned by the volatile "orig"
+=09     copy on the stack!  This really shouldn't happen!  */
+=09  emacs_abort ();
+=09}
+    }
+
+  igc_xfree (rs->stack);
+  rs->stack =3D new_stack;
 }
=20
 Lisp_Object *
@@ -3249,28 +3328,35 @@ igc_xzalloc_ambig (size_t size)
 void *
 igc_xnmalloc_ambig (ptrdiff_t nitems, ptrdiff_t item_size)
 {
-  return igc_xzalloc_ambig (nitems * item_size);
+  ptrdiff_t nbytes;
+  if (ckd_mul (&nbytes, nitems, item_size) || SIZE_MAX < nbytes)
+    memory_full (SIZE_MAX);
+  return igc_xzalloc_ambig (nbytes);
 }
=20
 void *
 igc_realloc_ambig (void *block, size_t size)
 {
   struct igc *gc =3D global_igc;
-  void *p;
-  IGC_WITH_PARKED (gc)
-  {
-    igc_destroy_root_with_start (block);
-    /* Can't make a root that has zero length.  Want one to be able to
-       detect calling igc_free on something not having a root.  */
-    size_t new_size =3D (size =3D=3D 0 ? IGC_ALIGN_DFLT : size);
-    p =3D xrealloc (block, new_size);
-    void *end =3D (char *)p + new_size;
-    root_create_ambig (global_igc, p, end, "realloc-ambig");
-  }
+  void *p =3D xzalloc (size);
+  struct igc_root_list *r =3D root_find (block);
+  ptrdiff_t old_size =3D (char *)r->d.end - (char *)r->d.start;
+  root_create_ambig (gc, p, (char *)p + size, "realloc-ambig");
+  mps_word_t *old_pw =3D block;
+  mps_word_t *new_pw =3D p;
+  for (ptrdiff_t i =3D 0; i < old_size / sizeof (mps_word_t); i++)
+    {
+      volatile mps_word_t word =3D old_pw[i];
+      if (memcmp ((void *)&word, old_pw + i, sizeof word))
+=09emacs_abort ();
+      new_pw[i] =3D word;
+    }
+  memcpy (new_pw + (old_size / sizeof (mps_word_t)), old_pw + (old_size / =
sizeof (mps_word_t)),
+=09  old_size % sizeof (mps_word_t));
+  igc_xfree (block);
   return p;
 }
=20
-
 void
 igc_xfree (void *p)
 {
@@ -3284,17 +3370,23 @@ igc_xfree (void *p)
 }
=20
 void *
-igc_xpalloc_ambig (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min,
+igc_xpalloc_ambig (void *old_pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_=
min,
 =09=09   ptrdiff_t nitems_max, ptrdiff_t item_size)
 {
-  IGC_WITH_PARKED (global_igc)
-  {
-    igc_destroy_root_with_start (pa);
-    pa =3D xpalloc (pa, nitems, nitems_incr_min, nitems_max, item_size);
-    char *end =3D (char *) pa + *nitems * item_size;
-    root_create_ambig (global_igc, pa, end, "xpalloc-ambig");
-  }
-  return pa;
+  ptrdiff_t old_nitems =3D *nitems;
+  ptrdiff_t new_nitems =3D *nitems;
+  ptrdiff_t nbytes =3D xpalloc_nbytes (old_pa, &new_nitems, nitems_incr_mi=
n,
+=09=09=09=09     nitems_max, item_size);
+  void *new_pa =3D xzalloc (nbytes);
+  char *end =3D (char *)new_pa + nbytes;
+  root_create_ambig (global_igc, new_pa, end, "xpalloc-ambig");
+  mps_word_t *old_word =3D old_pa;
+  mps_word_t *new_word =3D new_pa;
+  for (ptrdiff_t i =3D 0; i < (old_nitems * item_size) / sizeof (mps_word_=
t); i++)
+    new_word[i] =3D old_word[i];
+  *nitems =3D new_nitems;
+  igc_xfree (old_pa);
+  return new_pa;
 }
=20
 void
@@ -3303,29 +3395,48 @@ igc_xpalloc_exact (void **pa_cell, ptrdiff_t *nitem=
s,
 =09=09   ptrdiff_t item_size, igc_scan_area_t scan_area,
 =09=09   void *closure)
 {
-  IGC_WITH_PARKED (global_igc)
-  {
-    void *pa =3D *pa_cell;
-    igc_destroy_root_with_start (pa);
-    pa =3D xpalloc (pa, nitems, nitems_incr_min, nitems_max, item_size);
-    char *end =3D (char *)pa + *nitems * item_size;
-    root_create (global_igc, pa, end, mps_rank_exact (), (mps_area_scan_t)=
 scan_area,
-=09=09 closure, false, "xpalloc-exact");
-    *pa_cell =3D pa;
-  }
+  void *old_pa =3D *pa_cell;
+  ptrdiff_t old_nitems =3D *nitems;
+  ptrdiff_t new_nitems =3D *nitems;
+  ptrdiff_t nbytes =3D xpalloc_nbytes (old_pa, &new_nitems, nitems_incr_mi=
n,
+=09=09=09=09     nitems_max, item_size);
+  void *new_pa =3D xzalloc (nbytes);
+  char *end =3D (char *)new_pa + nbytes;
+  root_create (global_igc, new_pa, end, mps_rank_exact (), (mps_area_scan_=
t) scan_area,
+=09       closure, false, "xpalloc-exact");
+  for (ptrdiff_t i =3D 0; i < (old_nitems); i++)
+    {
+      volatile mps_word_t area[(item_size + (sizeof (mps_word_t) - 1)) / (=
sizeof (mps_word_t))];
+      memcpy ((void *)area, (char *)old_pa + item_size * i, item_size);
+      if (memcmp ((void *)area, (char *)old_pa + item_size * i, item_size)=
)
+=09emacs_abort ();
+      memcpy ((char *)new_pa + item_size * i, (void *)area, item_size);
+    }
+  if (memcmp (old_pa, new_pa, old_nitems * item_size))
+    emacs_abort ();
+  eassert ((item_size) % sizeof (mps_word_t) =3D=3D 0);
+  *pa_cell =3D new_pa;
+  *nitems =3D new_nitems;
+  igc_xfree (old_pa);
 }
=20
 void *
-igc_xnrealloc_ambig (void *pa, ptrdiff_t nitems, ptrdiff_t item_size)
+igc_xnrealloc_ambig (void *old_pa, ptrdiff_t nitems, ptrdiff_t item_size)
 {
-  IGC_WITH_PARKED (global_igc)
-  {
-    igc_destroy_root_with_start (pa);
-    pa =3D xnrealloc (pa, nitems, item_size);
-    char *end =3D (char *) pa + nitems * item_size;
-    root_create_ambig (global_igc, pa, end, "xnrealloc-ambig");
-  }
-  return pa;
+  struct igc_root_list *r =3D root_find (old_pa);
+  ptrdiff_t old_nbytes =3D (char *)r->d.end - (char *)r->d.start;
+  ptrdiff_t nbytes;
+  if (ckd_mul (&nbytes, nitems, item_size) || SIZE_MAX < nbytes)
+    memory_full (SIZE_MAX);
+  void *new_pa =3D xzalloc (nbytes);
+  char *end =3D (char *) new_pa + nbytes;
+  root_create_ambig (global_igc, new_pa, end, "xnrealloc-ambig");
+  memcpy (new_pa, old_pa, old_nbytes);
+  if (memcmp (new_pa, old_pa, old_nbytes))
+    emacs_abort ();
+  igc_xfree (old_pa);
+
+  return new_pa;
 }
=20
 static void
@@ -4408,9 +4519,9 @@ larger_marker_vector (Lisp_Object v)
   ptrdiff_t old_len =3D NILP (v) ? 0 : ASIZE (v);
   ptrdiff_t new_len =3D max (2, 2 * old_len);
   Lisp_Object new_v =3D alloc_marker_vector (new_len, Qnil);
-  ptrdiff_t i =3D 0;
+  ptrdiff_t i =3D 1;
   if (VECTORP (v))
-    for (i =3D 1; i < ASIZE (v); ++i)
+    for (; i < ASIZE (v); ++i)
       ASET (new_v, i, AREF (v, i));
   for (; i < ASIZE (new_v) - 1; ++i)
     ASET (new_v, i, make_fixnum (i + 1));
@@ -4430,6 +4541,8 @@ igc_add_marker (struct buffer *b, struct Lisp_Marker =
*m)
       v =3D BUF_MARKERS (b) =3D larger_marker_vector (v);
       next_free =3D XFIXNUM (AREF (v, 0));
     }
+  /* unrelated; triggered during testing */
+  eassert (FIXNUMP (AREF (v, next_free)));
   ASET (v, 0, AREF (v, next_free));
   ASET (v, next_free, make_lisp_ptr (m, Lisp_Vectorlike));
   m->index =3D next_free;
diff --git a/src/igc.h b/src/igc.h
index d4be8e4c03d..7ccb931550d 100644
--- a/src/igc.h
+++ b/src/igc.h
@@ -141,6 +141,8 @@ #define EMACS_IGC_H
 specpdl_ref igc_park_arena (void);
 void igc_postmortem (void);
 void igc_on_grow_specpdl (void);
+void igc_replace_specpdl (volatile union specbinding *old_specpdl, ptrdiff=
_t old_nitems,
+=09=09=09  volatile union specbinding *new_specpdl, ptrdiff_t new_nitems);
 void igc_on_alloc_main_thread_specpdl (void);
 void igc_on_alloc_main_thread_bc (void);
 void igc_on_staticpros_complete (void);
diff --git a/src/lisp.h b/src/lisp.h
index 7dfcda223df..e48e1c5e121 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3799,7 +3799,7 @@ #define DEFVAR_KBOARD(lname, vname, doc)=09=09=09\
 enum specbind_tag
 {
 # ifdef HAVE_MPS
-  SPECPDL_FREE,
+  SPECPDL_FREE =3D 0, /* must be 0 so xzalloc'd memory scrans without cras=
hing */
 # endif
   SPECPDL_UNWIND,=09=09/* An unwind_protect function on Lisp_Object.  */
   SPECPDL_UNWIND_ARRAY,=09=09/* Likewise, on an array that needs freeing.
@@ -5903,6 +5903,7 @@ NATIVE_COMP_FUNCTION_DYNP (Lisp_Object a)
   ATTRIBUTE_MALLOC_SIZE ((1,2)) ATTRIBUTE_RETURNS_NONNULL;
 extern void *xnrealloc (void *, ptrdiff_t, ptrdiff_t)
   ATTRIBUTE_ALLOC_SIZE ((2,3)) ATTRIBUTE_RETURNS_NONNULL;
+extern ptrdiff_t xpalloc_nbytes (void *, ptrdiff_t *, ptrdiff_t, ptrdiff_t=
, ptrdiff_t);
 extern void *xpalloc (void *, ptrdiff_t *, ptrdiff_t, ptrdiff_t, ptrdiff_t=
)
   ATTRIBUTE_RETURNS_NONNULL;
=20
diff --git a/src/print.c b/src/print.c
index 6fc13d4dd39..fc689d11e7a 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1402,12 +1402,13 @@ pp_stack_push_values (Lisp_Object vectorlike, ptrdi=
ff_t start, ptrdiff_t n)
     return;
   if (ppstack.sp >=3D ppstack.size)
     grow_pp_stack ();
+  memset (&ppstack.stack[ppstack.sp], 0, sizeof ppstack.stack[ppstack.sp])=
;
+  ppstack.stack[ppstack.sp].is_free =3D false;
   ppstack.stack[ppstack.sp++]
     =3D (struct print_pp_entry){.start =3D start,
 =09=09=09      .n =3D n,
 =09=09=09      .u.vectorlike =3D vectorlike
 =09=09=09     };
-  ppstack.stack[ppstack.sp - 1].is_free =3D false;
 }
 #else
 static inline void
@@ -2222,7 +2223,7 @@ named_escape (int i)
 enum print_entry_type
 {
 #ifdef HAVE_MPS
-  PE_free,
+  PE_free =3D 0, /* must be zero so xzalloc'd memory scans without crashin=
g */
 #endif
   PE_list,=09=09=09/* print rest of list */
   PE_rbrac,=09=09=09/* print ")" */
--=20
2.48.1






Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 13:55:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 08:55:36 2025
Received: from localhost ([127.0.0.1]:33509 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgOpU-00082t-DW
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 08:55:36 -0500
Received: from mail-10628.protonmail.ch ([79.135.106.28]:59717)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgOpP-00082Z-07
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 08:55:34 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1738936524; x=1739195724;
 bh=tRrpg8g2m3b/j84okZzYcxUXPfu5D/GV5LraBmuRWSE=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=dHFWeai/0F2AYVuQlsg/KKM8Oq9ov2e+QCNmQaXfSkY3qI1p50PMVv8glWxM6ziGI
 3LRV1KW5I69wqVN9UHJPf3eX6aIYuL/KLBvngJbJgKf43kc8RvaGFr24oSyNg6OczS
 aEOsufzVi4b3owBnJC/Ig2SIQDH4pSqVkxea7z3BwlulH9trxllmH7TTwXQL8ZCTn/
 0MqYi+v8tKaGMGuEphiIacWr+APHeXrkOu1BaZVkfD9G96Jg94oyzKFtjg1P0TuAcI
 UnE4Eu9mjV0y9JNx0SDi4Nc88nBoyVsDe0TNsQjyo74Ds8awN8+bZogkWodTW4CcaT
 ZxH1SaNHrqPfw==
Date: Fri, 07 Feb 2025 13:55:19 +0000
To: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <87frkpg8r9.fsf@HIDDEN>
In-Reply-To: <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
 <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 44dd900b6c954a940b39676a618c5b8cff896bda
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes:

> On 7. Feb 2025, at 11:41, Pip Cet <pipcet@HIDDEN> wrote:
>
>  I have a patch, but I'd like to discuss whether this is a plausible
>  theory first.  Gerd, if there's something that prevents this problem
>  from happening, and I missed it, could you briefly yell at me here?
>
> Good catch!

Thanks!

> I think he idea I had with the igc_on_... is mistaken,

I've rewritten the root resizing functions to always follow the

1. allocate new zeroed root
2. register new root
3. copy contents from old root
4. if this fails, try again
5. save new root
6. unregister old root
7. free old root

pattern.  It's a bit complicated, but avoids the need for parking the
arena in these cases.  And, yes, it'll waste some memory, but these are
roots, and roots are supposed to be small.  I'd rather do it that way
and turn them into non-roots than figure out how to use realloc() on an
MPS root, TBH.

> one must not free the memory of a root while the MPS is not parked.

I think the surprising thing is that parking the arena will cause GC
activity.  It's best to avoid parking it except when walking the pools,
I think.

Still testing the patch...

Pip





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 13:48:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 08:48:17 2025
Received: from localhost ([127.0.0.1]:33497 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgOiO-0007fk-RA
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 08:48:17 -0500
Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]:48544)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>)
 id 1tgOiL-0007fT-J1
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 08:48:15 -0500
Received: by mail-ed1-x529.google.com with SMTP id
 4fb4d7f45d1cf-5dcf0de81ebso4057963a12.1
 for <76091 <at> debbugs.gnu.org>; Fri, 07 Feb 2025 05:48:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1738936087; x=1739540887; darn=debbugs.gnu.org;
 h=references:to:cc:in-reply-to:date:subject:mime-version:message-id
 :from:from:to:cc:subject:date:message-id:reply-to;
 bh=CC8hjnQHkcQDHVS3sXKUwuyG/JR/umsWMQb+V3khdD4=;
 b=fBdByzjVf333KFG8YlplXRc1wtdAAhmbejIbIT6NoG3zF+ZFgFElFo56xeY5r988RD
 6vgx4jBEi10fxqgLmeTAn85Fh6f59b6FbxmRrfpcrmgTMm6ncMY3YsTYa677NTAUBQjd
 qNMiuEcMbkZ+9fU/VPXUjPX71O7ecHK2U7HfQil6HMtoaz+pW6S+pRASPVO+WOfds8M+
 Xr0kT82JcptMpnT7FTTcEhOm3XhiPudBG//meoca3i5uOAmmFtN5E/Oh9lu76F8hgwyu
 414zFjF0/tUEQ8tGFInjlK8G7HvcLexje5NzeUxS0BGCTDo6/AB3wTIIF+WrVv3j4pT+
 JG0A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1738936087; x=1739540887;
 h=references:to:cc:in-reply-to:date:subject:mime-version:message-id
 :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
 bh=CC8hjnQHkcQDHVS3sXKUwuyG/JR/umsWMQb+V3khdD4=;
 b=CiClqmnT+zm1ywBgqqtAnCFZ2pVp7ynPMaHzviIBOVxEsU4QbeEhSzquBkPDWBjezU
 CvrC4Ks/BDn/wWBViKzkxR+gUjeaXMk6hGKo5lWs4bVc9njuuw/MCtfLfGkMMlMz6pOU
 /8p9ENt236V+fGGS2k9DrDHh9aXbJHhyCnAFCvjKwzyy0OCS9YRjgsFcAR+CCTsj23xn
 Sb8LebW8R5IjET16UKoYkbbI9V+3pNtsMVnLLzXtfw7NiVxWpdfIRbxPX2LpOnJBov5Q
 iWm/CaTJAdtbFSlvbnb+1BLgWH3Paq1WktW/XpM9yDDv78vZOQvhUHXA/GHtGvHbfX8e
 7U2Q==
X-Forwarded-Encrypted: i=1;
 AJvYcCUS5DzWg4jfw5EKultFhJkk/FO/XrDQdI9vTLwb4ExanKUZ9JZTHRuPxOjF0MhCrk6Hch37hw==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyB+5SFQQj7o9R6sRuYcEZr/VB1BXY3oeQACceqfV9azC+jMroP
 HfJprvCMVYuyYtkVFMkIGCdINHuahyi5xVSGOBIAcaWS/Qri8J6x
X-Gm-Gg: ASbGncutMIIdpAcOF3EFoaPsEam4S74UldVhjHJo68iqhLMtLq0+KqJRgS+A+J6J8ZD
 3Dj2aZXoSY6PHh4pdltt+Olerds593Rw3u7gm4vjyztNxSJxJD8K198PZdFzjqLWlh3Jfqnni/B
 DMS01CDPROUEYHspvq3nN9hBE1AKJQcVSjnqfJ1uSjs0nV8I93INMFrmefRgJdIylF4r+00fvLn
 6OXT+M15of/hAoOa1yE6KclcYac6TdG22SYCqsmQhM2/an4ZM2wb5IcfFcHTBZtT6MUo3zw4o2i
 /A5RvXbAKyVJvZDrXR+nuNfDla+BosSO4ELyPRLVXxD87aHk85EM8lu3qvIUTdPaiZjstWOA9kA
 NxA9lZYjVDfq463wP4Ovrjodd1GRd765/KdkjdDOE
X-Google-Smtp-Source: AGHT+IFfGldYH5JfhQyWjFQqr94BlguUZvWd4tY0NBXHcfDnG+kZKCj0WynO2dSZLMC/YBeyvgItoA==
X-Received: by 2002:a05:6402:26cf:b0:5dc:80d5:ff23 with SMTP id
 4fb4d7f45d1cf-5de4507022cmr3874386a12.15.1738936086952; 
 Fri, 07 Feb 2025 05:48:06 -0800 (PST)
Received: from smtpclient.apple
 (p200300e0b713f4006ceb49f89b3a8bd6.dip0.t-ipconnect.de.
 [2003:e0:b713:f400:6ceb:49f8:9b3a:8bd6])
 by smtp.gmail.com with ESMTPSA id
 4fb4d7f45d1cf-5de51afbe28sm273462a12.30.2025.02.07.05.48.05
 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 07 Feb 2025 05:48:05 -0800 (PST)
From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
Message-Id: <32E167EF-FA03-4DC0-92C9-7F73CCB6B53F@HIDDEN>
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_1ACB6A31-02A6-4B65-B71D-A7160FB83861"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\))
Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error:
 assertion failed: BUFFERP (a)
Date: Fri, 7 Feb 2025 14:47:55 +0100
In-Reply-To: <87lduif364.fsf@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
X-Mailer: Apple Mail (2.3826.400.131.1.6)
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


--Apple-Mail=_1ACB6A31-02A6-4B65-B71D-A7160FB83861
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 7. Feb 2025, at 11:41, Pip Cet <pipcet@HIDDEN> wrote:
>=20
> I have a patch, but I'd like to discuss whether this is a plausible
> theory first.  Gerd, if there's something that prevents this problem
> from happening, and I missed it, could you briefly yell at me here?

Good catch!

I think he idea I had with the igc_on_... is mistaken, one must not free =
the memory of a root while the MPS is not parked.


--Apple-Mail=_1ACB6A31-02A6-4B65-B71D-A7160FB83861
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; =
charset=3Dus-ascii"></head><body style=3D"overflow-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;">On 7. Feb =
2025, at 11:41, Pip Cet &lt;pipcet@HIDDEN&gt; =
wrote:<br><div><blockquote type=3D"cite"><br =
class=3D"Apple-interchange-newline"><div><meta charset=3D"UTF-8"><span =
style=3D"caret-color: rgb(0, 0, 0); font-family: =
JetBrainsMono-Regular_Thin; font-size: 14px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">I have =
a patch, but I'd like to discuss whether this is a plausible</span><br =
style=3D"caret-color: rgb(0, 0, 0); font-family: =
JetBrainsMono-Regular_Thin; font-size: 14px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: JetBrainsMono-Regular_Thin; font-size: 14px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">theory =
first. &nbsp;Gerd, if there's something that prevents this =
problem</span><br style=3D"caret-color: rgb(0, 0, 0); font-family: =
JetBrainsMono-Regular_Thin; font-size: 14px; font-style: normal; =
font-variant-caps: normal; font-weight: 400; letter-spacing: normal; =
text-align: start; text-indent: 0px; text-transform: none; white-space: =
normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none;"><span style=3D"caret-color: rgb(0, 0, 0); =
font-family: JetBrainsMono-Regular_Thin; font-size: 14px; font-style: =
normal; font-variant-caps: normal; font-weight: 400; letter-spacing: =
normal; text-align: start; text-indent: 0px; text-transform: none; =
white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
text-decoration: none; float: none; display: inline !important;">from =
happening, and I missed it, could you briefly yell at me =
here?</span><br></div></blockquote><br></div><div>Good =
catch!</div><div><br></div><div>I think he idea I had with the =
igc_on_... is mistaken, one must not free the memory of a root while the =
MPS is not parked.</div><div><br></div></body></html>=

--Apple-Mail=_1ACB6A31-02A6-4B65-B71D-A7160FB83861--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 12:08:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 07:08:28 2025
Received: from localhost ([127.0.0.1]:33201 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgN9o-0005By-9k
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 07:08:28 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:56032)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tgN9m-0005Bj-JW
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 07:08:27 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tgN9g-0004y3-H7; Fri, 07 Feb 2025 07:08:20 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=pErIfBbs6oWxEJsWA9V7wf3k6NQmJOLR5Osx6huEIhA=; b=YCHclXvvUf42
 i4/d0wfOW6mWkrXvT6W45s/TNl2yYemMRMJ6dcCAYIr0D5UCYItHOrZuzimBcjyDEgpObVlEdCnzP
 XLNV+r4iwv/hRb1L09Hd5Ar+Vm+r1Kp/sUaXZcrgf6XH7O2NNEkTEs9lF0sIWQaVC9e4p7/WcGdlB
 8ozCtFP3Fn/cLe0PCtJUo5q06SkEQBIHOAV46LL1GUfKKib4XfN5UdJpTFx9pc0OX/F4XHiyK/3cv
 ASBT/8ViRfldi4ULDdFCP7t7fqv3lkp3hQlRjNEq4vxu/2Tpu4i8Dfao/91QdBi6EW8OnVtGDFAoE
 SnG+o0Kb1YMvJDfaGNqz2w==;
Date: Fri, 07 Feb 2025 14:08:16 +0200
Message-Id: <865xlm555b.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Pip Cet <pipcet@HIDDEN>
In-Reply-To: <87lduif364.fsf@HIDDEN> (message from Pip Cet on Fri, 07
 Feb 2025 10:41:18 +0000)
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87lduif364.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76091
Cc: gerd.moellmann@HIDDEN, 76091 <at> debbugs.gnu.org, telegraph@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Fri, 07 Feb 2025 10:41:18 +0000
> From: Pip Cet <pipcet@HIDDEN>
> Cc: Gregor Zattler <telegraph@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 76091 <at> debbugs.gnu.org
> 
> "Eli Zaretskii" <eliz@HIDDEN> writes:
> 
> >> Date: Thu, 06 Feb 2025 13:49:30 +0100
> >> From:  Gregor Zattler via "Bug reports for GNU Emacs,
> >>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> >>
> >> Dear Emacs developers, I don't know if
> >> this failed assertion is due to using
> >> MPS as GC.
> >>
> >> I played along with pdf-tools and
> >> org-noter when it happened.
> >>
> >> This time I built with a current
> >> checkout of feature/igc.
> >>
> >> GDB output even further below.
> >>
> >> The crashed session is still in GDB.
> >> [...]
> >> Breakpoint 1, terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at ./src/emacs.c:425
> >> 425	{
> >> +bt
> >> #0  terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at ./src/emacs.c:425
> >> #1 0x00005555555b8f5b in die (msg=msg@entry=0x5555559b40d0 "BUFFERP
> >> (a)", file=file@entry=0x5555559b40c7 "buffer.h",
> >> line=line@entry=829) at ./src/alloc.c:7683
> >> #2  0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out
> >> ) at ./src/buffer.h:829
> >> #3  0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out
> >> ) at ./src/xdisp.c:17024
> >> #4  prepare_menu_bars () at ./src/xdisp.c:14041
> >
> > This is here:
> >
> >       FOR_EACH_FRAME (tail, frame)
> > 	{
> > 	  struct frame *f = XFRAME (frame);
> > 	  struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f));
> > 	  if (some_windows
> > 	      && !f->redisplay
> > 	      && !w->redisplay
> > 	      && !XBUFFER (w->contents)->text->redisplay)
> > 	    continue;
> >
> > And I don't understand how w->contents of a frame's selected window
> > could fail the BUFFERP test.
> 
> Here's my current theory:
> 
> 1. display_mode_lines calls
> 
>   record_unwind_protect
>     (restore_frame_selected_window, XFRAME (new_frame)->selected_window);
> 
> 2. that stores the selected window in the specpdl
> 
> 3. the specpdl is then grown
> 
> 4. we xpalloc the specpdl area, creating a copy of it and freeing the
> old memory, which is still registered as a root.
> 
> 5. igc_on_grow_specpdl calls mps_arena_park
> 
> 6. the first thing mps_arena_park does is to complete the current GC
> cycle.  This means that it will:
> 
> * look at the old specpdl area, which has been freed and may now contain
>   invalid data
> * *modify* the old specpdl area, which may have been reallocated so
>   cause random memory corruption
> * move objects by updating their pointers in the *old* specpdl area,
>   leaving the pointers in the *new* specpdl area invalid
> 
> 7. in our case, the selected window was supposed to have been moved but
> the pointer in the *new* specpdl area continues to point to the old
> memory, which is reused for something else which fails the BUFFERP test.
> 
> 8. we unwind and restore the invalid selected window pointer.
> 
> I have a patch, but I'd like to discuss whether this is a plausible
> theory first.  Gerd, if there's something that prevents this problem
> from happening, and I missed it, could you briefly yell at me here?

If this is possible, all hell will break loose.  The selected window
of any frame must be a leaf window, and its contents member must
identify a buffer, at all times.  We must ensure this is true whenever
our code runs.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 10:41:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 05:41:31 2025
Received: from localhost ([127.0.0.1]:33040 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgLne-0003VH-PB
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 05:41:31 -0500
Received: from mail-4322.protonmail.ch ([185.70.43.22]:61711)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgLnc-0003V0-LX
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 05:41:29 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1738924882; x=1739184082;
 bh=x7d6qtR6F7Je1wn0/yR0VU71QAkeoihjUpba32ug73U=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=uem/l/yUkLzhheLhK9jRGnTAZPVoIslhZNn/RSUvr1c9gGPP+yUoV/z0Fkw3t65iJ
 QTepY3KueO2HM7YPQLoG+DrTC6GdI9T5tBRBf+HXUFgbxW8yC7gpDJ2uJg21HYmiho
 w0nJOYX4Uj4kD1OLTdjQj+9t+os0N6nexKj1fwpZFqR7DOgDlPvCwUUR+MTDebsFf1
 yHkO/lbHHPpu9CtxlqLmUBZdlPm1zm+BUjsEXDUs27Im/71r0+IQ+V1yFD+9Klwhn8
 ETYDR08erOz0S+ldHxDdL2GwCKFXbKoY+DdCz99Yq2jqYd/MrlevkMpMd9OzT8ZgHN
 pYAvR/TaAXpmw==
Date: Fri, 07 Feb 2025 10:41:18 +0000
To: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <87lduif364.fsf@HIDDEN>
In-Reply-To: <865xln6puv.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 03c60cdf35a92b40329c681a5ffd7e50035b7a92
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org, Gregor Zattler <telegraph@HIDDEN>,
 Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Eli Zaretskii" <eliz@HIDDEN> writes:

>> Date: Thu, 06 Feb 2025 13:49:30 +0100
>> From:  Gregor Zattler via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>>
>> Dear Emacs developers, I don't know if
>> this failed assertion is due to using
>> MPS as GC.
>>
>> I played along with pdf-tools and
>> org-noter when it happened.
>>
>> This time I built with a current
>> checkout of feature/igc.
>>
>> GDB output even further below.
>>
>> The crashed session is still in GDB.
>> [...]
>> Breakpoint 1, terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_li=
mit=3Dbacktrace_limit@entry=3D2147483647) at ./src/emacs.c:425
>> 425=09{
>> +bt
>> #0  terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=3Dback=
trace_limit@entry=3D2147483647) at ./src/emacs.c:425
>> #1 0x00005555555b8f5b in die (msg=3Dmsg@entry=3D0x5555559b40d0 "BUFFERP
>> (a)", file=3Dfile@entry=3D0x5555559b40c7 "buffer.h",
>> line=3Dline@entry=3D829) at ./src/alloc.c:7683
>> #2  0x00005555555a0bda in XBUFFER (a=3DPython Exception <class 'gdb.erro=
r'>: value has been optimized out
>> ) at ./src/buffer.h:829
>> #3  0x00005555555a4370 in XBUFFER (a=3DPython Exception <class 'gdb.erro=
r'>: value has been optimized out
>> ) at ./src/xdisp.c:17024
>> #4  prepare_menu_bars () at ./src/xdisp.c:14041
>
> This is here:
>
>       FOR_EACH_FRAME (tail, frame)
> =09{
> =09  struct frame *f =3D XFRAME (frame);
> =09  struct window *w =3D XWINDOW (FRAME_SELECTED_WINDOW (f));
> =09  if (some_windows
> =09      && !f->redisplay
> =09      && !w->redisplay
> =09      && !XBUFFER (w->contents)->text->redisplay)
> =09    continue;
>
> And I don't understand how w->contents of a frame's selected window
> could fail the BUFFERP test.

Here's my current theory:

1. display_mode_lines calls

  record_unwind_protect
    (restore_frame_selected_window, XFRAME (new_frame)->selected_window);

2. that stores the selected window in the specpdl

3. the specpdl is then grown

4. we xpalloc the specpdl area, creating a copy of it and freeing the
old memory, which is still registered as a root.

5. igc_on_grow_specpdl calls mps_arena_park

6. the first thing mps_arena_park does is to complete the current GC
cycle.  This means that it will:

* look at the old specpdl area, which has been freed and may now contain
  invalid data
* *modify* the old specpdl area, which may have been reallocated so
  cause random memory corruption
* move objects by updating their pointers in the *old* specpdl area,
  leaving the pointers in the *new* specpdl area invalid

7. in our case, the selected window was supposed to have been moved but
the pointer in the *new* specpdl area continues to point to the old
memory, which is reused for something else which fails the BUFFERP test.

8. we unwind and restore the invalid selected window pointer.

I have a patch, but I'd like to discuss whether this is a plausible
theory first.  Gerd, if there's something that prevents this problem
from happening, and I missed it, could you briefly yell at me here?

Thanks!

Pip





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 09:57:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 04:57:30 2025
Received: from localhost ([127.0.0.1]:32893 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgL73-0001FB-NQ
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 04:57:30 -0500
Received: from mail-40133.protonmail.ch ([185.70.40.133]:39555)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <pipcet@HIDDEN>)
 id 1tgL71-0001Es-Cn
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 04:57:28 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
 s=protonmail3; t=1738922240; x=1739181440;
 bh=8HbXyHReIDLVW5W5FG6XGmvE5TF7dRPsLaovwTmAr08=;
 h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:
 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
 Message-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;
 b=c0zRoG8xQBZ06d0XZU/tgwG1G4L9nwETuNTyC40xRPDrI69tU4AQV/8FuXl2XXLMt
 aL7zqMWZQq6minK8+6LPllSGSoBpMNCobTMZ66YhWAEwFwqbKfosUmfgCKWEevBvGi
 8uFiTGYydgRO90qhmt+yVr8avUGn0IJdkuMtbCRxCT0Kr5KqURT0o+410PfXyWhego
 x7Ye7Qk1EWqMA0+xb9gAh7wcNd380SYr2z5ECiEdjK2ll/gOcIuGGk2XSR2qsI3jSk
 qsQuJ5WDpw8HC8QOML9jtpPCpNikF+wEOaC3QIkQOoVJMjhNBvoQGIVyl6wyMeMJVc
 6wG+pjT/t0YOg==
Date: Fri, 07 Feb 2025 09:57:15 +0000
To: Gregor Zattler <telegraph@HIDDEN>
From: Pip Cet <pipcet@HIDDEN>
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
Message-ID: <87r04af57l.fsf@HIDDEN>
In-Reply-To: <87y0yir7g2.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87h657dqfr.fsf@HIDDEN> <87y0yir7g2.fsf@HIDDEN>
Feedback-ID: 112775352:user:proton
X-Pm-Message-ID: 1ae12e14ab76e8ea07851c08d9b019e7f4cacabc
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 76091
Cc: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>,
 76091 <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

"Gregor Zattler" <telegraph@HIDDEN> writes:

> Hi Eli,
> * Gregor Zattler <telegraph@HIDDEN> [2025-02-06; 16:48 +01]:
>> I'll try to use an un-optimized build
>> but I'm afraid it's too slow for
>> everyday usage.
>
> So I did, it's really slow, but just
> usable, and I got a hit at the same
> breakpoint.  I again played around with
> org-noter.  When I finally hit C-x k (a
> convenience function which kills current
> buffer) the graphical frame vanished.
> It might even be that this is expected
> behaviour of org-noter but the daemon
> now hangs which it surely should not.

> #0  terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=3Dbackt=
race_limit@entry=3D2147483647) at ./src/emacs.c:425
> #1  0x00005555557d9a62 in set_state (state=3Dstate@entry=3DIGC_STATE_DEAD=
) at ./src/igc.c:1017
> #2  0x00005555557d9a96 in igc_assert_fail (file=3Dfile@entry=3D0x55555590=
3e97 "igc.c", line=3Dline@entry=3D3020, msg=3Dmsg@entry=3D0x5555558f2277 "r=
 =3D=3D NULL") at ./src/igc.c:306
> #3  0x00005555557da4e4 in igc_check_freeable (start=3Dstart@entry=3D0x555=
555b2b8f0) at ./src/igc.c:3020
> #4  0x0000555555736d12 in xfree (block=3Dblock@entry=3D0x555555b2b8f0) at=
 ./src/alloc.c:760
> #5  0x00005555556889f0 in x_delete_display (dpyinfo=3Ddpyinfo@entry=3D0x5=
55555b2b8f0) at ./src/xterm.c:31925

This is a different bug, which I've fixed.

Still looking for the original bug...

Pip





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 7 Feb 2025 07:53:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 07 02:53:10 2025
Received: from localhost ([127.0.0.1]:60772 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgJAj-0003TX-ES
	for submit <at> debbugs.gnu.org; Fri, 07 Feb 2025 02:53:10 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:47080)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tgJAg-0003Sz-N0
 for 76091 <at> debbugs.gnu.org; Fri, 07 Feb 2025 02:53:07 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tgJAb-0003Xu-0M; Fri, 07 Feb 2025 02:53:01 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=JRuNGydlJ3rmEaB+1JUzSnvZSw6C5HD6lEiLKhMg+Us=; b=JS3/7rt3qH50
 wT9PE6fknDmNyek65RBCaG9YbxKpsxGxmhDrWuYEDgky6HTpDfnsgwpxmC1Iq8fdoTbaIMjkFLsuo
 LNOoeXkEJOvdzN6JknijVyPEsdhVkIMoTlxF2IptTUeMyr6VLJ1sCNpyQ0TLHYCdF3B7oqJiSilxi
 llOlK2ZjLkHr4k8DRmFauumL2kztFTVLHVBNMfGS2Kn36L30qU3B8T9eC6/gIya8C4gGlFb9cAnS3
 prz9P3NeXOMmQadKv/csY7HHoLxK2EOyQAPJA64VW7XAfcbRm1a2PLIWMrw+N0xyP0u8TNkAEnwQg
 sNMAXzoyot6zz0XGn4sHSA==;
Date: Fri, 07 Feb 2025 09:52:58 +0200
Message-Id: <86jza25gyt.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Gregor Zattler <telegraph@HIDDEN>
In-Reply-To: <87y0yir7g2.fsf@HIDDEN> (message from Gregor Zattler on Fri, 07
 Feb 2025 00:15:25 +0100)
Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal
 error: assertion failed: BUFFERP (a)
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87h657dqfr.fsf@HIDDEN> <87y0yir7g2.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76091
Cc: gerd.moellmann@HIDDEN, 76091 <at> debbugs.gnu.org, pipcet@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> From: Gregor Zattler <telegraph@HIDDEN>
> Cc: 76091 <at> debbugs.gnu.org
> Date: Fri, 07 Feb 2025 00:15:25 +0100
> 
> Hi Eli,
> * Gregor Zattler <telegraph@HIDDEN> [2025-02-06; 16:48 +01]:
> > I'll try to use an un-optimized build
> > but I'm afraid it's too slow for
> > everyday usage.
> 
> So I did, it's really slow, but just
> usable, and I got a hit at the same
> breakpoint.  I again played around with
> org-noter.  When I finally hit C-x k (a
> convenience function which kills current
> buffer) the graphical frame vanished.
> It might even be that this is expected
> behaviour of org-noter but the daemon
> now hangs which it surely should not.

This is a different problem, see below.

> As always first infos for this
> build, then GDB output

Your GDB seems either misconfigured or buggy: it constantly complains
about exceptions in Python, like this:

  #12 0x000055555575ffef in eval_sub (form=Python Exception <class 'gdb.error'>: value has been optimized out
  , form@entry=XIL(0x7fffbb79996b)) at ./src/eval.c:2560

Please either upgrade or downgrade your GDB, or figure out what is the
problem in the configuration (incompatible Python version, perhaps?) and
fix it.  It gets in the way of reading the backtraces.

> +run --debug-init -xrm --init-directory="${USER_EMACS_DIRECTORY}" --fg-daemon="${EMACS_SERVER_NAME}"

These "+" signs are due to "set trace-command on" setting you use,
which is fine for commands you type, but it also expands all the
user-defined commands we have in src/.gdbinit, and that makes the
results very hard to read, because the results are buried in gobs of
unhelpful command lines.  Example:

> ++set $bt = backtrace_top ()
> ++if backtrace_p ($bt)
> +++echo \n
> 
> +++echo Lisp Backtrace:\n
> Lisp Backtrace:
> +++xbacktrace
> ++++set $bt = backtrace_top ()
> ++++while backtrace_p ($bt)
> +++++set $fun = backtrace_function ($bt)
> +++++xgettype $fun
> ++++++if (CHECK_LISP_OBJECT_TYPE)
> +++++++set $bugfix = $fun.i
> ++++++set $type = (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
> +++++if $type == Lisp_Symbol
> ++++++xprintsym $fun
> +++++++xsymname $fun
> ++++++++xgetsym $fun
> +++++++++xgetptr $fun
> ++++++++++if (CHECK_LISP_OBJECT_TYPE)
> +++++++++++set $bugfix = $fun.i
> ++++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
> +++++++++set $ptr = ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
> ++++++++set $symname = $ptr->u.s.name
> +++++++xgetptr $symname
> ++++++++if (CHECK_LISP_OBJECT_TYPE)
> +++++++++set $bugfix = $symname.i
> ++++++++set $ptr = (EMACS_INT) $bugfix & VALMASK
> +++++++if $ptr != 0
> ++++++++set $sym_name = (struct Lisp_String *) $ptr
> ++++++++xprintstr $sym_name
> +++++++++if (! $arg0)
> ++++++++++set $data = (char *) $sym_name->u.s.data
> ++++++++++set $strsize = ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
> ++++++++++if $strsize == 0
> +++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
> "delete-frame"++++++printf " (0x%x)\n", backtrace_args ($bt)
>  (0xffffaf10)

This should have been just the following 2 lines:

  Lisp backtrace:
  "delete-frame" (0xffffaf10)

So please don't use "set trace-command on" in the future, when
reporting results of GDB sessions here.

> Breakpoint 1, terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at ./src/emacs.c:425
> 425	{
> +t
> [Current thread is 1 (Thread 0x7ffff4f48000 (LWP 1750449))]
> +bt
> #0  terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at ./src/emacs.c:425
> #1  0x00005555557d9a62 in set_state (state=state@entry=IGC_STATE_DEAD) at ./src/igc.c:1017
> #2  0x00005555557d9a96 in igc_assert_fail (file=file@entry=0x555555903e97 "igc.c", line=line@entry=3020, msg=msg@entry=0x5555558f2277 "r == NULL") at ./src/igc.c:306
> #3  0x00005555557da4e4 in igc_check_freeable (start=start@entry=0x555555b2b8f0) at ./src/igc.c:3020
> #4  0x0000555555736d12 in xfree (block=block@entry=0x555555b2b8f0) at ./src/alloc.c:760
> #5  0x00005555556889f0 in x_delete_display (dpyinfo=dpyinfo@entry=0x555555b2b8f0) at ./src/xterm.c:31925
> #6  0x000055555569385e in x_delete_terminal (terminal=0x7fffd549a0c0) at ./src/xterm.c:32154
> #7  0x000055555567099a in Fdelete_terminal (terminal=terminal@entry=XIL(0x7fffd549a0c5), force=XIL(0x38)) at ./src/terminal.c:428

This seems to be a bug in x_delete_display: while dpyinfo is allocated
in x_term_init by igc_xzalloc, it is freed by xfree:

  struct x_display_info *
  x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
  {
    [...]
  #ifdef HAVE_MPS
    // FIXME/igc: use exact references
    dpyinfo = igc_xzalloc_ambig (sizeof *dpyinfo);
  #else
    dpyinfo = xzalloc (sizeof *dpyinfo);
  #endif

but

  static void
  x_delete_display (struct x_display_info *dpyinfo)
  {
    [...]
    xfree (dpyinfo);
  }




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 6 Feb 2025 23:16:26 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 06 18:16:26 2025
Received: from localhost ([127.0.0.1]:59821 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tgB6f-00041l-Sg
	for submit <at> debbugs.gnu.org; Thu, 06 Feb 2025 18:16:25 -0500
Received: from mout.gmx.net ([212.227.17.21]:52417)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <telegraph@HIDDEN>) id 1tgB6c-00041L-O2
 for 76091 <at> debbugs.gnu.org; Thu, 06 Feb 2025 18:16:23 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1738883776; x=1739488576; i=telegraph@HIDDEN;
 bh=2e7Hqh5imuHxJMW/fiTcaO2E6XphxgGFLTkyWaa46/U=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=UJ6c/R1mzGoNV9T2uXSmHTJJn/QhN2wT4Sp2vRs+Cs08KUBfvNoVb9LtJacUAGnF
 VIL71h3XZ6DsqOV5KbtcMeNZam1rBYkMc/0Q2Nlpy9iFrFot2SjIz3Xx2IoXOhcJM
 n/9n1dO89JuD/GZhjFMcdo4zDdwwI7Cox1/zWJ+ZGSSX4fv52FGaOfq5bGqM6SSyk
 ZU5NWQ/a6cq2nkj8GspA637z/3sjsISX3bIcwvQ0YEXw0xkSHWxgtLVuHEO9uRf1F
 yHhIgfgPICF6nWp6c1F0PXykBGJpDn9zNY96hLJ6N5ah4lucUzArpicyBspC9dog/
 JlQ+cmjbiDT8v1x3dQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from localhost ([95.90.236.208]) by mail.gmx.net (mrgmx105
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N1OXT-1tIMgG3HNj-00yK0m; Fri, 07
 Feb 2025 00:16:16 +0100
From: Gregor Zattler <telegraph@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>, Pip Cet <pipcet@HIDDEN>, Gerd
 =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal
 error: assertion failed: BUFFERP (a)
In-Reply-To: <87h657dqfr.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
 <87h657dqfr.fsf@HIDDEN>
Date: Fri, 07 Feb 2025 00:15:25 +0100
Message-ID: <87y0yir7g2.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:GCd8Bn1LImvZnhTWvGqdhZ3NcTyjfo7zqeDhxwbcMD7O3FVqxhP
 HTnJpgolLwumeynRwH3iOMq6xz2MdY958BGTvDvrysLwZgxajqrX3OJem1TUe5DGVHKFS3E
 Gg8HQVOQyw9iKtN/LyXJtMv1ZHvuymNLY0fZkhKf7L2uaYIQyJXcRhffbIg9HwBTu991B7Z
 EgCt1Ttxx6TnJeGPat28g==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:EDeD6YKEf4o=;Bc5rKaj8aBpMpnByBl31+M6+JbW
 UgO9RieICjdPga4DBaQ/YLo/7uM8LessO/gk9fFb0z9lSUcMqAgsx8Atwt3UOZH/6SYFJMfuz
 /x0pnE0q4UJgVtMTmgf3jOS45cx7h5FFl4K6xcYqIULuZs1eTklobsx6xCYd0kYwbT4TR5XDP
 H8UDaFm39zQYmPpxq1Qt8qofVl3pulXxDnjxcLPDD0lt9/OVPA76wu3ui4E3q16b6aXZjFKw+
 JiGf8dT9aKu0JWKoWS/9O8/x7yJh4bu/vfh80CR2FOn7yDunqqpZ1qnYufd+zPB94G2SPrXzi
 t2siy2MHX1cWPNoqZrThLysFKZ40zsyGbtW9JjG9BIkcR9vbvwUW/qbLUxbxJ0wWWGBlHPVTE
 gi3FCMYVBifC46+qCCLTXQMl5r2BgjyZqn3rQJL4Wer3IDij/Pgp9C2zOUdpNBvldnefytT7k
 WxD/iMpB99P1baF8rIwScwSEIlmwnkkShiyihBRGe6DZHPOz2GL457mm0gSLdyeHJG3/fv2vM
 5mH2C0+jKRmTH45cvluKFGwr3T9zsKUqkY3KMR1A71gYP5+EZk359upG1gTr1nMDFtGeshP1D
 tC9sOscINEY7WEPHiMgmwgtmTLFE5K2vNLvWES7qQhS7/BQi2+e39qD0Go+vCMkabMzb2dnPm
 NC2UCNLbzSs2cR+ETbeaGSm+PGzfibQ0Z6MbXQMuHzL5biPKXHv9mifsMTW4KxfOLhFclGHG9
 nJPnh9e3schgFS0yQjF0acIVJKFHw3u8vSFeBAq21xe5ILh1FopgtgLe3QhRn+unbLKAwrSxE
 EEG0V/0HBdUBbS/hRs5PZkZqv+2TaMHTrz1NnON3rRmLgEQhM8E0Lvjeyef+4YOXKzfDGnHcK
 lw12HW7sMWSKBlGobNiZNpcVplOpjobi1Vn0PrZzq+rRQUTp8DghQh6HAeE0WLXEIKemoJAVA
 U64ANuOP15LuPjNjb43sfKu77TqaAmIWBE/N6TA0He0PQinNbkPOM9grp/dgSC0ujJqifE1Jz
 dhVGpLBNaBHT67DyskDvhWdGxNv6WPHneYewOaUouPuUyTmlA0CNOt9ja80ORteQ2Ql6okSG5
 lS27OEpOIYV3mHZlqveryQeV2Y8MSfpJwFkOXK2OKzn3p/q6CApmX88Csp++BkE6TEd5PKyt9
 +w25w3KvYnvDCXcp28WXfS+vMPK3g6JpRfamyerRVMUDDGsodFkb1arQtXK9/iOm6eXAzF5Gu
 uGW1KQcld7vRx/r4kesLZwlX9ZjHNyDdaU2qxm4XUAST33V7gadSvPC9sWDC+TN9v8wwv7jNZ
 fYqWeowLpUvL1qvhb/MsWo/dQEOoaECZhmKLEUYM+XLt9dx5UY2gcX0/kCJA8+KvoeXxjiE6e
 ACy3QaUKJ/N7IlYDu7ktvSP2nm9hoSU8RKLUml2twCxSJgrzpgKQH58K7P
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

Hi Eli,
* Gregor Zattler <telegraph@HIDDEN> [2025-02-06; 16:48 +01]:
> I'll try to use an un-optimized build
> but I'm afraid it's too slow for
> everyday usage.

So I did, it's really slow, but just
usable, and I got a hit at the same
breakpoint.  I again played around with
org-noter.  When I finally hit C-x k (a
convenience function which kills current
buffer) the graphical frame vanished.
It might even be that this is expected
behaviour of org-noter but the daemon
now hangs which it surely should not.

As always first infos for this
build, then GDB output

In GNU Emacs 31.0.50 (build 1,
 x86_64-pc-linux-gnu, cairo version
 1.16.0) of 2025-02-06 built on no
Repository revision: aa915b0c87e42444ee5426744df18c3b15ac0cf5
Repository branch: HEAD
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure
 --infodir=3D/usr/share/info/emacs
 --with-json
 --with-file-notification=3Dyes
 --with-libsystemd --with-cairo
 --with-x=3Dyes --with-x-toolkit=3Dno
 --without-toolkit-scroll-bars
 --without-gsettings
 --enable-check-lisp-object-type
 --enable-checking=3Dyes,glyphs,igc_debug
 --with-native-compilation=3Dno
 --with-mps=3Ddebug 'CFLAGS=3D-ggdb3 -Og
 -ffile-prefix-map=3D/home/grfz/src/emacs-igc2=3D. -fstack-protector-strong
 -Wformat -Werror=3Dformat-security
 -fno-omit-frame-pointer'
 'CPPFLAGS=3D-I/home/grfz/mps-artifacts
 -Wdate-time -D_FORTIFY_SOURCE=3D2'
 'LDFLAGS=3D-L/home/grfz/mps-artifacts
 -Wl,-z,relro''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP
GNUTLS GPM HARFBUZZ JPEG LCMS2 LIBOTF
LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT
MODULES MPS NOTIFY INOTIFY OLDXMENU
PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF WEBP X11 XDBE XIM XINPUT2
XPM ZLIB

Important settings:
  value of $EMACSLOADPATH: :/usr/share/emacs/site-lisp:/usr/share/emacs/sit=
e-lisp/autoconf:/usr/share/emacs/site-lisp/dictionaries-common:/usr/share/e=
macs/site-lisp/elpa-src:/usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0=
:/usr/share/emacs/site-lisp/elpa-src/tablist-1.0:/usr/share/emacs/site-lisp=
/elpa-src/let-alist-1.0.6:/usr/share/emacs/site-lisp/llvm-14:/usr/share/ema=
cs/site-lisp/elpa:/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0:/usr/shar=
e/emacs/site-lisp/elpa/tablist-1.0:/usr/share/emacs/site-lisp/elpa/dh-elpa-=
2.0.16:/usr/share/emacs/site-lisp/elpa/let-alist-1.0.6:/usr/share/emacs/28.=
2/site-lisp
  value of $LC_ALL:=20
  value of $LC_COLLATE: de_DE.utf8
  value of $LC_CTYPE: de_DE.utf8
  value of $LC_MESSAGES: POSIX
  value of $LC_MONETARY: de_DE.utf8
  value of $LC_NUMERIC: de_DE.utf8
  value of $LC_TIME: de_DE.utf8
  value of $LANG: de_DE.utf8
  locale-coding-system: utf-8-unix

Major mode: Message[Notmuch]

Minor modes in effect:
  orgalist-mode: t
  wcheck-mode: t
  rainbow-delimiters-mode: t
  winner-mode: t
  which-key-mode: t
  savehist-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  delete-selection-mode: t
  minibuffer-depth-indicate-mode: t
  which-function-mode: t
  windmove-mode: t
  xterm-mouse-mode: t
  key-chord-mode: t
  find-function-mode: t
  mml-mode: t
  mail-abbrevs-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  auto-fill-function: #[128 \304\300\301#\207 [orgalist--auto-fill message-=
do-auto-fill :around nil apply] 5 advice]
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  abbrev-mode: t

Load-path shadows:
~/src/notmuch/emacs/notmuch-address hides /home/grfz/.config/emacs/elisp/no=
tmuch-address
/home/grfz/src/ol-notmuch/ol-notmuch hides /home/grfz/.config/emacs/elisp/o=
l-notmuch
/home/grfz/.config/emacs/elpa-31.0/magit-4.2.0/magit-autorevert hides /home=
/grfz/.config/emacs/elpa-31.0/magit-section-4.2.0/magit-autorevert
~/src/notmuch/emacs/notmuch-lib hides /usr/local/share/emacs/site-lisp/notm=
uch-lib
~/src/notmuch/emacs/coolj hides /usr/local/share/emacs/site-lisp/coolj
~/src/notmuch/emacs/notmuch-address hides /usr/local/share/emacs/site-lisp/=
notmuch-address
~/src/notmuch/emacs/notmuch-hello hides /usr/local/share/emacs/site-lisp/no=
tmuch-hello
~/src/notmuch/emacs/notmuch-parser hides /usr/local/share/emacs/site-lisp/n=
otmuch-parser
~/src/notmuch/emacs/notmuch-show hides /usr/local/share/emacs/site-lisp/not=
much-show
~/src/notmuch/emacs/notmuch-wash hides /usr/local/share/emacs/site-lisp/not=
much-wash
~/src/notmuch/emacs/notmuch-draft hides /usr/local/share/emacs/site-lisp/no=
tmuch-draft
~/src/notmuch/emacs/notmuch-tree hides /usr/local/share/emacs/site-lisp/not=
much-tree
~/src/notmuch/emacs/notmuch-version hides /usr/local/share/emacs/site-lisp/=
notmuch-version
~/src/notmuch/emacs/notmuch-jump hides /usr/local/share/emacs/site-lisp/not=
much-jump
~/src/notmuch/emacs/notmuch-company hides /usr/local/share/emacs/site-lisp/=
notmuch-company
~/src/notmuch/emacs/notmuch hides /usr/local/share/emacs/site-lisp/notmuch
~/src/notmuch/emacs/notmuch-crypto hides /usr/local/share/emacs/site-lisp/n=
otmuch-crypto
~/src/notmuch/emacs/notmuch-compat hides /usr/local/share/emacs/site-lisp/n=
otmuch-compat
~/src/notmuch/emacs/notmuch-maildir-fcc hides /usr/local/share/emacs/site-l=
isp/notmuch-maildir-fcc
~/src/notmuch/emacs/notmuch-tag hides /usr/local/share/emacs/site-lisp/notm=
uch-tag
~/src/notmuch/emacs/notmuch-message hides /usr/local/share/emacs/site-lisp/=
notmuch-message
~/src/notmuch/emacs/notmuch-print hides /usr/local/share/emacs/site-lisp/no=
tmuch-print
~/src/notmuch/emacs/notmuch-mua hides /usr/local/share/emacs/site-lisp/notm=
uch-mua
~/src/notmuch/emacs/notmuch-query hides /usr/local/share/emacs/site-lisp/no=
tmuch-query
/home/grfz/.config/emacs/elpa-31.0/transient-0.8.4/transient hides /home/gr=
fz/src/emacs-igc2/lisp/transient
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-shell hides /home/grf=
z/src/emacs-igc2/lisp/obsolete/idlw-shell
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlwave hides /home/grfz/s=
rc/emacs-igc2/lisp/obsolete/idlwave
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-toolbar hides /home/g=
rfz/src/emacs-igc2/lisp/obsolete/idlw-toolbar
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-help hides /home/grfz=
/src/emacs-igc2/lisp/obsolete/idlw-help
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-complete-structtag hi=
des /home/grfz/src/emacs-igc2/lisp/obsolete/idlw-complete-structtag
/home/grfz/src/emacs-igc2/lisp/emacs-lisp/let-alist hides /usr/share/emacs/=
site-lisp/elpa/let-alist-1.0.6/let-alist
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-autoloads hides /=
usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-autoloads
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-pkg hides /usr/sh=
are/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-pkg
/home/grfz/src/emacs-igc2/lisp/emacs-lisp/let-alist hides /usr/share/emacs/=
site-lisp/elpa-src/let-alist-1.0.6/let-alist
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-isearch hides /usr/shar=
e/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-isearch
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-util hides /usr/share/e=
macs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-util
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-sync hides /usr/share/e=
macs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-sync
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-links hides /usr/share/=
emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-links
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-dev hides /usr/share/em=
acs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-dev
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-cache hides /usr/share/=
emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-cache
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-loader hides /usr/share=
/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-loader
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-misc hides /usr/share/e=
macs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-misc
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-macs hides /usr/share/e=
macs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-macs
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-annot hides /usr/share/=
emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-annot
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-tools-autoloads hides /=
usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-tools-autoloads
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-tools-pkg hides /usr/sh=
are/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-tools-pkg
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-virtual hides /usr/shar=
e/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-virtual
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-tools hides /usr/share/=
emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-tools
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-outline hides /usr/shar=
e/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-outline
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-view hides /usr/share/e=
macs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-view
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-history hides /usr/shar=
e/emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-history
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-occur hides /usr/share/=
emacs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-occur
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0.0/pdf-info hides /usr/share/e=
macs/site-lisp/elpa-src/pdf-tools-1.0.0/pdf-info
/usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-pkg hides /usr/share/em=
acs/site-lisp/elpa-src/tablist-1.0/tablist-pkg
/usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist hides /usr/share/emacs/=
site-lisp/elpa-src/tablist-1.0/tablist
/usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-filter hides /usr/share=
/emacs/site-lisp/elpa-src/tablist-1.0/tablist-filter
/usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-autoloads hides /usr/sh=
are/emacs/site-lisp/elpa-src/tablist-1.0/tablist-autoloads

Features:
(shadow emacsbug sort orgalist
wcheck-mode ecomplete mail-extr vc-hg
vc-bzr vc-dir ewoc vc-src vc-sccs vc-svn
vc-cvs vc-rcs log-view log-edit
pcvs-util vc vc-dispatcher bug-reference
mule-util tramp tramp-cache time-stamp
trampver tramp-integration tramp-message
tramp-compat shell tramp-loaddefs
add-log rainbow-delimiters winner
which-key ol-notmuch notmuch
notmuch-tree notmuch-jump notmuch-hello
notmuch-show notmuch-print
notmuch-crypto notmuch-mua
notmuch-message notmuch-draft
notmuch-maildir-fcc notmuch-address
notmuch-company notmuch-parser
notmuch-wash diff-mode track-changes
coolj goto-addr icalendar diary-lib
diary-loaddefs notmuch-tag crm
notmuch-lib notmuch-version
notmuch-compat hl-line compat
org-contrib org-crypt org-protocol
org-clock ob-plantuml gnus-alias advice
finder-inf savehist auth-source-pass
holidays holiday-loaddefs ws-butler
delsel modus-operandi-theme modus-themes
mb-depth which-func windmove xt-mouse
edmacro kmacro key-chord org ob ob-ref
ob-lob ob-table ob-exp org-macro
org-pcomplete pcomplete org-list
org-footnote org-faces org-entities
noutline outline so-long ob-emacs-lisp
org-table org-loaddefs find-func
cal-menu calendar cal-loaddefs gnus-sum
shr pixel-fill kinsoku url-file svg dom
gnus-group mm-url gnus-undo gnus-start
gnus-dbus dbus xml gnus-cloud nnimap
nnmail mail-source imap rfc2104 utf7
nnoo parse-time iso8601 gnus-spec
gnus-int gnus-range gnus-win gnus
message yank-media dired desktop
frameset dired-loaddefs autorevert
filenotify rfc822 mml mailabbrev
sendmail gmm-utils mailheader nnheader
mail-utils range ob-tangle ol org-src
sh-script flymake project warnings
thingatpt smie treesit shortdoc
executable skeleton org-keys oc
ob-comint ob-core org-cycle org-fold
org-fold-core org-compat org-element-ast
ob-eval org-version org-macs format-spec
use-package use-package-ensure
use-package-delight use-package-diminish
use-package-bind-key bind-key
use-package-core async-autoloads
csv-mode-autoloads debbugs-autoloads
dired-git-info-autoloads
git-timemachine-autoloads
hyperbole-autoloads kotl-autoloads hact
set hhist idlwave-autoloads
key-chord-autoloads magit-autoloads
magit-section-autoloads dash-autoloads
minibuffer-line-autoloads
org-contrib-autoloads
org-noter-autoloads org-autoloads
orgalist-autoloads paredit-autoloads
rainbow-delimiters-autoloads
transient-autoloads
wcheck-mode-autoloads info speedbar
imenu ezimage dframe
with-editor-autoloads
ws-butler-autoloads package let-alist
browse-url xdg url url-proxy url-privacy
url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf
url-util mm-view mml-smime mml-sec epa
gnus-util time-date smime gnutls puny
dig mailcap url-handlers mm-decode
mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr url-parse auth-source eieio
eieio-core password-cache json map
byte-opt bytecomp byte-compile compile
rx text-property-search comint
easy-mmode files-x ansi-osc ansi-color
ring url-vars epg cl-extra help-mode
derived cl-seq rfc6068 epg-config subr-x
cl-macs inline gv pcase cus-edit pp
cus-load icons wid-edit cl-loaddefs
cl-lib rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode
mwheel term/x-win x-win term/common-win
x-dnd touch-screen tool-bar dnd fontset
image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer
select scroll-bar mouse jit-lock
font-lock syntax font-core
term/tty-colors frame minibuffer nadvice
seq simple cl-generic indonesian
philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai
tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak
czech european ethiopic indian cyrillic
chinese composite emoji-zwj charscript
charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray
oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp
files window text-properties overlay
sha1 md5 base64 format env code-pages
mule custom widget keymap
hashtable-print-readable backquote
threads dbusbind inotify lcms2
dynamic-setting font-render-setting
cairo xinput2 x multi-tty move-toolbar
make-network-process tty-child-frames
mps emacs)

Memory information:
((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0)
 (vectors 24 0) (vector-slots 8 0 0) (floats 24 0 0) (intervals 64 0 0)
 (buffers 992 0))


+run --debug-init -xrm --init-directory=3D"${USER_EMACS_DIRECTORY}" --fg-da=
emon=3D"${EMACS_SERVER_NAME}"
Starting program: /home/grfz/src/emacs-igc2/src/emacs --debug-init -xrm --i=
nit-directory=3D"${USER_EMACS_DIRECTORY}" --fg-daemon=3D"${EMACS_SERVER_NAM=
E}"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Detaching after vfork from child process 1750477]
Program received signal SIGSEGV, Segmentation fault.

[... 8528 lines ...]

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1751646]
[Detaching after vfork from child process 1751647]

Program received signal SIGSEGV, Segmentation fault.

[... 1082 Zeilen gel=C3=B6scht ...]

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1751723]
[Detaching after vfork from child process 1751724]

Program received signal SIGSEGV, Segmentation fault.

[... 1426 Zeilen gel=C3=B6scht ...]

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1752941]
[Detaching after vfork from child process 1752942]
[Detaching after vfork from child process 1752950]
[Detaching after vfork from child process 1752951]

Program received signal SIGSEGV, Segmentation fault.

[... 894 Zeilen gel=C3=B6scht ...]

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1752985]

Program received signal SIGSEGV, Segmentation fault.

[... 2926 Zeilen gel=C3=B6scht ...]

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1755223]
[Detaching after vfork from child process 1755224]
[Detaching after vfork from child process 1755985]
[Detaching after vfork from child process 1755986]

Program received signal SIGSEGV, Segmentation fault.

[... 9262 Zeilen gel=C3=B6scht ...]

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1771940]
[Detaching after vfork from child process 1771944]

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1772038]
[Detaching after vfork from child process 1772101]

Program received signal SIGSEGV, Segmentation fault.

[... 10770 Zeilen gel=C3=B6scht ...]

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1772677]

Program received signal SIGSEGV, Segmentation fault.

[... 2962 Zeilen gel=C3=B6scht ...]

Program received signal SIGSEGV, Segmentation fault.

Breakpoint 1, terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=
=3Dbacktrace_limit@entry=3D2147483647) at ./src/emacs.c:425
425	{
+t
[Current thread is 1 (Thread 0x7ffff4f48000 (LWP 1750449))]
+bt
#0  terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=3Dbacktra=
ce_limit@entry=3D2147483647) at ./src/emacs.c:425
#1  0x00005555557d9a62 in set_state (state=3Dstate@entry=3DIGC_STATE_DEAD) =
at ./src/igc.c:1017
#2  0x00005555557d9a96 in igc_assert_fail (file=3Dfile@entry=3D0x555555903e=
97 "igc.c", line=3Dline@entry=3D3020, msg=3Dmsg@entry=3D0x5555558f2277 "r =
=3D=3D NULL") at ./src/igc.c:306
#3  0x00005555557da4e4 in igc_check_freeable (start=3Dstart@entry=3D0x55555=
5b2b8f0) at ./src/igc.c:3020
#4  0x0000555555736d12 in xfree (block=3Dblock@entry=3D0x555555b2b8f0) at .=
/src/alloc.c:760
#5  0x00005555556889f0 in x_delete_display (dpyinfo=3Ddpyinfo@entry=3D0x555=
555b2b8f0) at ./src/xterm.c:31925
#6  0x000055555569385e in x_delete_terminal (terminal=3D0x7fffd549a0c0) at =
./src/xterm.c:32154
#7  0x000055555567099a in Fdelete_terminal (terminal=3Dterminal@entry=3DXIL=
(0x7fffd549a0c5), force=3DXIL(0x38)) at ./src/terminal.c:428
#8  0x00005555555b492a in delete_frame (frame=3Dframe@entry=3DXIL(0x7fffd57=
71d1d), force=3DXIL(0)) at ./src/frame.c:2670
#9  0x00005555555b4e00 in Fdelete_frame (frame=3DXIL(0x7fffd5771d1d), force=
=3DPython Exception <class 'gdb.error'>: value has been optimized out
) at ./src/frame.c:2839
#10 0x000055555576022a in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2612
#11 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb79b6ab)) at ./src/eval.c:=
407
#12 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb79996b)) at ./src/eval.c:2560
#13 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#14 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2560
#15 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb7901f3)) at ./src/eval.c:=
407
#16 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb77c5bb)) at ./src/eval.c:2560
#17 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#18 0x00005555557617f5 in FletX (args=3DXIL(0x7fffbb767a1b)) at ./src/eval.=
c:1051
#19 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb7662fb)) at ./src/eval.c:2560
#20 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#21 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2560
#22 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb75e76b)) at ./src/eval.c:=
407
#23 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb75d12b)) at ./src/eval.c:2560
#24 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#25 0x0000555555760914 in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffbb756=
a7d), nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0x7fffffffb5=
e0) at ./src/eval.c:3361
#26 0x0000555555761136 in apply_lambda (fun=3DPython Exception <class 'gdb.=
error'>: value has been optimized out
, fun@entry=3DXIL(0x7fffbb756a7d), args=3DPython Exception <class 'gdb.erro=
r'>: value has been optimized out
, count=3Dcount@entry=3D...) at ./src/eval.c:3226
#27 0x000055555576034e in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb781583)) at ./src/eval.c:2656
#28 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#29 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2560
#30 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb77fe6b)) at ./src/eval.c:=
407
#31 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb77f943)) at ./src/eval.c:2560
#32 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#33 0x0000555555761542 in Flet (args=3DPython Exception <class 'gdb.error'>=
: value has been optimized out
) at ./src/eval.c:1118
#34 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb77e803)) at ./src/eval.c:2560
#35 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#36 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb77bf2b)) at ./src/eval.c:2560
#37 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#38 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2560
#39 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb771c4b)) at ./src/eval.c:=
407
#40 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb76ff53)) at ./src/eval.c:2560
#41 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#42 0x0000555555761542 in Flet (args=3DPython Exception <class 'gdb.error'>=
: value has been optimized out
) at ./src/eval.c:1118
#43 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb76aea3)) at ./src/eval.c:2560
#44 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#45 0x0000555555760914 in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffbb765=
de5), nargs=3Dnargs@entry=3D0, arg_vector=3Darg_vector@entry=3D0x7fffffffbf=
d0) at ./src/eval.c:3361
#46 0x0000555555760b07 in funcall_general (fun=3DXIL(0x7fffbb765de5), numar=
gs=3Dnumargs@entry=3D0, args=3Dargs@entry=3D0x7fffffffbfd0) at ./src/eval.c=
:3055
#47 0x000055555575db3b in Ffuncall (nargs=3D1, args=3D0x7fffffffbfc8) at ./=
src/eval.c:3104
#48 0x000055555575df87 in funcall_nil (nargs=3D<optimized out>, args=3D<opt=
imized out>) at ./src/eval.c:2787
#49 0x000055555575cffc in run_hook_with_args (nargs=3Dnargs@entry=3D1, args=
=3Dargs@entry=3D0x7fffffffbfc8, funcall=3Dfuncall@entry=3D0x55555575df7e <f=
uncall_nil>) at ./src/eval.c:2964
#50 0x000055555575d08a in Frun_hook_with_args (nargs=3Dnargs@entry=3D1, arg=
s=3Dargs@entry=3D0x7fffffffbfc8) at ./src/eval.c:2829
#51 0x000055555575d0a6 in run_hook (hook=3DXIL(0x2aaa65d2ec98)) at ./src/ev=
al.c:2977
#52 0x00005555556fb765 in Fkill_buffer (buffer_or_name=3DPython Exception <=
class 'gdb.error'>: value has been optimized out
) at ./src/lisp.h:1184
#53 0x000055555575ef53 in funcall_subr (subr=3D0x5555559b0320 <Skill_buffer=
>, numargs=3Dnumargs@entry=3D1, args=3Dargs@entry=3D0x7fffe2200100) at ./sr=
c/eval.c:3172
#54 0x00005555557a0de0 in exec_byte_code (fun=3DPython Exception <class 'gd=
b.error'>: value has been optimized out
, fun@entry=3DXIL(0x7fffedb24d1d), args_template=3D<optimized out>, nargs=
=3D<optimized out>, nargs@entry=3D0, args=3D<optimized out>, args@entry=3D0=
x7fffffffc2e0) at ./src/bytecode.c:827
#55 0x000055555576070e in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffedb24=
d1d), nargs=3Dnargs@entry=3D0, arg_vector=3Darg_vector@entry=3D0x7fffffffc2=
e0) at ./src/eval.c:3263
#56 0x0000555555761136 in apply_lambda (fun=3DPython Exception <class 'gdb.=
error'>: value has been optimized out
, fun@entry=3DXIL(0x7fffedb24d1d), args=3DPython Exception <class 'gdb.erro=
r'>: value has been optimized out
, count=3Dcount@entry=3D...) at ./src/eval.c:3226
#57 0x000055555576034e in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffdca6007b)) at ./src/eval.c:2656
#58 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#59 0x0000555555760ba4 in Fif (args=3DXIL(0x7fffdca5ca03)) at ./src/eval.c:=
408
#60 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffdca5c303)) at ./src/eval.c:2560
#61 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#62 0x0000555555760914 in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffdc9de=
3f5), nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0x7fffffffc7=
70) at ./src/eval.c:3361
#63 0x0000555555760b07 in funcall_general (fun=3DXIL(0x7fffdc9de3f5), numar=
gs=3Dnumargs@entry=3D1, args=3Dargs@entry=3D0x7fffffffc770) at ./src/eval.c=
:3055
#64 0x000055555575db3b in Ffuncall (nargs=3Dnargs@entry=3D2, args=3Dargs@en=
try=3D0x7fffffffc768) at ./src/eval.c:3104
#65 0x000055555575850c in Ffuncall_interactively (nargs=3D2, args=3D0x7ffff=
fffc768) at ./src/callint.c:250
#66 0x000055555575f0c6 in funcall_subr (subr=3D0x5555559b67e0 <Sfuncall_int=
eractively>, numargs=3Dnumargs@entry=3D2, args=3Dargs@entry=3D0x7fffffffc76=
8) at ./src/eval.c:3195
#67 0x0000555555760af7 in funcall_general (fun=3DXIL(0x5555559b67e5), numar=
gs=3Dnumargs@entry=3D2, args=3Dargs@entry=3D0x7fffffffc768) at ./src/eval.c=
:3051
#68 0x000055555575db3b in Ffuncall (nargs=3Dnargs@entry=3D3, args=3Dargs@en=
try=3D0x7fffffffc760) at ./src/eval.c:3104
#69 0x000055555575a466 in Fcall_interactively (function=3DPython Exception =
<class 'gdb.error'>: value has been optimized out
, record_flag=3DPython Exception <class 'gdb.error'>: value has been optimi=
zed out
, keys=3DPython Exception <class 'gdb.error'>: value has been optimized out
) at ./src/callint.c:789
#70 0x000055555575ef7f in funcall_subr (subr=3D0x5555559b67a0 <Scall_intera=
ctively>, numargs=3Dnumargs@entry=3D3, args=3Dargs@entry=3D0x7fffe2200070) =
at ./src/eval.c:3176
#71 0x00005555557a0de0 in exec_byte_code (fun=3DPython Exception <class 'gd=
b.error'>: value has been optimized out
, fun@entry=3DXIL(0x7fffed66283d), args_template=3D<optimized out>, nargs=
=3D<optimized out>, nargs@entry=3D1, args=3D<optimized out>, args@entry=3D0=
x7fffffffcc08) at ./src/bytecode.c:827
#72 0x000055555576070e in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffed662=
83d), nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0x7fffffffcc=
08) at ./src/eval.c:3263
#73 0x0000555555760b07 in funcall_general (fun=3DXIL(0x7fffed66283d), numar=
gs=3Dnumargs@entry=3D1, args=3Dargs@entry=3D0x7fffffffcc08) at ./src/eval.c=
:3055
#74 0x000055555575db3b in Ffuncall (nargs=3Dnargs@entry=3D2, args=3Dargs@en=
try=3D0x7fffffffcc00) at ./src/eval.c:3104
#75 0x00005555556e3cac in command_loop_1 () at ./src/lisp.h:1184
#76 0x000055555575c6d8 in internal_condition_case (bfun=3Dbfun@entry=3D0x55=
55556e382c <command_loop_1>, handlers=3DPython Exception <class 'gdb.error'=
>: value has been optimized out
, handlers@entry=3DXIL(0xa8), hfun=3Dhfun@entry=3D0x5555556d6847 <cmd_error=
>) at ./src/eval.c:1623
#77 0x00005555556cdb82 in command_loop_2 (handlers=3Dhandlers@entry=3DXIL(0=
xa8)) at ./src/keyboard.c:1174
#78 0x000055555575c5ed in internal_catch (tag=3DPython Exception <class 'gd=
b.error'>: value has been optimized out
, tag@entry=3DXIL(0x15498), func=3Dfunc@entry=3D0x5555556cdb60 <command_loo=
p_2>, arg=3DPython Exception <class 'gdb.error'>: value has been optimized =
out
, arg@entry=3DXIL(0xa8)) at ./src/eval.c:1302
#79 0x00005555556cdb3d in command_loop () at ./src/lisp.h:1184
#80 0x00005555556d635e in recursive_edit_1 () at ./src/keyboard.c:760
#81 0x00005555556d66ff in Frecursive_edit () at ./src/keyboard.c:843
#82 0x00005555556cd517 in main (argc=3D5, argv=3D0x7fffffffcff8) at ./src/e=
macs.c:2580
++set $bt =3D backtrace_top ()
++if backtrace_p ($bt)
+++echo \n

+++echo Lisp Backtrace:\n
Lisp Backtrace:
+++xbacktrace
++++set $bt =3D backtrace_top ()
++++while backtrace_p ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"delete-frame"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffaf10)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffafe8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb0c8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb1a8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let*"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb2f8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb3d8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb4b8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"org-noter-kill-session"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb5e0)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb768)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb848)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb9b8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffba98)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbb78)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbc58)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbdb8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"org-noter--handle-kill-buffer"++++++printf " (0x%x)\n", backtrace_args ($b=
t)
 (0xffffbfd0)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"kill-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xe2200100)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"kill-this-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc2e0)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc488)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"grfz-kill-a-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc770)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"funcall-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc768)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"call-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xe2200070)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"command-execute"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffcc08)
+++++set $bt =3D backtrace_next ($bt)
+xbacktrace=20
++set $bt =3D backtrace_top ()
++while backtrace_p ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"delete-frame"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffaf10)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffafe8)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb0c8)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb1a8)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let*"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb2f8)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb3d8)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb4b8)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"org-noter-kill-session"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb5e0)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb768)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb848)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb9b8)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffba98)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbb78)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbc58)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbdb8)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"org-noter--handle-kill-buffer"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbfd0)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"kill-buffer"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xe2200100)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"kill-this-buffer"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc2e0)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc488)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"grfz-kill-a-buffer"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc770)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"funcall-interactively"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc768)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"call-interactively"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xe2200070)
+++set $bt =3D backtrace_next ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.s=
ize & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"command-execute"++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffcc08)
+++set $bt =3D backtrace_next ($bt)
+bt full
#0  terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=3Dbacktra=
ce_limit@entry=3D2147483647) at ./src/emacs.c:425
#1  0x00005555557d9a62 in set_state (state=3Dstate@entry=3DIGC_STATE_DEAD) =
at ./src/igc.c:1017
        old_state =3D <optimized out>
#2  0x00005555557d9a96 in igc_assert_fail (file=3Dfile@entry=3D0x555555903e=
97 "igc.c", line=3Dline@entry=3D3020, msg=3Dmsg@entry=3D0x5555558f2277 "r =
=3D=3D NULL") at ./src/igc.c:306
#3  0x00005555557da4e4 in igc_check_freeable (start=3Dstart@entry=3D0x55555=
5b2b8f0) at ./src/igc.c:3020
        r =3D <optimized out>
#4  0x0000555555736d12 in xfree (block=3Dblock@entry=3D0x555555b2b8f0) at .=
/src/alloc.c:760
#5  0x00005555556889f0 in x_delete_display (dpyinfo=3Ddpyinfo@entry=3D0x555=
555b2b8f0) at ./src/xterm.c:31925
        t =3D <optimized out>
        color_entry =3D <optimized out>
        next_color_entry =3D <optimized out>
        i =3D 256
        ie =3D <optimized out>
        last =3D <optimized out>
        temp =3D <optimized out>
#6  0x000055555569385e in x_delete_terminal (terminal=3D0x7fffd549a0c0) at =
./src/xterm.c:32154
        dpyinfo =3D 0x555555b2b8f0
        f =3D <optimized out>
        frame =3D XIL(0x7fffed64d525)
#7  0x000055555567099a in Fdelete_terminal (terminal=3Dterminal@entry=3DXIL=
(0x7fffd549a0c5), force=3DXIL(0x38)) at ./src/terminal.c:428
        t =3D 0x7fffd549a0c0
#8  0x00005555555b492a in delete_frame (frame=3Dframe@entry=3DXIL(0x7fffd57=
71d1d), force=3DXIL(0)) at ./src/frame.c:2670
        tmp =3D XIL(0x7fffd549a0c5)
        terminal =3D <optimized out>
        f =3D 0x7fffd5771d18
        sf =3D <optimized out>
        kb =3D 0x0
        frame1 =3D XIL(0x7fffed64d525)
        is_tooltip_frame =3D 0
        nochild =3D true
        minibuffer_child_frame =3D Python Exception <class 'gdb.error'>: va=
lue has been optimized out

#9  0x00005555555b4e00 in Fdelete_frame (frame=3DXIL(0x7fffd5771d1d), force=
=3DPython Exception <class 'gdb.error'>: value has been optimized out
) at ./src/frame.c:2839
#10 0x000055555576022a in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2612
        i =3D 2
        maxargs =3D 2
        args_left =3D XIL(0)
        numargs =3D 1
        original_fun =3D Python Exception <class 'gdb.error'>: value has be=
en optimized out

        original_args =3D XIL(0x7fffbb7a3463)
        count =3D {
          bytes =3D 1120
        }
        fun =3D XIL(0x5555559a8b65)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x7fffd5771d1d), XIL(0), XIL(0x1), XIL(0x7fffffffb=
0c8), make_fixnum(16383), XIL(0), XIL(0x7fffffffaf50), make_fixnum(23456248=
591394)}
#11 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb79b6ab)) at ./src/eval.c:=
407
#12 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb79996b)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb79b6ab)
        numargs =3D 3
        original_fun =3D XIL(0xc7f0)
        original_args =3D XIL(0x7fffbb79b6ab)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b7425)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x7fffffffb070), XIL(0x5555557e2a19), XIL(0), XIL(=
0x369475a905028a00), XIL(0x7fffffffb000), XIL(0x5555559b6be5), XIL(0x420), =
XIL(0x2aaa97c1cb30)}
#13 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#14 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb795beb)
        numargs =3D 1
        original_fun =3D XIL(0x12018)
        original_args =3D XIL(0x7fffbb795beb)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b73a5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x7fffd5771d1d), XIL(0x369475a905028a00), XIL(0x7f=
ffffffb0f0), XIL(0x7fffbba862d8), XIL(0x7fffffffb170), XIL(0x5555556fbba8),=
 XIL(0x1), XIL(0x5555556fbc68)}
#15 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb7901f3)) at ./src/eval.c:=
407
#16 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb77c5bb)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb7901f3)
        numargs =3D 2
        original_fun =3D XIL(0xc7f0)
        original_args =3D XIL(0x7fffbb7901f3)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b7425)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x7fffbba862dd), XIL(0x7fffabd4c8a3), XIL(0x7fffff=
ffb200), XIL(0x5555557d9e08), XIL(0x7fffabe9ec60), XIL(0x369475a905028a00),=
 XIL(0x555555e075f0), XIL(0x3)}
#17 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#18 0x00005555557617f5 in FletX (args=3DXIL(0x7fffbb767a1b)) at ./src/eval.=
c:1051
        var =3D XIL(0x2aaa65d088e8)
        val =3D XIL(0x7fffbba862dd)
        elt =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        lexenv =3D XIL(0x7fffabd4c8a3)
        varlist =3D XIL(0)
#19 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb7662fb)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb767a1b)
        numargs =3D 9
        original_fun =3D XIL(0xe2a0)
        original_args =3D XIL(0x7fffbb767a1b)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b6fe5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x7fffbbbf624d), XIL(0x7fffbb7589cb), XIL(0x1), ma=
ke_fixnum(23456248566315), make_fixnum(0), XIL(0x5555559a1f60), XIL(0x7ffff=
fffb380), XIL(0x55555574a0d0)}
#20 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#21 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb76232b)
        numargs =3D 3
        original_fun =3D XIL(0x12018)
        original_args =3D XIL(0x7fffbb76232b)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b73a5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0xd2a8), XIL(0x7fffffffb460), make_fixnum(0), XIL(=
0x7fffabd4c7b3), XIL(0x7fffbba855a5), XIL(0x7fffbb783dc3), XIL(0x7fffffffb4=
50), XIL(0x55555575befd)}
#22 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb75e76b)) at ./src/eval.c:=
407
#23 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb75d12b)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb75e76b)
        numargs =3D 2
        original_fun =3D XIL(0xc7f0)
        original_args =3D XIL(0x7fffbb75e76b)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b7425)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x3), XIL(0x100000001), XIL(0x7fffffffb510), XIL(0=
x7fffabd4c8a3), XIL(0x555555e07570), XIL(0x1), XIL(0x555555e07570), XIL(0x1=
)}
#24 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#25 0x0000555555760914 in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffbb756=
a7d), nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0x7fffffffb5=
e0) at ./src/eval.c:3361
        syms_left =3D Python Exception <class 'gdb.error'>: value has been =
optimized out

        lexenv =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        i =3D 1
        optional =3D true
        rest =3D false
        previous_rest =3D false
#26 0x0000555555761136 in apply_lambda (fun=3DPython Exception <class 'gdb.=
error'>: value has been optimized out
, fun@entry=3DXIL(0x7fffbb756a7d), args=3DPython Exception <class 'gdb.erro=
r'>: value has been optimized out
, count=3Dcount@entry=3D...) at ./src/eval.c:3226
        arg_vector =3D 0x7fffffffb5e0
        tem =3D XIL(0x2aaa97fcc5e8)
        sa_avail =3D <optimized out>
        numargs =3D 1
        args_left =3D Python Exception <class 'gdb.error'>: value has been =
optimized out

#27 0x000055555576034e in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb781583)) at ./src/eval.c:2656
        original_fun =3D XIL(0x2aaa65d1f748)
        original_args =3D XIL(0x7fffbb781b5b)
        count =3D {
          bytes =3D 832
        }
        fun =3D XIL(0x7fffbb756a7d)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D XIL(0x7fffbb780ef3)
        argvals =3D {XIL(0x7fffbba855a5), XIL(0x7fffbba855a5), XIL(0x7fffbb=
78321b), XIL(0x2bb78270b), make_fixnum(0), XIL(0x5555559a1f60), XIL(0xd2a8)=
, XIL(0x7fffabd4c5d3)}
#28 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#29 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb780ef3)
        numargs =3D 1
        original_fun =3D XIL(0x12018)
        original_args =3D XIL(0x7fffbb780ef3)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b73a5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0xc), XIL(0xd2a8), XIL(0x7fffabd4c5d3), XIL(0x7fff=
bba855a5), XIL(0x7fffabd4c5d3), XIL(0x369475a905028a00), XIL(0x7fffffffb7c0=
), XIL(0x2aaa97c585c8)}
#30 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb77fe6b)) at ./src/eval.c:=
407
#31 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb77f943)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb77fe6b)
        numargs =3D 2
        original_fun =3D XIL(0xc7f0)
        original_args =3D XIL(0x7fffbb77fe6b)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b7425)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x3), make_fixnum(1073741824), XIL(0x7fffffffb8a0)=
, XIL(0x7fffabd4c873), XIL(0x555555e074f0), XIL(0x1), XIL(0x555555e074f0), =
XIL(0x7fffffffb900)}
#32 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#33 0x0000555555761542 in Flet (args=3DPython Exception <class 'gdb.error'>=
: value has been optimized out
) at ./src/eval.c:1118
        temps =3D 0x7fffffffb900
        tem =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        lexenv =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        elt =3D XIL(0x2aaa65d088e8)
        argnum =3D 3
        sa_avail =3D <optimized out>
        varlist =3D Python Exception <class 'gdb.error'>: value has been op=
timized out

        varlist_len =3D <optimized out>
        nvars =3D 3
#34 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb77e803)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb77ed3b)
        numargs =3D 2
        original_fun =3D XIL(0xe268)
        original_args =3D XIL(0x7fffbb77ed3b)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b6fa5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x7fffffffba00), XIL(0x2a0), XIL(0x38), XIL(0), XI=
L(0x1), XIL(0x1), XIL(0x7fffffffba50), XIL(0x55555575d835)}
#35 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#36 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb77bf2b)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb77e353)
        numargs =3D 1
        original_fun =3D XIL(0x12018)
        original_args =3D XIL(0x7fffbb77e353)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b73a5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x2aaa97fcc5e8), XIL(0x1), XIL(0x1), XIL(0x555555e=
07490), XIL(0x7fffffffbb40), XIL(0x55555576116b), XIL(0x7fffbbbf624d), XIL(=
0x55555576107d)}
#37 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#38 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb777bbb)
        numargs =3D 1
        original_fun =3D XIL(0x12018)
        original_args =3D XIL(0x7fffbb777bbb)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b73a5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0), XIL(0), XIL(0), XIL(0x7fffbb721963), XIL(0x2aa=
a6607ddc8), XIL(0x7fffbbab36e8), XIL(0x7fffffffbbd0), XIL(0x55555576d6ff)}
#39 0x0000555555760bc3 in Fif (args=3DXIL(0x7fffbb771c4b)) at ./src/eval.c:=
407
#40 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb76ff53)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb771c4b)
        numargs =3D 2
        original_fun =3D XIL(0xc7f0)
        original_args =3D XIL(0x7fffbb771c4b)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b7425)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x3), XIL(0x100000000), XIL(0x7fffffffbcb0), XIL(0=
x7fffabd4c5d3), XIL(0x555555e07450), XIL(0x1), XIL(0x555555e07450), XIL(0x7=
fffffffbd10)}
#41 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#42 0x0000555555761542 in Flet (args=3DPython Exception <class 'gdb.error'>=
: value has been optimized out
) at ./src/eval.c:1118
        temps =3D 0x7fffffffbd10
        tem =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        lexenv =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        elt =3D XIL(0x2aaa97fcc5e8)
        argnum =3D 1
        sa_avail =3D <optimized out>
        varlist =3D Python Exception <class 'gdb.error'>: value has been op=
timized out

        varlist_len =3D <optimized out>
        nvars =3D 1
#43 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffbb76aea3)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffbb76c8f3)
        numargs =3D 2
        original_fun =3D XIL(0xe268)
        original_args =3D XIL(0x7fffbb76c8f3)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b6fa5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x7fffffffbe00), XIL(0x1556f5ad8), XIL(0x2aaa97c1c=
b30), XIL(0x7fffdf5af95b), XIL(0x555555e07410), XIL(0x1), XIL(0x555555e0741=
0), XIL(0)}
#44 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#45 0x0000555555760914 in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffbb765=
de5), nargs=3Dnargs@entry=3D0, arg_vector=3Darg_vector@entry=3D0x7fffffffbf=
d0) at ./src/eval.c:3361
        syms_left =3D Python Exception <class 'gdb.error'>: value has been =
optimized out

        lexenv =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        i =3D 0
        optional =3D false
        rest =3D false
        previous_rest =3D false
#46 0x0000555555760b07 in funcall_general (fun=3DXIL(0x7fffbb765de5), numar=
gs=3Dnumargs@entry=3D0, args=3Dargs@entry=3D0x7fffffffbfd0) at ./src/eval.c=
:3055
        original_fun =3D XIL(0x2aaa65d2ec98)
#47 0x000055555575db3b in Ffuncall (nargs=3D1, args=3D0x7fffffffbfc8) at ./=
src/eval.c:3104
        count =3D {
          bytes =3D 480
        }
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#48 0x000055555575df87 in funcall_nil (nargs=3D<optimized out>, args=3D<opt=
imized out>) at ./src/eval.c:2787
#49 0x000055555575cffc in run_hook_with_args (nargs=3Dnargs@entry=3D1, args=
=3Dargs@entry=3D0x7fffffffbfc8, funcall=3Dfuncall@entry=3D0x55555575df7e <f=
uncall_nil>) at ./src/eval.c:2964
        global_vals =3D Python Exception <class 'gdb.error'>: value has bee=
n optimized out

        sym =3D XIL(0xdd60)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#50 0x000055555575d08a in Frun_hook_with_args (nargs=3Dnargs@entry=3D1, arg=
s=3Dargs@entry=3D0x7fffffffbfc8) at ./src/eval.c:2829
#51 0x000055555575d0a6 in run_hook (hook=3DXIL(0x2aaa65d2ec98)) at ./src/ev=
al.c:2977
#52 0x00005555556fb765 in Fkill_buffer (buffer_or_name=3DPython Exception <=
class 'gdb.error'>: value has been optimized out
) at ./src/lisp.h:1184
        modified =3D <optimized out>
        buffer =3D XIL(0x7fffbba855a5)
        b =3D 0x7fffbba855a0
        tem =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#53 0x000055555575ef53 in funcall_subr (subr=3D0x5555559b0320 <Skill_buffer=
>, numargs=3Dnumargs@entry=3D1, args=3Dargs@entry=3D0x7fffe2200100) at ./sr=
c/eval.c:3172
        argbuf =3D {XIL(0x7fffffffc0d0), make_fixnum(23456248566315), XIL(0=
), XIL(0x5555559a1710), XIL(0x7fffffffc0b0), XIL(0x55555574846d), XIL(0x7ff=
feda8fe78), XIL(0x5555559a6718)}
        a =3D <optimized out>
        maxargs =3D 1
        fun =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#54 0x00005555557a0de0 in exec_byte_code (fun=3DPython Exception <class 'gd=
b.error'>: value has been optimized out
, fun@entry=3DXIL(0x7fffedb24d1d), args_template=3D<optimized out>, nargs=
=3D<optimized out>, nargs@entry=3D0, args=3D<optimized out>, args@entry=3D0=
x7fffffffc2e0) at ./src/bytecode.c:827
        call_nargs =3D 1
        call_fun =3D XIL(0x5555559b0325)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        call_args =3D 0x7fffe2200100
        op =3D 1
        type =3D <optimized out>
        targets =3D {0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31c4 =
<exec_byte_code+11028>, 0x5555557a31f9 <exec_byte_code+11081>, 0x5555557a31=
fb <exec_byte_code+11083>, 0x5555557a31fd <exec_byte_code+11085>, 0x5555557=
a31c4 <exec_byte_code+11028>, 0x5555557a31ff <exec_byte_code+11087>, 0x5555=
557a3237 <exec_byte_code+11143>, 0x5555557a0943 <exec_byte_code+659>, 0x555=
5557a099a <exec_byte_code+746>, 0x5555557a099c <exec_byte_code+748>, 0x5555=
557a099e <exec_byte_code+750>, 0x5555557a09a0 <exec_byte_code+752>, 0x55555=
57a0943 <exec_byte_code+659>, 0x5555557a09a2 <exec_byte_code+754>, 0x555555=
7a0931 <exec_byte_code+641>, 0x5555557a0b91 <exec_byte_code+1249>, 0x555555=
7a0c00 <exec_byte_code+1360>, 0x5555557a0c02 <exec_byte_code+1362>, 0x55555=
57a0c04 <exec_byte_code+1364>, 0x5555557a0c06 <exec_byte_code+1366>, 0x5555=
557a0b91 <exec_byte_code+1249>, 0x5555557a0c1d <exec_byte_code+1389>, 0x555=
5557a0c08 <exec_byte_code+1368>, 0x5555557a0c7a <exec_byte_code+1482>, 0x55=
55557a0cc4 <exec_byte_code+1556>, 0x5555557a0cc6 <exec_byte_code+1558>, 0x5=
555557a0cc8 <exec_byte_code+1560>, 0x5555557a0cca <exec_byte_code+1562>, 0x=
5555557a0c7a <exec_byte_code+1482>, 0x5555557a0c5f <exec_byte_code+1455>, 0=
x5555557a0c68 <exec_byte_code+1464>, 0x5555557a0ceb <exec_byte_code+1595>, =
0x5555557a0e56 <exec_byte_code+1958>, 0x5555557a0e5b <exec_byte_code+1963>,=
 0x5555557a0e60 <exec_byte_code+1968>, 0x5555557a0e65 <exec_byte_code+1973>=
, 0x5555557a0ceb <exec_byte_code+1595>, 0x5555557a0ccc <exec_byte_code+1564=
>, 0x5555557a0cd6 <exec_byte_code+1574>, 0x5555557a0f48 <exec_byte_code+220=
0>, 0x5555557a0f8f <exec_byte_code+2271>, 0x5555557a0f91 <exec_byte_code+22=
73>, 0x5555557a0f93 <exec_byte_code+2275>, 0x5555557a0f95 <exec_byte_code+2=
277>, 0x5555557a0f48 <exec_byte_code+2200>, 0x5555557a0f2d <exec_byte_code+=
2173>, 0x5555557a0f36 <exec_byte_code+2182>, 0x5555557a14ee <exec_byte_code=
+3646>, 0x5555557a144a <exec_byte_code+3482>, 0x5555557a13ba <exec_byte_cod=
e+3338>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_c=
ode+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byt=
e_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a1650 <exec_=
byte_code+4000>, 0x5555557a172a <exec_byte_code+4218>, 0x5555557a176b <exec=
_byte_code+4283>, 0x5555557a17b7 <exec_byte_code+4359>, 0x5555557a1803 <exe=
c_byte_code+4435>, 0x5555557a0a88 <exec_byte_code+984>, 0x5555557a0ad7 <exe=
c_byte_code+1063>, 0x5555557a185f <exec_byte_code+4527>, 0x5555557a0a08 <ex=
ec_byte_code+856>, 0x5555557a0b11 <exec_byte_code+1121>, 0x5555557a18a0 <ex=
ec_byte_code+4592>, 0x5555557a18da <exec_byte_code+4650>, 0x5555557a1906 <e=
xec_byte_code+4694>, 0x5555557a1940 <exec_byte_code+4752>, 0x5555557a1979 <=
exec_byte_code+4809>, 0x5555557a19f7 <exec_byte_code+4935>, 0x5555557a1a23 =
<exec_byte_code+4979>, 0x5555557a1b2b <exec_byte_code+5243>, 0x5555557a1c61=
 <exec_byte_code+5553>, 0x5555557a1c8d <exec_byte_code+5597>, 0x5555557a1cb=
9 <exec_byte_code+5641>, 0x5555557a1cf3 <exec_byte_code+5699>, 0x5555557a1d=
2d <exec_byte_code+5757>, 0x5555557a1d67 <exec_byte_code+5815>, 0x5555557a1=
da5 <exec_byte_code+5877>, 0x5555557a1ddb <exec_byte_code+5931>, 0x5555557a=
1e11 <exec_byte_code+5985>, 0x5555557a1e88 <exec_byte_code+6104>, 0x5555557=
a1ef4 <exec_byte_code+6212>, 0x5555557a1f60 <exec_byte_code+6320>, 0x555555=
7a1fdc <exec_byte_code+6444>, 0x5555557a2070 <exec_byte_code+6592>, 0x55555=
57a2104 <exec_byte_code+6740>, 0x5555557a2198 <exec_byte_code+6888>, 0x5555=
557a222c <exec_byte_code+7036>, 0x5555557a22c1 <exec_byte_code+7185>, 0x555=
5557a2334 <exec_byte_code+7300>, 0x5555557a23c7 <exec_byte_code+7447>, 0x55=
55557a2446 <exec_byte_code+7574>, 0x5555557a24c5 <exec_byte_code+7701>, 0x5=
555557a2694 <exec_byte_code+8164>, 0x5555557a12c4 <exec_byte_code+3092>, 0x=
5555557a26d7 <exec_byte_code+8231>, 0x5555557a2703 <exec_byte_code+8275>, 0=
x5555557a2775 <exec_byte_code+8389>, 0x5555557a27b8 <exec_byte_code+8456>, =
0x5555557a27fb <exec_byte_code+8523>, 0x5555557a2827 <exec_byte_code+8567>,=
 0x5555557a2855 <exec_byte_code+8613>, 0x5555557a2883 <exec_byte_code+8659>=
, 0x5555557a28b9 <exec_byte_code+8713>, 0x5555557a31a5 <exec_byte_code+1099=
7>, 0x5555557a28ea <exec_byte_code+8762>, 0x5555557a2918 <exec_byte_code+88=
08>, 0x5555557a2946 <exec_byte_code+8854>, 0x5555557a2974 <exec_byte_code+8=
900>, 0x5555557a29a2 <exec_byte_code+8946>, 0x5555557a29d0 <exec_byte_code+=
8992>, 0x5555557a12c4 <exec_byte_code+3092>, 0x5555557a31a5 <exec_byte_code=
+10997>, 0x5555557a29fc <exec_byte_code+9036>, 0x5555557a2a3b <exec_byte_co=
de+9099>, 0x5555557a2a67 <exec_byte_code+9143>, 0x5555557a2a93 <exec_byte_c=
ode+9187>, 0x5555557a2acd <exec_byte_code+9245>, 0x5555557a2b07 <exec_byte_=
code+9303>, 0x5555557a2b33 <exec_byte_code+9347>, 0x5555557a2b5f <exec_byte=
_code+9391>, 0x5555557a2b99 <exec_byte_code+9449>, 0x5555557a2bd3 <exec_byt=
e_code+9507>, 0x5555557a2c0d <exec_byte_code+9565>, 0x5555557a2c3b <exec_by=
te_code+9611>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a1262 <exec_=
byte_code+2994>, 0x5555557a0f97 <exec_byte_code+2279>, 0x5555557a09ab <exec=
_byte_code+763>, 0x5555557a1020 <exec_byte_code+2416>, 0x5555557a106d <exec=
_byte_code+2493>, 0x5555557a10b4 <exec_byte_code+2564>, 0x5555557a10fb <exe=
c_byte_code+2635>, 0x5555557a1240 <exec_byte_code+2960>, 0x5555557a0c33 <ex=
ec_byte_code+1411>, 0x5555557a12a2 <exec_byte_code+3058>, 0x5555557a12e6 <e=
xec_byte_code+3126>, 0x5555557a1348 <exec_byte_code+3224>, 0x5555557a1379 <=
exec_byte_code+3273>, 0x5555557a151e <exec_byte_code+3694>, 0x5555557a1571 =
<exec_byte_code+3777>, 0x5555557a15af <exec_byte_code+3839>, 0x5555557a15f6=
 <exec_byte_code+3910>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a2c=
67 <exec_byte_code+9655>, 0x5555557a2ca5 <exec_byte_code+9717>, 0x5555557a2=
cd1 <exec_byte_code+9761>, 0x5555557a2cfd <exec_byte_code+9805>, 0x5555557a=
2d29 <exec_byte_code+9849>, 0x5555557a2d55 <exec_byte_code+9893>, 0x5555557=
a2d8f <exec_byte_code+9951>, 0x5555557a2dc9 <exec_byte_code+10009>, 0x55555=
57a2e03 <exec_byte_code+10067>, 0x5555557a2e3d <exec_byte_code+10125>, 0x55=
55557a2f1f <exec_byte_code+10351>, 0x5555557a2f59 <exec_byte_code+10409>, 0=
x5555557a2f93 <exec_byte_code+10467>, 0x5555557a2fbf <exec_byte_code+10511>=
, 0x5555557a302a <exec_byte_code+10618>, 0x5555557a3095 <exec_byte_code+107=
25>, 0x5555557a30c1 <exec_byte_code+10769>, 0x5555557a30ed <exec_byte_code+=
10813>, 0x5555557a256e <exec_byte_code+7870>, 0x5555557a260a <exec_byte_cod=
e+8026>, 0x5555557a3123 <exec_byte_code+10867>, 0x5555557a3164 <exec_byte_c=
ode+10932>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byt=
e_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_=
byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <ex=
ec_byte_code+10997>, 0x5555557a19b6 <exec_byte_code+4870>, 0x5555557a1e47 <=
exec_byte_code+6039>, 0x5555557a2734 <exec_byte_code+8324>, 0x5555557a3278 =
<exec_byte_code+11208>, 0x5555557a32b8 <exec_byte_code+11272>, 0x5555557a31=
a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557=
a3303 <exec_byte_code+11347>, 0x5555557a334e <exec_byte_code+11422>, 0x5555=
557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5=
555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, =
0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997=
>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10=
997>, 0x5555557a3445 <exec_byte_code+11669> <repeats 64 times>}
        quitcounter =3D 1 '\001'
        bc =3D 0x5555559a6718 <main_thread+504>
        top =3D 0x7fffe22000f8
        pc =3D 0x7fffedb25b59 "\210\t\205B"
        bytestr =3D Python Exception <class 'gdb.error'>: value has been op=
timized out

        vectorp =3D 0x7fffedb25398
        max_stack =3D <optimized out>
        frame_base =3D <optimized out>
        fp =3D <optimized out>
        bytestr_data =3D 0x7fffedb25b28 "\211\203\021"
        rest =3D <optimized out>
        mandatory =3D <optimized out>
        nonrest =3D <optimized out>
        pushedargs =3D <optimized out>
        saved_quitcounter =3D 0 '\000'
        saved_vectorp =3D 0x5555559b73a5 <Sprogn+5>
        saved_bytestr_data =3D 0x160 <error: Cannot access memory at addres=
s 0x160>
#55 0x000055555576070e in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffedb24=
d1d), nargs=3Dnargs@entry=3D0, arg_vector=3Darg_vector@entry=3D0x7fffffffc2=
e0) at ./src/eval.c:3263
        syms_left =3D make_fixnum(256)
        lexenv =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        i =3D <optimized out>
        optional =3D <optimized out>
        rest =3D <optimized out>
        previous_rest =3D <optimized out>
#56 0x0000555555761136 in apply_lambda (fun=3DPython Exception <class 'gdb.=
error'>: value has been optimized out
, fun@entry=3DXIL(0x7fffedb24d1d), args=3DPython Exception <class 'gdb.erro=
r'>: value has been optimized out
, count=3Dcount@entry=3D...) at ./src/eval.c:3226
        arg_vector =3D 0x7fffffffc2e0
        tem =3D XIL(0x180)
        sa_avail =3D <optimized out>
        numargs =3D 0
        args_left =3D Python Exception <class 'gdb.error'>: value has been =
optimized out

#57 0x000055555576034e in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffdca6007b)) at ./src/eval.c:2656
        original_fun =3D XIL(0x2aaa980eef48)
        original_args =3D XIL(0)
        count =3D {
          bytes =3D 384
        }
        fun =3D XIL(0x7fffedb24d1d)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D XIL(0x7fffdca5ca03)
        argvals =3D {XIL(0), XIL(0), XIL(0x7fffddcd320b), XIL(0), XIL(0), X=
IL(0x369475a905028a00), XIL(0x7fffffffc3e0), XIL(0x7fffddccef2d)}
#58 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#59 0x0000555555760ba4 in Fif (args=3DXIL(0x7fffdca5ca03)) at ./src/eval.c:=
408
#60 0x000055555575ffef in eval_sub (form=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
, form@entry=3DXIL(0x7fffdca5c303)) at ./src/eval.c:2560
        args_left =3D XIL(0x7fffdca5ca03)
        numargs =3D 3
        original_fun =3D XIL(0xc7f0)
        original_args =3D XIL(0x7fffdca5ca03)
        count =3D {
          bytes =3D <optimized out>
        }
        fun =3D XIL(0x5555559b7425)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        funcar =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        argvals =3D {XIL(0x3), XIL(0x100000001), XIL(0x7fffffffc4e0), XIL(0=
x7fffabd4c56b), XIL(0x555555e07350), XIL(0x1), XIL(0x555555e07350), XIL(0x1=
)}
#61 0x00005555557605e2 in Fprogn (body=3DPython Exception <class 'gdb.error=
'>: value has been optimized out
) at ./src/eval.c:452
#62 0x0000555555760914 in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffdc9de=
3f5), nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0x7fffffffc7=
70) at ./src/eval.c:3361
        syms_left =3D Python Exception <class 'gdb.error'>: value has been =
optimized out

        lexenv =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        i =3D 1
        optional =3D false
        rest =3D false
        previous_rest =3D false
#63 0x0000555555760b07 in funcall_general (fun=3DXIL(0x7fffdc9de3f5), numar=
gs=3Dnumargs@entry=3D1, args=3Dargs@entry=3D0x7fffffffc770) at ./src/eval.c=
:3055
        original_fun =3D XIL(0x2aaa86c6f3f8)
#64 0x000055555575db3b in Ffuncall (nargs=3Dnargs@entry=3D2, args=3Dargs@en=
try=3D0x7fffffffc768) at ./src/eval.c:3104
        count =3D {
          bytes =3D 288
        }
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#65 0x000055555575850c in Ffuncall_interactively (nargs=3D2, args=3D0x7ffff=
fffc768) at ./src/callint.c:250
#66 0x000055555575f0c6 in funcall_subr (subr=3D0x5555559b67e0 <Sfuncall_int=
eractively>, numargs=3Dnumargs@entry=3D2, args=3Dargs@entry=3D0x7fffffffc76=
8) at ./src/eval.c:3195
        maxargs =3D -2
        fun =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#67 0x0000555555760af7 in funcall_general (fun=3DXIL(0x5555559b67e5), numar=
gs=3Dnumargs@entry=3D2, args=3Dargs@entry=3D0x7fffffffc768) at ./src/eval.c=
:3051
        original_fun =3D XIL(0xaf38)
#68 0x000055555575db3b in Ffuncall (nargs=3Dnargs@entry=3D3, args=3Dargs@en=
try=3D0x7fffffffc760) at ./src/eval.c:3104
        count =3D {
          bytes =3D 224
        }
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#69 0x000055555575a466 in Fcall_interactively (function=3DPython Exception =
<class 'gdb.error'>: value has been optimized out
, record_flag=3DPython Exception <class 'gdb.error'>: value has been optimi=
zed out
, keys=3DPython Exception <class 'gdb.error'>: value has been optimized out
) at ./src/callint.c:789
        arg_from_tty =3D false
        key_count =3D <optimized out>
        record_then_fail =3D <optimized out>
        save_this_command =3D Python Exception <class 'gdb.error'>: value h=
as been optimized out

        save_this_original_command =3D Python Exception <class 'gdb.error'>=
: value has been optimized out

        save_real_this_command =3D Python Exception <class 'gdb.error'>: va=
lue has been optimized out

        save_last_command =3D Python Exception <class 'gdb.error'>: value h=
as been optimized out

        prefix_arg =3D Python Exception <class 'gdb.error'>: value has been=
 optimized out

        specs =3D Python Exception <class 'gdb.error'>: value has been opti=
mized out

        sa_avail =3D <optimized out>
        string_len =3D <optimized out>
        string =3D <optimized out>
        string_end =3D <optimized out>
        next_event =3D 2
        nargs =3D <optimized out>
        args =3D <optimized out>
        visargs =3D <optimized out>
        varies =3D <optimized out>
        tem =3D <optimized out>
#70 0x000055555575ef7f in funcall_subr (subr=3D0x5555559b67a0 <Scall_intera=
ctively>, numargs=3Dnumargs@entry=3D3, args=3Dargs@entry=3D0x7fffe2200070) =
at ./src/eval.c:3176
        argbuf =3D {XIL(0x2aaa86c6f3f8), XIL(0), XIL(0x7fffffffc960), XIL(0=
x55555576dac0), XIL(0x7fffbc312bc3), XIL(0x4), XIL(0), XIL(0x555555760003)}
        a =3D <optimized out>
        maxargs =3D 3
        fun =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#71 0x00005555557a0de0 in exec_byte_code (fun=3DPython Exception <class 'gd=
b.error'>: value has been optimized out
, fun@entry=3DXIL(0x7fffed66283d), args_template=3D<optimized out>, nargs=
=3D<optimized out>, nargs@entry=3D1, args=3D<optimized out>, args@entry=3D0=
x7fffffffcc08) at ./src/bytecode.c:827
        call_nargs =3D 3
        call_fun =3D XIL(0x5555559b67a5)
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        call_args =3D 0x7fffe2200070
        op =3D 3
        type =3D <optimized out>
        targets =3D {0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31c4 =
<exec_byte_code+11028>, 0x5555557a31f9 <exec_byte_code+11081>, 0x5555557a31=
fb <exec_byte_code+11083>, 0x5555557a31fd <exec_byte_code+11085>, 0x5555557=
a31c4 <exec_byte_code+11028>, 0x5555557a31ff <exec_byte_code+11087>, 0x5555=
557a3237 <exec_byte_code+11143>, 0x5555557a0943 <exec_byte_code+659>, 0x555=
5557a099a <exec_byte_code+746>, 0x5555557a099c <exec_byte_code+748>, 0x5555=
557a099e <exec_byte_code+750>, 0x5555557a09a0 <exec_byte_code+752>, 0x55555=
57a0943 <exec_byte_code+659>, 0x5555557a09a2 <exec_byte_code+754>, 0x555555=
7a0931 <exec_byte_code+641>, 0x5555557a0b91 <exec_byte_code+1249>, 0x555555=
7a0c00 <exec_byte_code+1360>, 0x5555557a0c02 <exec_byte_code+1362>, 0x55555=
57a0c04 <exec_byte_code+1364>, 0x5555557a0c06 <exec_byte_code+1366>, 0x5555=
557a0b91 <exec_byte_code+1249>, 0x5555557a0c1d <exec_byte_code+1389>, 0x555=
5557a0c08 <exec_byte_code+1368>, 0x5555557a0c7a <exec_byte_code+1482>, 0x55=
55557a0cc4 <exec_byte_code+1556>, 0x5555557a0cc6 <exec_byte_code+1558>, 0x5=
555557a0cc8 <exec_byte_code+1560>, 0x5555557a0cca <exec_byte_code+1562>, 0x=
5555557a0c7a <exec_byte_code+1482>, 0x5555557a0c5f <exec_byte_code+1455>, 0=
x5555557a0c68 <exec_byte_code+1464>, 0x5555557a0ceb <exec_byte_code+1595>, =
0x5555557a0e56 <exec_byte_code+1958>, 0x5555557a0e5b <exec_byte_code+1963>,=
 0x5555557a0e60 <exec_byte_code+1968>, 0x5555557a0e65 <exec_byte_code+1973>=
, 0x5555557a0ceb <exec_byte_code+1595>, 0x5555557a0ccc <exec_byte_code+1564=
>, 0x5555557a0cd6 <exec_byte_code+1574>, 0x5555557a0f48 <exec_byte_code+220=
0>, 0x5555557a0f8f <exec_byte_code+2271>, 0x5555557a0f91 <exec_byte_code+22=
73>, 0x5555557a0f93 <exec_byte_code+2275>, 0x5555557a0f95 <exec_byte_code+2=
277>, 0x5555557a0f48 <exec_byte_code+2200>, 0x5555557a0f2d <exec_byte_code+=
2173>, 0x5555557a0f36 <exec_byte_code+2182>, 0x5555557a14ee <exec_byte_code=
+3646>, 0x5555557a144a <exec_byte_code+3482>, 0x5555557a13ba <exec_byte_cod=
e+3338>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_c=
ode+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byt=
e_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a1650 <exec_=
byte_code+4000>, 0x5555557a172a <exec_byte_code+4218>, 0x5555557a176b <exec=
_byte_code+4283>, 0x5555557a17b7 <exec_byte_code+4359>, 0x5555557a1803 <exe=
c_byte_code+4435>, 0x5555557a0a88 <exec_byte_code+984>, 0x5555557a0ad7 <exe=
c_byte_code+1063>, 0x5555557a185f <exec_byte_code+4527>, 0x5555557a0a08 <ex=
ec_byte_code+856>, 0x5555557a0b11 <exec_byte_code+1121>, 0x5555557a18a0 <ex=
ec_byte_code+4592>, 0x5555557a18da <exec_byte_code+4650>, 0x5555557a1906 <e=
xec_byte_code+4694>, 0x5555557a1940 <exec_byte_code+4752>, 0x5555557a1979 <=
exec_byte_code+4809>, 0x5555557a19f7 <exec_byte_code+4935>, 0x5555557a1a23 =
<exec_byte_code+4979>, 0x5555557a1b2b <exec_byte_code+5243>, 0x5555557a1c61=
 <exec_byte_code+5553>, 0x5555557a1c8d <exec_byte_code+5597>, 0x5555557a1cb=
9 <exec_byte_code+5641>, 0x5555557a1cf3 <exec_byte_code+5699>, 0x5555557a1d=
2d <exec_byte_code+5757>, 0x5555557a1d67 <exec_byte_code+5815>, 0x5555557a1=
da5 <exec_byte_code+5877>, 0x5555557a1ddb <exec_byte_code+5931>, 0x5555557a=
1e11 <exec_byte_code+5985>, 0x5555557a1e88 <exec_byte_code+6104>, 0x5555557=
a1ef4 <exec_byte_code+6212>, 0x5555557a1f60 <exec_byte_code+6320>, 0x555555=
7a1fdc <exec_byte_code+6444>, 0x5555557a2070 <exec_byte_code+6592>, 0x55555=
57a2104 <exec_byte_code+6740>, 0x5555557a2198 <exec_byte_code+6888>, 0x5555=
557a222c <exec_byte_code+7036>, 0x5555557a22c1 <exec_byte_code+7185>, 0x555=
5557a2334 <exec_byte_code+7300>, 0x5555557a23c7 <exec_byte_code+7447>, 0x55=
55557a2446 <exec_byte_code+7574>, 0x5555557a24c5 <exec_byte_code+7701>, 0x5=
555557a2694 <exec_byte_code+8164>, 0x5555557a12c4 <exec_byte_code+3092>, 0x=
5555557a26d7 <exec_byte_code+8231>, 0x5555557a2703 <exec_byte_code+8275>, 0=
x5555557a2775 <exec_byte_code+8389>, 0x5555557a27b8 <exec_byte_code+8456>, =
0x5555557a27fb <exec_byte_code+8523>, 0x5555557a2827 <exec_byte_code+8567>,=
 0x5555557a2855 <exec_byte_code+8613>, 0x5555557a2883 <exec_byte_code+8659>=
, 0x5555557a28b9 <exec_byte_code+8713>, 0x5555557a31a5 <exec_byte_code+1099=
7>, 0x5555557a28ea <exec_byte_code+8762>, 0x5555557a2918 <exec_byte_code+88=
08>, 0x5555557a2946 <exec_byte_code+8854>, 0x5555557a2974 <exec_byte_code+8=
900>, 0x5555557a29a2 <exec_byte_code+8946>, 0x5555557a29d0 <exec_byte_code+=
8992>, 0x5555557a12c4 <exec_byte_code+3092>, 0x5555557a31a5 <exec_byte_code=
+10997>, 0x5555557a29fc <exec_byte_code+9036>, 0x5555557a2a3b <exec_byte_co=
de+9099>, 0x5555557a2a67 <exec_byte_code+9143>, 0x5555557a2a93 <exec_byte_c=
ode+9187>, 0x5555557a2acd <exec_byte_code+9245>, 0x5555557a2b07 <exec_byte_=
code+9303>, 0x5555557a2b33 <exec_byte_code+9347>, 0x5555557a2b5f <exec_byte=
_code+9391>, 0x5555557a2b99 <exec_byte_code+9449>, 0x5555557a2bd3 <exec_byt=
e_code+9507>, 0x5555557a2c0d <exec_byte_code+9565>, 0x5555557a2c3b <exec_by=
te_code+9611>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a1262 <exec_=
byte_code+2994>, 0x5555557a0f97 <exec_byte_code+2279>, 0x5555557a09ab <exec=
_byte_code+763>, 0x5555557a1020 <exec_byte_code+2416>, 0x5555557a106d <exec=
_byte_code+2493>, 0x5555557a10b4 <exec_byte_code+2564>, 0x5555557a10fb <exe=
c_byte_code+2635>, 0x5555557a1240 <exec_byte_code+2960>, 0x5555557a0c33 <ex=
ec_byte_code+1411>, 0x5555557a12a2 <exec_byte_code+3058>, 0x5555557a12e6 <e=
xec_byte_code+3126>, 0x5555557a1348 <exec_byte_code+3224>, 0x5555557a1379 <=
exec_byte_code+3273>, 0x5555557a151e <exec_byte_code+3694>, 0x5555557a1571 =
<exec_byte_code+3777>, 0x5555557a15af <exec_byte_code+3839>, 0x5555557a15f6=
 <exec_byte_code+3910>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a2c=
67 <exec_byte_code+9655>, 0x5555557a2ca5 <exec_byte_code+9717>, 0x5555557a2=
cd1 <exec_byte_code+9761>, 0x5555557a2cfd <exec_byte_code+9805>, 0x5555557a=
2d29 <exec_byte_code+9849>, 0x5555557a2d55 <exec_byte_code+9893>, 0x5555557=
a2d8f <exec_byte_code+9951>, 0x5555557a2dc9 <exec_byte_code+10009>, 0x55555=
57a2e03 <exec_byte_code+10067>, 0x5555557a2e3d <exec_byte_code+10125>, 0x55=
55557a2f1f <exec_byte_code+10351>, 0x5555557a2f59 <exec_byte_code+10409>, 0=
x5555557a2f93 <exec_byte_code+10467>, 0x5555557a2fbf <exec_byte_code+10511>=
, 0x5555557a302a <exec_byte_code+10618>, 0x5555557a3095 <exec_byte_code+107=
25>, 0x5555557a30c1 <exec_byte_code+10769>, 0x5555557a30ed <exec_byte_code+=
10813>, 0x5555557a256e <exec_byte_code+7870>, 0x5555557a260a <exec_byte_cod=
e+8026>, 0x5555557a3123 <exec_byte_code+10867>, 0x5555557a3164 <exec_byte_c=
ode+10932>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byt=
e_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_=
byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <ex=
ec_byte_code+10997>, 0x5555557a19b6 <exec_byte_code+4870>, 0x5555557a1e47 <=
exec_byte_code+6039>, 0x5555557a2734 <exec_byte_code+8324>, 0x5555557a3278 =
<exec_byte_code+11208>, 0x5555557a32b8 <exec_byte_code+11272>, 0x5555557a31=
a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557=
a3303 <exec_byte_code+11347>, 0x5555557a334e <exec_byte_code+11422>, 0x5555=
557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5=
555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997>, =
0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10997=
>, 0x5555557a31a5 <exec_byte_code+10997>, 0x5555557a31a5 <exec_byte_code+10=
997>, 0x5555557a3445 <exec_byte_code+11669> <repeats 64 times>}
        quitcounter =3D 1 '\001'
        bc =3D 0x5555559a6718 <main_thread+504>
        top =3D 0x7fffe2200068
        pc =3D 0x7fffed7554af "\006\a9\205\231"
        bytestr =3D Python Exception <class 'gdb.error'>: value has been op=
timized out

        vectorp =3D 0x7fffed735fd8
        max_stack =3D <optimized out>
        frame_base =3D <optimized out>
        fp =3D <optimized out>
        bytestr_data =3D 0x7fffed755428 "\304\020\211?\205\023"
        rest =3D <optimized out>
        mandatory =3D <optimized out>
        nonrest =3D <optimized out>
        pushedargs =3D <optimized out>
        saved_quitcounter =3D 54 '6'
        saved_vectorp =3D 0x0
        saved_bytestr_data =3D 0x7fffed68016d ""
#72 0x000055555576070e in funcall_lambda (fun=3Dfun@entry=3DXIL(0x7fffed662=
83d), nargs=3Dnargs@entry=3D1, arg_vector=3Darg_vector@entry=3D0x7fffffffcc=
08) at ./src/eval.c:3263
        syms_left =3D make_fixnum(1025)
        lexenv =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        i =3D <optimized out>
        optional =3D <optimized out>
        rest =3D <optimized out>
        previous_rest =3D <optimized out>
#73 0x0000555555760b07 in funcall_general (fun=3DXIL(0x7fffed66283d), numar=
gs=3Dnumargs@entry=3D1, args=3Dargs@entry=3D0x7fffffffcc08) at ./src/eval.c=
:3055
        original_fun =3D XIL(0x6b68)
#74 0x000055555575db3b in Ffuncall (nargs=3Dnargs@entry=3D2, args=3Dargs@en=
try=3D0x7fffffffcc00) at ./src/eval.c:3104
        count =3D {
          bytes =3D 128
        }
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#75 0x00005555556e3cac in command_loop_1 () at ./src/lisp.h:1184
        cmd =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

        keybuf =3D {make_fixnum(24), make_fixnum(107), make_fixnum(48), mak=
e_fixnum(98), XIL(0x7fffffffcc80), XIL(0x55555575befd), XIL(0x7fffffffcca8)=
, XIL(0x60), XIL(0), XIL(0), XIL(0), XIL(0x1), XIL(0x7fffffffcce0), XIL(0x5=
5555575d835), XIL(0xc), XIL(0x140b0), XIL(0x38), XIL(0x7fffa98b620d), XIL(0=
x7fffed400004), XIL(0x369475a905028a00), XIL(0x7fffa99487a3), XIL(0x7fffa99=
487a3), XIL(0x60), XIL(0), XIL(0x7fffffffcd50), XIL(0x5555556d69f8), XIL(0)=
, XIL(0x38), XIL(0x60), XIL(0x7fffe37952cb)}
        i =3D <optimized out>
        last_pt =3D 447894
        prev_modiff =3D 6774
        prev_buffer =3D 0x7fffbba855a0
#76 0x000055555575c6d8 in internal_condition_case (bfun=3Dbfun@entry=3D0x55=
55556e382c <command_loop_1>, handlers=3DPython Exception <class 'gdb.error'=
>: value has been optimized out
, handlers@entry=3DXIL(0xa8), hfun=3Dhfun@entry=3D0x5555556d6847 <cmd_error=
>) at ./src/eval.c:1623
        val =3D XIL(0x7ffff7fc2470)
        c =3D 0x7fffe3dc9940
#77 0x00005555556cdb82 in command_loop_2 (handlers=3Dhandlers@entry=3DXIL(0=
xa8)) at ./src/keyboard.c:1174
#78 0x000055555575c5ed in internal_catch (tag=3DPython Exception <class 'gd=
b.error'>: value has been optimized out
, tag@entry=3DXIL(0x15498), func=3Dfunc@entry=3D0x5555556cdb60 <command_loo=
p_2>, arg=3DPython Exception <class 'gdb.error'>: value has been optimized =
out
, arg@entry=3DXIL(0xa8)) at ./src/eval.c:1302
        val =3D XIL(0x7ffff7fc2470)
        c =3D 0x7fffe3da3cc0
#79 0x00005555556cdb3d in command_loop () at ./src/lisp.h:1184
#80 0x00005555556d635e in recursive_edit_1 () at ./src/keyboard.c:760
        val =3D Python Exception <class 'gdb.error'>: value has been optimi=
zed out

#81 0x00005555556d66ff in Frecursive_edit () at ./src/keyboard.c:843
#82 0x00005555556cd517 in main (argc=3D5, argv=3D0x7fffffffcff8) at ./src/e=
macs.c:2580
        stack_bottom_variable =3D 0x0
        old_argc =3D <optimized out>
        no_loadup =3D false
        junk =3D 0x0
        dname_arg =3D 0x7fffffffd52e "EMACS-MPS=3Ddebug"
        ch_to_dir =3D 0x0
        original_pwd =3D 0x0
        dump_mode =3D 0x0
        skip_args =3D 1
        temacs =3D 0x0
        attempt_load_pdump =3D <optimized out>
        only_version =3D false
        rlim =3D {
          rlim_cur =3D 10022912,
          rlim_max =3D 18446744073709551615
        }
        lc_all =3D <optimized out>
        sockfd =3D -1
        module_assertions =3D <optimized out>
++set $bt =3D backtrace_top ()
++if backtrace_p ($bt)
+++echo \n

+++echo Lisp Backtrace:\n
Lisp Backtrace:
+++xbacktrace
++++set $bt =3D backtrace_top ()
++++while backtrace_p ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"delete-frame"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffaf10)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffafe8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb0c8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb1a8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let*"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb2f8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb3d8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb4b8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"org-noter-kill-session"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb5e0)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb768)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb848)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffb9b8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffba98)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"progn"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbb78)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbc58)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"let"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffbdb8)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"org-noter--handle-kill-buffer"++++++printf " (0x%x)\n", backtrace_args ($b=
t)
 (0xffffbfd0)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"kill-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xe2200100)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"kill-this-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc2e0)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"if"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc488)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"grfz-kill-a-buffer"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc770)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"funcall-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffc768)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"call-interactively"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xe2200070)
+++++set $bt =3D backtrace_next ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (=
1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s=
.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"command-execute"++++++printf " (0x%x)\n", backtrace_args ($bt)
 (0xffffcc08)
+++++set $bt =3D backtrace_next ($bt)
+i reg
rax            0x7ffff7fc2470      140737353884784
rbx            0x555555b2b8f0      93824998357232
rcx            0x3f                63
rdx            0x0                 0
rsi            0x7fffffff          2147483647
rdi            0x6                 6
rbp            0x7fffffffad30      0x7fffffffad30
rsp            0x7fffffffad28      0x7fffffffad28
r8             0x0                 0
r9             0x73                115
r10            0x7ffff5e4f868      140737318811752
r11            0x206               518
r12            0x0                 0
r13            0x555555b2b8f0      93824998357232
r14            0x100               256
r15            0x0                 0
rip            0x5555556cc062      0x5555556cc062 <terminate_due_to_signal>
eflags         0x246               [ PF ZF IF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0
+frame 3
#3  0x00005555557da4e4 in igc_check_freeable (start=3Dstart@entry=3D0x55555=
5b2b8f0) at ./src/igc.c:3020
3020	      igc_assert (r =3D=3D NULL);
+print a
No symbol "a" in current context.
+xtype
++xgettype $
+++if (CHECK_LISP_OBJECT_TYPE)
++++set $bugfix =3D $.i
The history is empty.


HTH, Gregor




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 6 Feb 2025 15:49:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 06 10:49:47 2025
Received: from localhost ([127.0.0.1]:59097 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tg48Q-00051U-PW
	for submit <at> debbugs.gnu.org; Thu, 06 Feb 2025 10:49:47 -0500
Received: from mout.gmx.net ([212.227.15.15]:38921)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <telegraph@HIDDEN>) id 1tg48P-00051F-EH
 for 76091 <at> debbugs.gnu.org; Thu, 06 Feb 2025 10:49:45 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1738856972; x=1739461772; i=telegraph@HIDDEN;
 bh=YYFoTNokEjyoCDlL7okzwb0dASEXM+8xK0NBpMSzIF0=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date:
 Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=lI9tWVqqusktpcOnFdRveEujfMFHG9M6D1cSv3K3FvJDs2UF7w1zqT1fJD8x/bKS
 IAeHMGNQA9tyMzaoMGXtS0cw5bkydLDeBS0EbtuVFMDv2bmC6OfXty8ZbtbLDKjxB
 7IQqzOwm2i/RwLRU8Fbrmil9hXT8sU5cg27cCWkcMMg+prvlw93/2OsvXIOEc/Tv9
 7AYwDDuSio9DcBLb4SP7+nM3Hx62A4HQs8LaesuzxwFMp4Kp2dDP+T4OUpRGnQmRn
 WIP7jjW9qFdBCoOn8bxV86TtpLJDNF6ippj5GvF5YHTxOFsieYlUpL9qtrd/+/7Eh
 M+xunAXfHkDJsIkFBQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from localhost ([95.90.236.208]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MysVs-1tTBx00bPm-00tEDH; Thu, 06
 Feb 2025 16:49:32 +0100
From: Gregor Zattler <telegraph@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>, Pip Cet <pipcet@HIDDEN>, Gerd
 =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
Subject: Re: bug#76091: 31.0.50; festure/igc: buffer.h:829: Emacs fatal
 error: assertion failed: BUFFERP (a)
In-Reply-To: <865xln6puv.fsf@HIDDEN>
References: <875xlns0f9.fsf@HIDDEN> <865xln6puv.fsf@HIDDEN>
Date: Thu, 06 Feb 2025 16:48:56 +0100
Message-ID: <87h657dqfr.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Provags-ID: V03:K1:KSiK39MHx0WbZ0vMDlR2ofw3oiFhJ2tc/wt528ZZDde/g525cWQ
 fyv4wi13NtlkzrtUQh+6/8V8RiIR0DfKRKA2sUeTAHEILqH8HxPNYIcldFWPrP8ccTvRrOn
 xfoN1bzpcYEvHouBbBhEL+V2m8FRdvKeMIT9obqG4ZXdJ3F4a0wQXoqrDidsisoClhsTgkl
 dczx3mGR+7I/JcZZgvgCA==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:b1C5gGiJPcw=;SieXuadcmQJ6+Q11CIsibFCijm5
 Y+QUmDmcNkd9bNspxLF2L0BLiLhvUmRFvW+UGHSUDxu94KLmtdUsa1nmzictMf+ii8QKprEqp
 c+UKzD/hw7UgDpwzCQkDt3GFk1NGDYDBAXZDlMZ+qKlSwy53LkGEQf9mb8jf4uyS29OAvmElD
 aBpOA0r6PMHRrZyp0dWhMNI78JoleLQ/5ZjocZbwYi44IOWWClrAd88EYPg9zP2VqmLJ0Pn22
 zRx7iwBlb9/ijkt4xkytIilVcDXxYXjIAfoB5vKuIIdktHCJbNNmf6ZD5AXKvGOlw9wUUZOEa
 ij8x0QACTRKXer/WfFfS//Xq7sv2gsdTXNicKe9hxKIsWeNJ5ZiVUL8zXpJfByA5cwtknlY1N
 3w93Z4wzNq8gZoySGutSMCP0uwuWyLaMGgZm2I6rU/JiTLnb7bO8+ThGnRV+cYslmwG57V8gK
 7retCULiuSiDA34Hg+QQeV22o6cE0fe6PNJTaATi0PEN5YhnkDfat6J35p4JU7ulOBnBIe9P0
 okkYO0w06c49UFf4cwHSHyf48swZwEGdH/FIPe84f+kHT0rfOzcQILUjrCZgwfslR4J2HNs9S
 lPiCLgoQ/z79wihQsCCOcclxtrBc0Kd4bpK09eDuPrQKV66NeO8q6vA6R52NOfOwIDcW1LtHI
 H5qwJlpd5vv6ef4wwfRfdHVxNwPY60BNHMGhzWFyY2tqIOIkQ6FKgTMdiOXlmLE1udoc9RG3k
 TO81J4cfouhmB2HkfteQ4yuGVCdr3iA7AMPpkL28rd8OYnPbJyfFRfdx2X55Z1Pm3AJRnv9u2
 wfw0L5FQs5eLO5tu2alzkHegDl78iK4AmeqRibnYmfeujHHMD2l7Bn66J4VoK7TN3G746N49B
 tNSRolRF/HqofnjkRaEa734iNDBIcEGPK45uIKU9hQmmZ2oIjZUKhWFPMw/Do5gutlepgFRXz
 7VnKlC6Hs9KjY0n0CU3A08uzpIMNHIMT+DN2B5wvSby9/0dIRW7k94lMgj/lo8i4yJvfvdyc6
 rseNOICz6Uq0oD/oisp1Vndp2A/hxy5Io+FmAa/1UDv+HS6UBj/Y316A8LRJMjSXNE0JzFwMy
 WL27FG14zel7mGgFoKFdibDLJqfRp3TjVs5PaMCXT2yJprY/EugS9LoDpo9elKkQQnsgNl6wM
 qLAlcMfBRz0lrDsGdBLqHy5dVqtDSguYhblCvP8Ujc+e5wFzo/n/9udJyWeDrPD+pGgYeDxvQ
 W8VMK8zBDgSNxNJgFqnu+pNi8HFfAijqnuY93JhQXKySEgPXVdA2hOTshtbdIThodZ+6JfEqA
 uCMiT3+hdq2+Qib7awr4Fg26IjAKtMXg9tQREg+TrcHHWUQTBZAS07uvb4cOxtibnV10vctnp
 wigfrCv3npVoZxSvi1/EG6SqB4PLmdxCvmEmcAVNb3iLgabo7xSTDs7kB4
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

Hi Eli,
* Eli Zaretskii <eliz@HIDDEN> [2025-02-06; 17:43 +02]:
>> Date: Thu, 06 Feb 2025 13:49:30 +0100
>> From:  Gregor Zattler via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
>>
>> Dear Emacs developers, I don't know if
>> this failed assertion is due to using
>> MPS as GC.
>>
>> I played along with pdf-tools and
>> org-noter when it happened.
>>
>> This time I built with a current
>> checkout of feature/igc.
>>
>> GDB output even further below.
>>
>> The crashed session is still in GDB.
>> [...]
>> Breakpoint 1, terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_l=
imit=3Dbacktrace_limit@entry=3D2147483647) at ./src/emacs.c:425
>> 425	{
>> +bt
>> #0  terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=3Dbac=
ktrace_limit@entry=3D2147483647) at ./src/emacs.c:425
>> #1  0x00005555555b8f5b in die (msg=3Dmsg@entry=3D0x5555559b40d0 "BUFFER=
P (a)", file=3Dfile@entry=3D0x5555559b40c7 "buffer.h", line=3Dline@entry=
=3D829) at ./src/alloc.c:7683
>> #2  0x00005555555a0bda in XBUFFER (a=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
>> ) at ./src/buffer.h:829
>> #3  0x00005555555a4370 in XBUFFER (a=3DPython Exception <class 'gdb.err=
or'>: value has been optimized out
>> ) at ./src/xdisp.c:17024
>> #4  prepare_menu_bars () at ./src/xdisp.c:14041
>
> This is here:
>
>       FOR_EACH_FRAME (tail, frame)
> 	{
> 	  struct frame *f =3D XFRAME (frame);
> 	  struct window *w =3D XWINDOW (FRAME_SELECTED_WINDOW (f));
> 	  if (some_windows
> 	      && !f->redisplay
> 	      && !w->redisplay
> 	      && !XBUFFER (w->contents)->text->redisplay)
> 	    continue;
>
> And I don't understand how w->contents of a frame's selected window
> could fail the BUFFERP test.  Can you tell what the below commands
> produce?
>
>   (gdb) frame 3
>   (gdb) print a
>   (gdb) xtype


+frame 3
#3  0x00005555555a4370 in XBUFFER (a=3D...) at ./src/xdisp.c:17024
17024	    XFRAME (frame)->already_hscrolled_p =3D false;
+print a
$1 =3D <optimized out>
+xtype
++xgettype $
+++if (CHECK_LISP_OBJECT_TYPE)
++++set $bugfix =3D $.i
+++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1 =
<< GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
value has been optimized out


I'll try to use an un-optimized build
but I'm afraid it's too slow for
everyday usage.

HTH, Gregor




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at 76091 <at> debbugs.gnu.org:


Received: (at 76091) by debbugs.gnu.org; 6 Feb 2025 15:43:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 06 10:43:34 2025
Received: from localhost ([127.0.0.1]:59063 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tg42Q-0004jJ-9b
	for submit <at> debbugs.gnu.org; Thu, 06 Feb 2025 10:43:34 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:48554)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tg42O-0004j6-It
 for 76091 <at> debbugs.gnu.org; Thu, 06 Feb 2025 10:43:32 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1tg42I-0002pX-R3; Thu, 06 Feb 2025 10:43:26 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From:
 Date; bh=93SFFV0+ytCjl0EjRngYqFoKPeroSaLiAlEbbOYTFjU=; b=i3wbSysC43ivm+dXL/Go
 9mkWnRWBFyieLuPCJCeWbjrkcK8nOPFh4XW+oUfN3f84CA+8ugl9wLhe0JIoDVCNtCqYZ0VFuD7e6
 qDYuO84ji8DoQj8AqYXt8VdRJauN0tfWUSroU+zSddUp6KT/BVTIacJ7kwD95ZE5e8E6OSp6OKJ2w
 XOM/E04655LTFIiv/ldJBfpMiiKF6XnY1l8Pg7Z+10uEySY2XLTPvtJO89SLQuKuNpOhPkEUIaCmx
 4VY/tuSJCfSZsLDJTvoidQsaSf/B6/ikCCxJhD0XGFdAyTSHUCfKPWfiTtrK66Qpk2Joe89XGjYsf
 TSa5dzU5vrLUQA==;
Date: Thu, 06 Feb 2025 17:43:20 +0200
Message-Id: <865xln6puv.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Gregor Zattler <telegraph@HIDDEN>, Pip Cet <pipcet@HIDDEN>,
 =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>
In-Reply-To: <875xlns0f9.fsf@HIDDEN> (bug-gnu-emacs@HIDDEN)
Subject: Re: bug#76091: 31.0.50;
 festure/igc: buffer.h:829: Emacs fatal error: assertion failed:
 BUFFERP (a)
References: <875xlns0f9.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 76091
Cc: 76091 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Thu, 06 Feb 2025 13:49:30 +0100
> From:  Gregor Zattler via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN>
> 
> Dear Emacs developers, I don't know if
> this failed assertion is due to using
> MPS as GC.
> 
> I played along with pdf-tools and
> org-noter when it happened.
> 
> This time I built with a current
> checkout of feature/igc.
> 
> GDB output even further below.
> 
> The crashed session is still in GDB.
> [...]
> Breakpoint 1, terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at ./src/emacs.c:425
> 425	{
> +bt
> #0  terminate_due_to_signal (sig=sig@entry=6, backtrace_limit=backtrace_limit@entry=2147483647) at ./src/emacs.c:425
> #1  0x00005555555b8f5b in die (msg=msg@entry=0x5555559b40d0 "BUFFERP (a)", file=file@entry=0x5555559b40c7 "buffer.h", line=line@entry=829) at ./src/alloc.c:7683
> #2  0x00005555555a0bda in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out
> ) at ./src/buffer.h:829
> #3  0x00005555555a4370 in XBUFFER (a=Python Exception <class 'gdb.error'>: value has been optimized out
> ) at ./src/xdisp.c:17024
> #4  prepare_menu_bars () at ./src/xdisp.c:14041

This is here:

      FOR_EACH_FRAME (tail, frame)
	{
	  struct frame *f = XFRAME (frame);
	  struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f));
	  if (some_windows
	      && !f->redisplay
	      && !w->redisplay
	      && !XBUFFER (w->contents)->text->redisplay)
	    continue;

And I don't understand how w->contents of a frame's selected window
could fail the BUFFERP test.  Can you tell what the below commands
produce?

  (gdb) frame 3
  (gdb) print a
  (gdb) xtype

Other than that, with all the locals "optimized out", there really is
not much else to do, except analyze the machine instructions and the
corresponding registers.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 6 Feb 2025 12:50:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 06 07:50:28 2025
Received: from localhost ([127.0.0.1]:54751 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tg1Ks-0002sP-9K
	for submit <at> debbugs.gnu.org; Thu, 06 Feb 2025 07:50:28 -0500
Received: from lists.gnu.org ([2001:470:142::17]:42034)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <telegraph@HIDDEN>) id 1tg1Ko-0002s8-LL
 for submit <at> debbugs.gnu.org; Thu, 06 Feb 2025 07:50:24 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <telegraph@HIDDEN>) id 1tg1Ki-0007Q0-4U
 for bug-gnu-emacs@HIDDEN; Thu, 06 Feb 2025 07:50:16 -0500
Received: from mout.gmx.net ([212.227.15.18])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <telegraph@HIDDEN>) id 1tg1Ke-0008Ig-1h
 for bug-gnu-emacs@HIDDEN; Thu, 06 Feb 2025 07:50:15 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net;
 s=s31663417; t=1738846208; x=1739451008; i=telegraph@HIDDEN;
 bh=Is8/+kyRDTyPPD3TAsC+GU30QyHkJ1lXKvhdA6W/HVM=;
 h=X-UI-Sender-Class:From:To:Subject:Date:Message-ID:MIME-Version:
 Content-Type:Content-Transfer-Encoding:cc:
 content-transfer-encoding:content-type:date:from:message-id:
 mime-version:reply-to:subject:to;
 b=svZT3MXamFBvm0ws7cIFZUGgdlXIc4WCKONJrTIH+MLr+wLZGEQNZH99XKldge7P
 xhIPxBEdVPbUthy8ynpRpxglQaAcFSrbhvkaUM6Lzp+99SEHes6cXMahXm7OQH/jZ
 y/vAy1Yi4fjxI9q9mta8c8T5BlqZBHpf+w9JRJF9vrh4aETVYhd9+WAyhHbU1YfXK
 QJ/tRvM0sXdx0p6cfU6whJvrQXMQxo7n4fW6BsVJIZQuMfxqAo5T0V/WcqqTWxaL6
 rHJR0hkK+zVB0dP7bxUqUn/x39UaFMmJhULiUzKwTafIVLRHdeu0pJOoLXIrAcEvV
 7VtoZZstDytp1FnDAQ==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from localhost ([95.90.236.208]) by mail.gmx.net (mrgmx004
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MRCK6-1u0yX61YJw-00I0yq; Thu, 06
 Feb 2025 13:50:08 +0100
From: Gregor Zattler <telegraph@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 31.0.50; festure/igc: buffer.h:829: Emacs fatal error: assertion
 failed: BUFFERP (a)
X-Debbugs-Cc: 
Date: Thu, 06 Feb 2025 13:49:30 +0100
Message-ID: <875xlns0f9.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Provags-ID: V03:K1:djUvJy9VVzRq59h4xjzvWJ1hWeq45AqP7rPc8akO1fUZ9oxTyUQ
 w5ZJ8lme6DbDsOUYGYqoHUc37/H86Rw8bgFJsZOPentVCTpeLTaz0XeZ1UEDsRmfNTByil5
 6qrg/N2qg0nxpgTZiiQwwfQSyqarmVOr5UtYPuOh1TPaDzBznVmjq84xJTLra/cKobSxYl1
 dccJULpTeIlmG+dkcpO+g==
X-Spam-Flag: NO
UI-OutboundReport: notjunk:1;M01:P0:AkpFMGjSWQo=;/imLOjCgJa5Ro5n/9c7rq5flTl3
 gbFs/2LldICV323PlyZsb7mKL0pkIhbUlrOlsK5iynlZEiiKrDrcEkNXlruwQ2GpG3x+VqIFK
 T4l3zoFprmRUDXW+Kpm8MzTCBGUsEzLiM+AyO+w/mWoqs0zbzeyIrWSoqYKYMUskerOKE8zMz
 t53RoGUmgT9uD5d9cou+NYwVCfFdFCeiXMnBt1MMnTh0KmM1yPIdjG2dbGdyjNasNsGmWBeSX
 cf5YxPG0fbDK03lB/8Es6JXVJq6v5oob7vlAqPPZ/Me1oJyYQ35zW/iWPIA2yepiBEmIIEanV
 mSA996IKzcbxI827p5hnb3edfKCoSNYee+2k/cl9aAcMXiz9MmSFpl8xPnfclDRxllQLEEIYH
 xFPvsTOdlijxPGs1dL2/tmggKSeDUDuMqQYmWctWHyOomwDhDB2u/Bmzr4ustBWU3haKhjUU9
 JgzzP415odXpcdzo6bI4Yzr+XTfuRPSUyhGioEcmhxuDVXaaf/LDDXDvhKba8YUwpuX+NIYbO
 KP1duihZO2qAYnJBfUCovXWboPxm2BNMJ+U1GQlHovtSHAnYlahTeFdenMjDw1TNCVKRQl9LF
 pBMcbDvhvmeYgDbkhZkCLjr+jc/x9t1KQDkw7tPlPDg8XBk+qwmA1OrdGroFeeeXdgLS7pF8f
 PqT1ZLEp3DtlwCDcAXVq1A3gCEz4yvnA6e98ZhdEXP8ty9fn80MXUO5Nx3Ur9bSoI5aAqUwij
 rOzgw1rlOJWggfSZXeRrbCKi0D1q/sJCsAyZ8/4ntFX+DPKvNCv2jxjCuPEp/iTL/aD9pKJaG
 nRtwNX4LjffxtMD7PxMu1l6n6SRrSOc+vbdfaOZJQnNml/Xw1M+wmDGubxy8+gWBoyZjV5TPr
 XckTJDXwO7CzQT86TPXYeS+bQuAUgh42u1sjju2a9zU+9zFa7ZQijdR5NPO2mx+ILlh6qLUam
 800HZamncWYybd34meMPI5jJJvLo3G3ybFap+65756DJYaCUeUdN6RBosD6NcuPVqI7BMOk/r
 4W98YxlepdfC4xXV2bsAjwjbhlteZh5ZuhO9nOcSsO3RUbUYI5XaOAjTsTKfWCjHVaI+lerR9
 SXF3HpLumsk6x73Rp1LbjttNofihYwZnd5UHbj67CiLXfxjzxENmpjUDwSq8M+cauCbfHE2Ld
 8oK6OcA6iYxmt7ekF/2sC3gyGQBFxBb3jbFMD1+jPuhZMm5r2LDMrCaGLlimQA33YCjVn12U6
 +FnDxzil2rmOEVAPmBQn6yIy4YRjzAiSuRVXkNHEWiWPgH8o9G/gZsnsmEDg5EsOOK4fgwouy
 c6Uo3l1G4GJKO1Lyi8r7ERJbq1jG3jDkg3MyBqc2gqTcm5iep1WjRgHSklkMDBWR36HA66tqz
 amJbvJYLCzauyYH25bxbcHPhDPXEcqiFeZ6kVvVMr/pFkGm6RZBHOAjzFr
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=212.227.15.18; envelope-from=telegraph@HIDDEN;
 helo=mout.gmx.net
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Dear Emacs developers, I don't know if
this failed assertion is due to using
MPS as GC.

I played along with pdf-tools and
org-noter when it happened.

This time I built with a current
checkout of feature/igc.

GDB output even further below.

The crashed session is still in GDB.

HTH, Gregor

In GNU Emacs 31.0.50 (build 3,
 x86_64-pc-linux-gnu, cairo version
 1.16.0) of 2025-02-06 built on no
Repository revision: aa915b0c87e42444ee5426744df18c3b15ac0cf5
Repository branch: feature/igc
Windowing system distributor 'The X.Org Foundation', version 11.0.12101007
System Description: Debian GNU/Linux 12 (bookworm)

Configured using:
 'configure
 --infodir=3D/usr/share/info/emacs
 --with-json
 --with-file-notification=3Dyes
 --with-libsystemd --with-cairo
 --with-x=3Dyes --with-x-toolkit=3Dno
 --without-toolkit-scroll-bars
 --without-gsettings
 --enable-check-lisp-object-type
 --enable-checking=3Dyes,glyphs
 --with-native-compilation=3Dyes
 --with-mps=3Dyes 'CFLAGS=3D-ggdb3 -O3
 -ffile-prefix-map=3D/home/grfz/src/emacs-igc=3D. -fstack-protector-strong
 -Wformat -Werror=3Dformat-security
 -fno-omit-frame-pointer'
 'CPPFLAGS=3D-I/home/grfz/mps-artifacts
 -Wdate-time -D_FORTIFY_SOURCE=3D2'
 'LDFLAGS=3D-L/home/grfz/mps-artifacts
 -Wl,-z,relro''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP
GNUTLS GPM HARFBUZZ JPEG LCMS2 LIBOTF
LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT
MODULES MPS NATIVE_COMP NOTIFY INOTIFY
OLDXMENU PDUMPER PNG RSVG SECCOMP SOUND
SQLITE3 THREADS TIFF WEBP X11 XDBE XIM
XINPUT2 XPM ZLIB

Important settings:
  value of $LC_ALL:
  value of $LC_COLLATE: de_DE.utf8
  value of $LC_CTYPE: de_DE.utf8
  value of $LC_MESSAGES: POSIX
  value of $LC_MONETARY: de_DE.utf8
  value of $LC_NUMERIC: de_DE.utf8
  value of $LC_TIME: de_DE.utf8
  value of $LANG: de_DE.utf8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  rainbow-delimiters-mode: t
  winner-mode: t
  which-key-mode: t
  savehist-mode: t
  ws-butler-global-mode: t
  ws-butler-mode: t
  delete-selection-mode: t
  minibuffer-depth-indicate-mode: t
  which-function-mode: t
  windmove-mode: t
  xterm-mouse-mode: t
  key-chord-mode: t
  mail-abbrevs-mode: t
  find-function-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
~/src/notmuch/emacs/notmuch-address hides /home/grfz/.config/emacs/elisp/n=
otmuch-address
/home/grfz/src/ol-notmuch/ol-notmuch hides /home/grfz/.config/emacs/elisp/=
ol-notmuch
/home/grfz/.config/emacs/elpa-31.0/magit-4.2.0/magit-autorevert hides /hom=
e/grfz/.config/emacs/elpa-31.0/magit-section-4.2.0/magit-autorevert
~/src/notmuch/emacs/notmuch-lib hides /usr/local/share/emacs/site-lisp/not=
much-lib
~/src/notmuch/emacs/coolj hides /usr/local/share/emacs/site-lisp/coolj
~/src/notmuch/emacs/notmuch-address hides /usr/local/share/emacs/site-lisp=
/notmuch-address
~/src/notmuch/emacs/notmuch-hello hides /usr/local/share/emacs/site-lisp/n=
otmuch-hello
~/src/notmuch/emacs/notmuch-parser hides /usr/local/share/emacs/site-lisp/=
notmuch-parser
~/src/notmuch/emacs/notmuch-show hides /usr/local/share/emacs/site-lisp/no=
tmuch-show
~/src/notmuch/emacs/notmuch-wash hides /usr/local/share/emacs/site-lisp/no=
tmuch-wash
~/src/notmuch/emacs/notmuch-draft hides /usr/local/share/emacs/site-lisp/n=
otmuch-draft
~/src/notmuch/emacs/notmuch-tree hides /usr/local/share/emacs/site-lisp/no=
tmuch-tree
~/src/notmuch/emacs/notmuch-version hides /usr/local/share/emacs/site-lisp=
/notmuch-version
~/src/notmuch/emacs/notmuch-jump hides /usr/local/share/emacs/site-lisp/no=
tmuch-jump
~/src/notmuch/emacs/notmuch-company hides /usr/local/share/emacs/site-lisp=
/notmuch-company
~/src/notmuch/emacs/notmuch hides /usr/local/share/emacs/site-lisp/notmuch
~/src/notmuch/emacs/notmuch-crypto hides /usr/local/share/emacs/site-lisp/=
notmuch-crypto
~/src/notmuch/emacs/notmuch-compat hides /usr/local/share/emacs/site-lisp/=
notmuch-compat
~/src/notmuch/emacs/notmuch-maildir-fcc hides /usr/local/share/emacs/site-=
lisp/notmuch-maildir-fcc
~/src/notmuch/emacs/notmuch-tag hides /usr/local/share/emacs/site-lisp/not=
much-tag
~/src/notmuch/emacs/notmuch-message hides /usr/local/share/emacs/site-lisp=
/notmuch-message
~/src/notmuch/emacs/notmuch-print hides /usr/local/share/emacs/site-lisp/n=
otmuch-print
~/src/notmuch/emacs/notmuch-mua hides /usr/local/share/emacs/site-lisp/not=
much-mua
~/src/notmuch/emacs/notmuch-query hides /usr/local/share/emacs/site-lisp/n=
otmuch-query
/home/grfz/.config/emacs/elpa-31.0/transient-0.8.4/transient hides /home/g=
rfz/src/emacs-igc/lisp/transient
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-shell hides /home/gr=
fz/src/emacs-igc/lisp/obsolete/idlw-shell
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlwave hides /home/grfz/=
src/emacs-igc/lisp/obsolete/idlwave
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-toolbar hides /home/=
grfz/src/emacs-igc/lisp/obsolete/idlw-toolbar
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-help hides /home/grf=
z/src/emacs-igc/lisp/obsolete/idlw-help
/home/grfz/.config/emacs/elpa-31.0/idlwave-6.5.1/idlw-complete-structtag h=
ides /home/grfz/src/emacs-igc/lisp/obsolete/idlw-complete-structtag

Features:
(shadow sort orgalist ecomplete
mail-extr tramp trampver
tramp-integration files-x tramp-message
tramp-compat shell tramp-loaddefs
emacsbug add-log rainbow-delimiters
winner which-key ol-notmuch notmuch
notmuch-tree notmuch-jump notmuch-hello
notmuch-show notmuch-print
notmuch-crypto notmuch-mua
notmuch-message notmuch-draft
notmuch-maildir-fcc notmuch-address
notmuch-company notmuch-parser
notmuch-wash diff-mode track-changes
coolj goto-addr icalendar diary-lib
diary-loaddefs notmuch-tag crm
notmuch-lib notmuch-version
notmuch-compat hl-line compat
org-contrib org-crypt org-protocol
org-clock ob-plantuml gnus-alias advice
savehist auth-source-pass holidays
holiday-loaddefs ws-butler delsel
modus-operandi-theme modus-themes
mb-depth which-func imenu windmove
xt-mouse edmacro kmacro key-chord comp
comp-cstr warnings comp-run comp-common
wcheck-mode oc-basic cl-extra help-mode
org-element org-persist org-id
org-refile org-element-ast inline
avl-tree generator ol-eww eww vtable
mule-util url-queue mm-url ol-rmail
ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-art mm-uu mml2015 mm-view mml-smime
smime gnutls dig gnus-sum shr pixel-fill
kinsoku url-file svg dom gnus-group
gnus-undo gnus-start gnus-dbus dbus xml
gnus-cloud nnimap nnmail mail-source
utf7 nnoo parse-time gnus-spec gnus-int
gnus-range message sendmail yank-media
puny rfc822 mml mml-sec epa derived epg
rfc6068 epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mailabbrev gmm-utils
mailheader gnus-win gnus nnheader
gnus-util text-property-search
mail-utils range mm-util mail-prsvr
ol-docview doc-view filenotify jka-compr
image-mode exif dired dired-loaddefs
ol-bibtex bibtex iso8601 ol-bbdb ol-w3m
ol-doi org-link-doi org ob ob-ref ob-lob
ob-table ob-exp org-macro org-pcomplete
pcomplete org-list org-footnote
org-faces org-entities time-date
noutline outline ob-emacs-lisp org-table
org-loaddefs thingatpt find-func
cal-menu calendar cal-loaddefs ob-tangle
ol org-src sh-script rx smie treesit
executable org-keys oc ob-comint comint
ansi-osc ansi-color ring ob-core
org-cycle org-fold org-fold-core
org-compat ob-eval org-version org-macs
format-spec use-package
use-package-ensure use-package-delight
use-package-diminish
use-package-bind-key bind-key easy-mmode
use-package-core async-autoloads
csv-mode-autoloads debbugs-autoloads
dired-git-info-autoloads
git-timemachine-autoloads
hyperbole-autoloads kotl-autoloads hact
set hhist idlwave-autoloads
key-chord-autoloads magit-autoloads
pcase magit-section-autoloads
dash-autoloads minibuffer-line-autoloads
org-contrib-autoloads
org-noter-autoloads org-autoloads
orgalist-autoloads paredit-autoloads
pdf-tools-autoloads finder-inf
rainbow-delimiters-autoloads
tablist-autoloads transient-autoloads
wcheck-mode-autoloads info
with-editor-autoloads
ws-butler-autoloads package browse-url
xdg url url-proxy url-privacy url-expand
url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util
mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core
cl-macs password-cache json subr-x map
byte-opt gv bytecomp byte-compile
url-vars cus-edit pp cus-load icons
wid-edit cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd
touch-screen tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode
register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer
select scroll-bar mouse jit-lock
font-lock syntax font-core
term/tty-colors frame minibuffer nadvice
seq simple cl-generic indonesian
philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai
tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak
czech european ethiopic indian cyrillic
chinese composite emoji-zwj charscript
charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray
oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp
files window text-properties overlay
sha1 md5 base64 format env code-pages
mule custom widget keymap
hashtable-print-readable backquote
threads dbusbind inotify lcms2
dynamic-setting font-render-setting
cairo xinput2 x multi-tty move-toolbar
make-network-process tty-child-frames
native-compile mps emacs)

Memory information:
((conses 24 0 0) (symbols 56 0 0) (strings 40 0 0) (string-bytes 1 0)
 (vectors 24 0) (vector-slots 8 0 0) (floats 24 0 0) (intervals 64 0 0)
 (buffers 992 0))





+run --debug-init -xrm --init-directory=3D"${USER_EMACS_DIRECTORY}" --fg-d=
aemon=3D"${EMACS_SERVER_NAME}"
Starting program: /home/grfz/src/emacs-igc/src/emacs --debug-init -xrm --i=
nit-directory=3D"${USER_EMACS_DIRECTORY}" --fg-daemon=3D"${EMACS_SERVER_NA=
ME}"
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Detaching after vfork from child process 1490619]
[Detaching after vfork from child process 1490620]
[Detaching after vfork from child process 1490621]
[Detaching after vfork from child process 1490622]
[Detaching after vfork from child process 1490625]
[Detaching after vfork from child process 1490626]
[Detaching after vfork from child process 1490692]
[Detaching after vfork from child process 1490694]
[Detaching after vfork from child process 1490695]

Program received signal SIGSEGV, Segmentation fault.
[... 155 such lines deleted ...]
Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1490698]
[Detaching after vfork from child process 1491454]
[Detaching after vfork from child process 1491455]
[Detaching after vfork from child process 1491584]
[Detaching after vfork from child process 1491838]

Program received signal SIGSEGV, Segmentation fault.
[... plenty such deleted ...]
Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1491900]
[Detaching after vfork from child process 1491901]
[Detaching after vfork from child process 1491903]
[Detaching after vfork from child process 1491904]
[Detaching after vfork from child process 1491915]
[Detaching after vfork from child process 1491916]
[Detaching after vfork from child process 1491917]

Program received signal SIGSEGV, Segmentation fault.
[... 40 such lines deleted ...]
Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1491919]
[Detaching after vfork from child process 1492526]
[Detaching after vfork from child process 1492561]
[Detaching after vfork from child process 1492564]
[Detaching after vfork from child process 1492565]
[Detaching after vfork from child process 1492566]

Program received signal SIGSEGV, Segmentation fault.
[... 190 such lines deleted ...]
Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1492570]
[Detaching after vfork from child process 1492572]
[Detaching after vfork from child process 1493673]

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.
[Detaching after vfork from child process 1496065]
[Detaching after vfork from child process 1496066]
[Detaching after vfork from child process 1497149]

Program received signal SIGSEGV, Segmentation fault.
[... 158 such lines deleted ...]
Program received signal SIGSEGV, Segmentation fault.

Breakpoint 1, terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limi=
t=3Dbacktrace_limit@entry=3D2147483647) at ./src/emacs.c:425
425	{
+bt
#0  terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=3Dbacktr=
ace_limit@entry=3D2147483647) at ./src/emacs.c:425
#1  0x00005555555b8f5b in die (msg=3Dmsg@entry=3D0x5555559b40d0 "BUFFERP (=
a)", file=3Dfile@entry=3D0x5555559b40c7 "buffer.h", line=3Dline@entry=3D82=
9) at ./src/alloc.c:7683
#2  0x00005555555a0bda in XBUFFER (a=3DPython Exception <class 'gdb.error'=
>: value has been optimized out
) at ./src/buffer.h:829
#3  0x00005555555a4370 in XBUFFER (a=3DPython Exception <class 'gdb.error'=
>: value has been optimized out
) at ./src/xdisp.c:17024
#4  prepare_menu_bars () at ./src/xdisp.c:14041
#5  redisplay_internal () at ./src/xdisp.c:17103
#6  0x000055555564ec75 in redisplay () at ./src/xdisp.c:16675
#7  0x000055555577b9a5 in read_char (commandflag=3D1, map=3DPython Excepti=
on <class 'gdb.error'>: value has been optimized out
, map@entry=3DXIL(0x7fffc31bd02b), prev_event=3DPython Exception <class 'g=
db.error'>: value has been optimized out
, used_mouse_menu=3Dused_mouse_menu@entry=3D0x7fffffffc9bb, end_time=3Dend=
_time@entry=3D0x0) at ./src/keyboard.c:2683
#8  0x000055555577e03b in read_key_sequence (keybuf=3Dkeybuf@entry=3D0x7ff=
fffffcb20, prompt=3DPython Exception <class 'gdb.error'>: value has been o=
ptimized out
, prompt@entry=3DXIL(0), dont_downcase_last=3Ddont_downcase_last@entry=3Df=
alse, can_return_switch_frame=3Dcan_return_switch_frame@entry=3Dtrue, fix_=
current_buffer=3Dfix_current_buffer@entry=3Dtrue, prevent_redisplay=3Dprev=
ent_redisplay@entry=3Dfalse, disable_text_conversion_p=3D<optimized out>) =
at ./src/keyboard.c:10790
#9  0x000055555577fd67 in command_loop_1 () at ./src/lisp.h:1184
#10 0x000055555581e7a6 in internal_condition_case (bfun=3Dbfun@entry=3D0x5=
5555577fb10 <command_loop_1>, handlers=3Dhandlers@entry=3DXIL(0xa8), hfun=
=3Dhfun@entry=3D0x555555763cd0 <cmd_error>) at ./src/eval.c:1623
#11 0x000055555576290e in command_loop_2 (handlers=3Dhandlers@entry=3DXIL(=
0xa8)) at ./src/keyboard.c:1174
#12 0x000055555581e52f in internal_catch (tag=3Dtag@entry=3DXIL(0x15498), =
func=3Dfunc@entry=3D0x5555557628e0 <command_loop_2>, arg=3DPython Exceptio=
n <class 'gdb.error'>: value has been optimized out
, arg@entry=3DXIL(0xa8)) at ./src/eval.c:1302
#13 0x00005555557628a9 in command_loop () at ./src/lisp.h:1184
#14 0x000055555576f3e5 in recursive_edit_1 () at ./src/keyboard.c:760
#15 0x000055555576f795 in Frecursive_edit () at ./src/keyboard.c:843
#16 0x00005555555d1f77 in main (argc=3D5, argv=3D<optimized out>) at ./src=
/emacs.c:2580
++set $bt =3D backtrace_top ()
++if backtrace_p ($bt)
+++echo \n

+++echo Lisp Backtrace:\n
Lisp Backtrace:
+++xbacktrace
++++set $bt =3D backtrace_top ()
++++while backtrace_p ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & =
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.=
s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"redisplay_internal (C function)"++++++printf " (0x%x)\n", backtrace_args =
($bt)
 (0x0)
+++++set $bt =3D backtrace_next ($bt)
+xbacktrace
++set $bt =3D backtrace_top ()
++while backtrace_p ($bt)
+++set $fun =3D backtrace_function ($bt)
+++xgettype $fun
++++if (CHECK_LISP_OBJECT_TYPE)
+++++set $bugfix =3D $fun.i
++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & (1=
 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++if $type =3D=3D Lisp_Symbol
++++xprintsym $fun
+++++xsymname $fun
++++++xgetsym $fun
+++++++xgetptr $fun
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $fun.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++set $symname =3D $ptr->u.s.name
+++++xgetptr $symname
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $symname.i
++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++if $ptr !=3D 0
++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++xprintstr $sym_name
+++++++if (! $arg0)
++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.s.=
size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++if $strsize =3D=3D 0
+++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"redisplay_internal (C function)"++++printf " (0x%x)\n", backtrace_args ($=
bt)
 (0x0)
+++set $bt =3D backtrace_next ($bt)
+bt full
#0  terminate_due_to_signal (sig=3Dsig@entry=3D6, backtrace_limit=3Dbacktr=
ace_limit@entry=3D2147483647) at ./src/emacs.c:425
#1  0x00005555555b8f5b in die (msg=3Dmsg@entry=3D0x5555559b40d0 "BUFFERP (=
a)", file=3Dfile@entry=3D0x5555559b40c7 "buffer.h", line=3Dline@entry=3D82=
9) at ./src/alloc.c:7683
#2  0x00005555555a0bda in XBUFFER (a=3DPython Exception <class 'gdb.error'=
>: value has been optimized out
) at ./src/buffer.h:829
#3  0x00005555555a4370 in XBUFFER (a=3DPython Exception <class 'gdb.error'=
>: value has been optimized out
) at ./src/xdisp.c:17024
        f =3D <optimized out>
        tail =3D Python Exception <class 'gdb.error'>: value has been opti=
mized out

        frame =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        all_windows =3D <optimized out>
        some_windows =3D <optimized out>
        w =3D <optimized out>
        sw =3D <optimized out>
        must_finish =3D <optimized out>
        match_p =3D <optimized out>
        tlbufpos =3D {
          charpos =3D <optimized out>,
          bytepos =3D <optimized out>
        }
        tlendpos =3D {
          charpos =3D <optimized out>,
          bytepos =3D <optimized out>
        }
        number_of_visible_frames =3D <optimized out>
        sf =3D <optimized out>
        polling_stopped_here =3D <optimized out>
        tail =3D Python Exception <class 'gdb.error'>: value has been opti=
mized out

        frame =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        hscroll_retries =3D <optimized out>
        garbaged_frame_retries =3D <optimized out>
        consider_all_windows_p =3D <optimized out>
        update_miniwindow_p =3D <optimized out>
        previous_frame =3D <optimized out>
        current_matrices_cleared =3D <optimized out>
        new_count =3D <optimized out>
#4  prepare_menu_bars () at ./src/xdisp.c:14041
        f =3D <optimized out>
        tail =3D Python Exception <class 'gdb.error'>: value has been opti=
mized out

        frame =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        all_windows =3D <optimized out>
        some_windows =3D <optimized out>
        w =3D <optimized out>
        sw =3D <optimized out>
        must_finish =3D <optimized out>
        match_p =3D <optimized out>
        tlbufpos =3D {
          charpos =3D <optimized out>,
          bytepos =3D <optimized out>
        }
        tlendpos =3D {
          charpos =3D <optimized out>,
          bytepos =3D <optimized out>
        }
        number_of_visible_frames =3D <optimized out>
        sf =3D <optimized out>
        polling_stopped_here =3D <optimized out>
        tail =3D Python Exception <class 'gdb.error'>: value has been opti=
mized out

        frame =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        hscroll_retries =3D <optimized out>
        garbaged_frame_retries =3D <optimized out>
        consider_all_windows_p =3D <optimized out>
        update_miniwindow_p =3D <optimized out>
        previous_frame =3D <optimized out>
        current_matrices_cleared =3D <optimized out>
        new_count =3D <optimized out>
#5  redisplay_internal () at ./src/xdisp.c:17103
        w =3D <optimized out>
        sw =3D <optimized out>
        must_finish =3D <optimized out>
        match_p =3D <optimized out>
        tlbufpos =3D {
          charpos =3D <optimized out>,
          bytepos =3D <optimized out>
        }
        tlendpos =3D {
          charpos =3D <optimized out>,
          bytepos =3D <optimized out>
        }
        number_of_visible_frames =3D <optimized out>
        sf =3D <optimized out>
        polling_stopped_here =3D <optimized out>
        tail =3D Python Exception <class 'gdb.error'>: value has been opti=
mized out

        frame =3D Python Exception <class 'gdb.error'>: value has been opt=
imized out

        hscroll_retries =3D <optimized out>
        garbaged_frame_retries =3D <optimized out>
        consider_all_windows_p =3D <optimized out>
        update_miniwindow_p =3D <optimized out>
        previous_frame =3D <optimized out>
        current_matrices_cleared =3D <optimized out>
        new_count =3D <optimized out>
#6  0x000055555564ec75 in redisplay () at ./src/xdisp.c:16675
#7  0x000055555577b9a5 in read_char (commandflag=3D1, map=3DPython Excepti=
on <class 'gdb.error'>: value has been optimized out
, map@entry=3DXIL(0x7fffc31bd02b), prev_event=3DPython Exception <class 'g=
db.error'>: value has been optimized out
, used_mouse_menu=3Dused_mouse_menu@entry=3D0x7fffffffc9bb, end_time=3Dend=
_time@entry=3D0x0) at ./src/keyboard.c:2683
        echo_current =3D false
        c =3D XIL(0xc20b1d08)
        local_getcjmp =3D {{
            __jmpbuf =3D {0, 1, 140737488340544, 93824995805383, 140736458=
492269, 0, 140736562946003, 56448},
            __mask_was_saved =3D -14784,
            __saved_mask =3D {
              __val =3D {0, 56448, 0, 140736465790707, 140736652710968, 14=
0737488340640, 93824995805383, 56448, 8589919984, 140737488340640, 0, 5644=
8, 140737488340720, 140736448845896, 140736448845901, 140737488340912}
            }
          }}
        save_jump =3D {{
            __jmpbuf =3D {140736448845901, 93824995842824, 140736448845896=
, 140737488340768, 140736448845896, 0, 0, 93824995066752},
            __mask_was_saved =3D 0,
            __saved_mask =3D {
              __val =3D {93824995065784, 444559, 7269376900467383552, 0, 1=
28, 0, 0, 93824996979680, 140736448845901, 140736405658160, 14073663364470=
4, 140737488340848, 93824995062785, 6, 140736633643803, 140737488341024}
            }
          }}
        tem =3D Python Exception <class 'gdb.error'>: value has been optim=
ized out

        save =3D Python Exception <class 'gdb.error'>: value has been opti=
mized out

        previous_echo_area_message =3D XIL(0)
        also_record =3D XIL(0)
        reread =3D false
        recorded =3D false
        polling_stopped_here =3D false
        orig_kboard =3D 0x555556039310
        c_volatile =3D XIL(0)
#8  0x000055555577e03b in read_key_sequence (keybuf=3Dkeybuf@entry=3D0x7ff=
fffffcb20, prompt=3DPython Exception <class 'gdb.error'>: value has been o=
ptimized out
, prompt@entry=3DXIL(0), dont_downcase_last=3Ddont_downcase_last@entry=3Df=
alse, can_return_switch_frame=3Dcan_return_switch_frame@entry=3Dtrue, fix_=
current_buffer=3Dfix_current_buffer@entry=3Dtrue, prevent_redisplay=3Dprev=
ent_redisplay@entry=3Dfalse, disable_text_conversion_p=3D<optimized out>) =
at ./src/keyboard.c:10790
        interrupted_kboard =3D 0x555556039310
        interrupted_frame =3D 0x7fffc20b1d08
        key =3D Python Exception <class 'gdb.error'>: value has been optim=
ized out

        used_mouse_menu =3D false
        echo_local_start =3D 0
        last_real_key_start =3D 0
        keys_local_start =3D 0
        new_binding =3D Python Exception <class 'gdb.error'>: value has be=
en optimized out

        t =3D 0
        echo_start =3D 0
        keys_start =3D 0
        current_binding =3D XIL(0x7fffc31bd02b)
        first_unbound =3D 31
        mock_input =3D 0
        used_mouse_menu_history =3D {false <repeats 30 times>}
        fkey =3D {
          parent =3D XIL(0x7fffe60e78cb),
          map =3D XIL(0x7fffe60e78cb),
          start =3D 0,
          end =3D 0
        }
        keytran =3D {
          parent =3D XIL(0x7fffebe4ca73),
          map =3D XIL(0x7fffebe4ca73),
          start =3D 0,
          end =3D 0
        }
        indec =3D {
          parent =3D XIL(0x7fffe60e78b3),
          map =3D XIL(0x7fffe60e78b3),
          start =3D 0,
          end =3D 0
        }
        shift_translated =3D false
        delayed_switch_frame =3D XIL(0)
        original_uppercase =3D XIL(0)
        original_uppercase_position =3D -1
        disabled_conversion =3D false
        fake_prefixed_keys =3D XIL(0)
        first_event =3D XIL(0)
#9  0x000055555577fd67 in command_loop_1 () at ./src/lisp.h:1184
        cmd =3D Python Exception <class 'gdb.error'>: value has been optim=
ized out

        keybuf =3D {XIL(0x7fffc31abc73), make_fixnum(53), make_fixnum(48),=
 XIL(0), XIL(0x5555559db3e0), XIL(0x7fffc20a584d), XIL(0x7fffffffcbc0), XI=
L(0x5555558205a3), XIL(0x7fffffffcdec), XIL(0x3), XIL(0xc), XIL(0x140b0), =
XIL(0x38), XIL(0x7fffc20a584d), XIL(0x7fffffffcbc0), XIL(0x7fffffffcc00), =
XIL(0x60), XIL(0x555555763cd0), XIL(0x7fffffffcdec), XIL(0x7fffffffd4ef), =
XIL(0x7fffffffcc50), XIL(0x555555763ec7), XIL(0), XIL(0), XIL(0x2aaa78cd67=
80), XIL(0x7fffc28051bb), XIL(0x7fffda689a9c), XIL(0x2aaa730f4468), XIL(0x=
7fffffffcc00), XIL(0x5555558205a3)}
        i =3D <optimized out>
        last_pt =3D <optimized out>
        prev_modiff =3D 6292
        prev_buffer =3D 0x7fffc20a5848
#10 0x000055555581e7a6 in internal_condition_case (bfun=3Dbfun@entry=3D0x5=
5555577fb10 <command_loop_1>, handlers=3Dhandlers@entry=3DXIL(0xa8), hfun=
=3Dhfun@entry=3D0x555555763cd0 <cmd_error>) at ./src/eval.c:1623
        val =3D make_fixnum(16)
        c =3D 0x7fffe1d92450
#11 0x000055555576290e in command_loop_2 (handlers=3Dhandlers@entry=3DXIL(=
0xa8)) at ./src/keyboard.c:1174
#12 0x000055555581e52f in internal_catch (tag=3Dtag@entry=3DXIL(0x15498), =
func=3Dfunc@entry=3D0x5555557628e0 <command_loop_2>, arg=3DPython Exceptio=
n <class 'gdb.error'>: value has been optimized out
, arg@entry=3DXIL(0xa8)) at ./src/eval.c:1302
        val =3D make_fixnum(16)
        c =3D 0x7fffe1d6cd10
#13 0x00005555557628a9 in command_loop () at ./src/lisp.h:1184
#14 0x000055555576f3e5 in recursive_edit_1 () at ./src/keyboard.c:760
        val =3D Python Exception <class 'gdb.error'>: value has been optim=
ized out

#15 0x000055555576f795 in Frecursive_edit () at ./src/keyboard.c:843
#16 0x00005555555d1f77 in main (argc=3D5, argv=3D<optimized out>) at ./src=
/emacs.c:2580
        stack_bottom_variable =3D 0x7ffff3e92c60
        old_argc =3D <optimized out>
        no_loadup =3D <optimized out>
        junk =3D 0x0
        dname_arg =3D 0x7fffffffd551 "EMACS-MPS=3Dyes"
        ch_to_dir =3D 0x0
        original_pwd =3D <optimized out>
        dump_mode =3D <optimized out>
        skip_args =3D 1
        temacs =3D 0x0
        attempt_load_pdump =3D <optimized out>
        only_version =3D <optimized out>
        rlim =3D {
          rlim_cur =3D 10022912,
          rlim_max =3D 18446744073709551615
        }
        lc_all =3D <optimized out>
        sockfd =3D <optimized out>
        module_assertions =3D <optimized out>
++set $bt =3D backtrace_top ()
++if backtrace_p ($bt)
+++echo \n

+++echo Lisp Backtrace:\n
Lisp Backtrace:
+++xbacktrace
++++set $bt =3D backtrace_top ()
++++while backtrace_p ($bt)
+++++set $fun =3D backtrace_function ($bt)
+++++xgettype $fun
++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++set $bugfix =3D $fun.i
++++++set $type =3D (enum Lisp_Type) (USE_LSB_TAG ? (EMACS_INT) $bugfix & =
(1 << GCTYPEBITS) - 1 : (EMACS_UINT) $bugfix >> VALBITS)
+++++if $type =3D=3D Lisp_Symbol
++++++xprintsym $fun
+++++++xsymname $fun
++++++++xgetsym $fun
+++++++++xgetptr $fun
++++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++++set $bugfix =3D $fun.i
++++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++++set $ptr =3D ((struct Lisp_Symbol *) ((char *) &lispsym + $ptr))
++++++++set $symname =3D $ptr->u.s.name
+++++++xgetptr $symname
++++++++if (CHECK_LISP_OBJECT_TYPE)
+++++++++set $bugfix =3D $symname.i
++++++++set $ptr =3D (EMACS_INT) $bugfix & VALMASK
+++++++if $ptr !=3D 0
++++++++set $sym_name =3D (struct Lisp_String *) $ptr
++++++++xprintstr $sym_name
+++++++++if (! $arg0)
++++++++++set $data =3D (char *) $sym_name->u.s.data
++++++++++set $strsize =3D ($sym_name->u.s.size_byte < 0) ? ($sym_name->u.=
s.size & ~ARRAY_MARK_FLAG) : $sym_name->u.s.size_byte
++++++++++if $strsize =3D=3D 0
+++++++++++output ($sym_name->u.s.size > 1000) ? 0 : ($data[0])@($strsize)
"redisplay_internal (C function)"++++++printf " (0x%x)\n", backtrace_args =
($bt)
 (0x0)
+++++set $bt =3D backtrace_next ($bt)
+i reg
rax            0x42                66
rbx            0x5555556069a0      93824992962976
rcx            0x0                 0
rdx            0x0                 0
rsi            0x7fffffff          2147483647
rdi            0x6                 6
rbp            0x7fffffffae30      0x7fffffffae30
rsp            0x7fffffffae28      0x7fffffffae28
r8             0x0                 0
r9             0x73                115
r10            0x0                 0
r11            0x202               514
r12            0x5555556716d0      93824993400528
r13            0x7fffc20a5848      140736448845896
r14            0x0                 0
r15            0x6e633             452147
rip            0x5555555b1385      0x5555555b1385 <terminate_due_to_signal=
>
eflags         0x206               [ PF IF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0




Acknowledgement sent to Gregor Zattler <telegraph@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#76091; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Sat, 8 Feb 2025 12:30:02 UTC

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