Re: Follow-up to earlier question

Douglas Katzman via Sbcl-help <[email protected]> Fri, 27 Mar 2026 11:01:15 -0400
Newsgroups gmane.lisp.steel-bank.general
Message-ID <CAOrNaszpgEirFigAa2oo4dodm+Y35=h7WybCd07+3PPvg22B9Q@mail.gmail.com>
--===============1709342392016517901==
Content-Type: multipart/alternative; boundary="00000000000080b21b064e02c609"

--00000000000080b21b064e02c609
Content-Type: text/plain; charset="UTF-8"

In your situation, don't use Lisp to backtrace.  Do it from 'ldb' instead
I made a recursive function FOO which just binds a lot of specials as an
example -

Binding stack guard page temporarily disabled: proceed with caution

debugger invoked on a SB-KERNEL::BINDING-STACK-EXHAUSTED in thread
#<THREAD tid=259 "main thread" RUNNING {1200030003}>:
  Binding stack exhausted.

PROCEED WITH CAUTION.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

(SB-KERNEL::BINDING-STACK-EXHAUSTED-ERROR)
0] *(sb-vm:ldb-monitor)*
Welcome to LDB, a low-level debugger for the Lisp runtime environment.
ldb> *backtrace*
Backtrace:
   0: fp=0xba4f2b0 pc=0xb7fb35a Foreign function backtrace_cmd
   1: fp=0xba4f410 pc=0xb7fafdc Foreign function ldb_monitor
   2: fp=0xba4f428 pc=0xb8001a3de5 SB-VM::LDB-MONITOR
   3: fp=0xba4f488 pc=0xb8007729dc SB-EXT::INTERACTIVE-EVAL
   4: fp=0xba4f4b0 pc=0xb80089bc74 SB-DEBUG::DEBUG-EVAL-PRINT
   5: fp=0xba4f650 pc=0xb80089b800 SB-DEBUG::DEBUG-LOOP-FUN
   6: fp=0xba4f668 pc=0xb80089af5a SB-DEBUG::INTERNAL-DEBUG
   7: fp=0xba4f6e8 pc=0xb800899c24 (FLET DEBUG :IN
SB-DEBUG::%INVOKE-DEBUGGER)
   8: fp=0xba4f768 pc=0xb8008996cc SB-DEBUG::%INVOKE-DEBUGGER
   9: fp=0xba4f7d8 pc=0xb8008985fd (LAMBDA () :IN
SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX)
  10: fp=0xba4f7f0 pc=0xb80006db68 SB-IMPL::CALL-WITH-SANE-IO-SYNTAX
  11: fp=0xba4f898 pc=0xb8008980da (FLET "THUNK" :IN
SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX)
  12: fp=0xba4f8b0 pc=0xb8007cb9ef SB-IMPL::%WITH-STANDARD-IO-SYNTAX
  13: fp=0xba4f960 pc=0xb800898013 SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX
  14: fp=0xba4f978 pc=0xb800898eeb INVOKE-DEBUGGER
  15: fp=0xba4f9a8 pc=0xb80000e066 ERROR
  16: fp=0xba4f9b8 pc=0xb800866086 SB-KERNEL::BINDING-STACK-EXHAUSTED-ERROR
  17: fp=0xba4f9f0 pc=0xb82726e Foreign function call_into_lisp_
  18: fp=0xba4fa78 pc=0xb827320 Foreign function post_signal_tramp
  19: fp=0xba4faa0 pc=0xb800c6c0e5 CL-USER::FOO
  20: fp=0xba4fac8 pc=0xb800c6c1ac CL-USER::FOO

--00000000000080b21b064e02c609
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">In your situation, don&#39;t use Lisp to backtrace.=C2=A0 =
Do it from &#39;ldb&#39; instead<div>I made a recursive function FOO which =
just binds a lot of specials as an example -</div><div><br></div><div><font=
 face=3D"monospace">Binding stack guard page temporarily disabled: proceed =
with caution<br><br>debugger invoked on a SB-KERNEL::BINDING-STACK-EXHAUSTE=
D in thread<br>#&lt;THREAD tid=3D259 &quot;main thread&quot; RUNNING {12000=
30003}&gt;:<br>=C2=A0 Binding stack exhausted.<br><br>PROCEED WITH CAUTION.=
<br><br>Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.<br=
><br>restarts (invokable by number or by possibly-abbreviated name):<br>=C2=
=A0 0: [ABORT] Exit debugger, returning to top level.<br><br>(SB-KERNEL::BI=
NDING-STACK-EXHAUSTED-ERROR)<br>0] <b>(sb-vm:ldb-monitor)</b><br>Welcome to=
 LDB, a low-level debugger for the Lisp runtime environment.<br>ldb&gt; <b>=
backtrace</b><br>Backtrace:<br>=C2=A0 =C2=A00: fp=3D0xba4f2b0 pc=3D0xb7fb35=
a Foreign function backtrace_cmd<br>=C2=A0 =C2=A01: fp=3D0xba4f410 pc=3D0xb=
7fafdc Foreign function ldb_monitor<br>=C2=A0 =C2=A02: fp=3D0xba4f428 pc=3D=
0xb8001a3de5 SB-VM::LDB-MONITOR<br>=C2=A0 =C2=A03: fp=3D0xba4f488 pc=3D0xb8=
007729dc SB-EXT::INTERACTIVE-EVAL<br>=C2=A0 =C2=A04: fp=3D0xba4f4b0 pc=3D0x=
b80089bc74 SB-DEBUG::DEBUG-EVAL-PRINT<br>=C2=A0 =C2=A05: fp=3D0xba4f650 pc=
=3D0xb80089b800 SB-DEBUG::DEBUG-LOOP-FUN<br>=C2=A0 =C2=A06: fp=3D0xba4f668 =
pc=3D0xb80089af5a SB-DEBUG::INTERNAL-DEBUG<br>=C2=A0 =C2=A07: fp=3D0xba4f6e=
8 pc=3D0xb800899c24 (FLET DEBUG :IN SB-DEBUG::%INVOKE-DEBUGGER)<br>=C2=A0 =
=C2=A08: fp=3D0xba4f768 pc=3D0xb8008996cc SB-DEBUG::%INVOKE-DEBUGGER<br>=C2=
=A0 =C2=A09: fp=3D0xba4f7d8 pc=3D0xb8008985fd (LAMBDA () :IN SB-DEBUG::FUNC=
ALL-WITH-DEBUG-IO-SYNTAX)<br>=C2=A0 10: fp=3D0xba4f7f0 pc=3D0xb80006db68 SB=
-IMPL::CALL-WITH-SANE-IO-SYNTAX<br>=C2=A0 11: fp=3D0xba4f898 pc=3D0xb800898=
0da (FLET &quot;THUNK&quot; :IN SB-DEBUG::FUNCALL-WITH-DEBUG-IO-SYNTAX)<br>=
=C2=A0 12: fp=3D0xba4f8b0 pc=3D0xb8007cb9ef SB-IMPL::%WITH-STANDARD-IO-SYNT=
AX<br>=C2=A0 13: fp=3D0xba4f960 pc=3D0xb800898013 SB-DEBUG::FUNCALL-WITH-DE=
BUG-IO-SYNTAX<br>=C2=A0 14: fp=3D0xba4f978 pc=3D0xb800898eeb INVOKE-DEBUGGE=
R<br>=C2=A0 15: fp=3D0xba4f9a8 pc=3D0xb80000e066 ERROR<br>=C2=A0 16: fp=3D0=
xba4f9b8 pc=3D0xb800866086 SB-KERNEL::BINDING-STACK-EXHAUSTED-ERROR<br>=C2=
=A0 17: fp=3D0xba4f9f0 pc=3D0xb82726e Foreign function call_into_lisp_<br>=
=C2=A0 18: fp=3D0xba4fa78 pc=3D0xb827320 Foreign function post_signal_tramp=
<br>=C2=A0 19: fp=3D0xba4faa0 pc=3D0xb800c6c0e5 CL-USER::FOO<br>=C2=A0 20: =
fp=3D0xba4fac8 pc=3D0xb800c6c1ac CL-USER::FOO</font><br></div></div>

--00000000000080b21b064e02c609--


--===============1709342392016517901==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============1709342392016517901==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Sbcl-help mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sbcl-help

--===============1709342392016517901==--