Re: Follow-up to earlier question
Robert Goldman <[email protected]> Fri, 27 Mar 2026 10:35:07 -0500
| Newsgroups | gmane.lisp.steel-bank.general |
|---|---|
| Message-ID | <[email protected]> |
--===============4952601099343251740==
Content-Type: multipart/alternative;
boundary="=_MailMate_AF3E8E01-578D-4C85-9ABA-6B13902DF56D_="
--=_MailMate_AF3E8E01-578D-4C85-9ABA-6B13902DF56D_=
Content-Type: text/plain; format=flowed
Thank you very much!
Meanwhile, I have used the old school printf method to find the problem.
It's actually occurring in `pprint`-ing a tree to a file.
This is something that _is_ recursive, but not _that_ deep (as witness
the successes on other lisp implementations). But `pprint` involves a
*lot* of dynamic variables. Is that likely my problem here?
Thanks for any advice
On 27 Mar 2026, at 10:01, Douglas Katzman wrote:
> 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
--=_MailMate_AF3E8E01-578D-4C85-9ABA-6B13902DF56D_=
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE html>
<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/xhtml; charset=3Dutf-8"=
>
</head>
<body><div style=3D"font-family: sans-serif;"><div class=3D"markdown" sty=
le=3D"white-space: normal;">
<p dir=3D"auto">Thank you very much!</p>
<p dir=3D"auto">Meanwhile, I have used the old school printf method to fi=
nd the problem. It's actually occurring in <code style=3D"margin: 0 0; p=
adding: 0 0.25em; border-radius: 3px; background-color: #F7F7F7;">pprint<=
/code>-ing a tree to a file.</p>
<p dir=3D"auto">This is something that <em>is</em> recursive, but not <em=
>that</em> deep (as witness the successes on other lisp implementations).=
But <code style=3D"margin: 0 0; padding: 0 0.25em; border-radius: 3px; =
background-color: #F7F7F7;">pprint</code> involves a <em>lot</em> of dyna=
mic variables. Is that likely my problem here?</p>
<p dir=3D"auto">Thanks for any advice</p>
<p dir=3D"auto">On 27 Mar 2026, at 10:01, Douglas Katzman wrote:</p>
</div><blockquote class=3D"embedded" style=3D"margin: 0 0 5px; padding-le=
ft: 5px; border-left: 2px solid #777777; color: #777777;"><div id=3D"0C0D=
68C3-3BDD-46CC-9B50-51FFB9DEA1EC">
<div dir=3D"ltr">In your situation, don't use Lisp to backtrace. Do=
it from 'ldb' instead
<div>I made a recursive function FOO which just binds a lot of specials a=
s an example -</div>
<div><br></div>
<div><font face=3D"monospace">Binding stack guard page temporarily disabl=
ed: proceed with caution<br>
<br>
debugger invoked on a SB-KERNEL::BINDING-STACK-EXHAUSTED in thread<br>
#<THREAD tid=3D259 "main thread" RUNNING {1200030003}>:<br>
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>
0: [ABORT] Exit debugger, returning to top level.<br>
<br>
(SB-KERNEL::BINDING-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> <b>backtrace</b><br>
Backtrace:<br>
0: fp=3D0xba4f2b0 pc=3D0xb7fb35a Foreign function backtrace_=
cmd<br>
1: fp=3D0xba4f410 pc=3D0xb7fafdc Foreign function ldb_monito=
r<br>
2: fp=3D0xba4f428 pc=3D0xb8001a3de5 SB-VM::LDB-MONITOR<br>
3: fp=3D0xba4f488 pc=3D0xb8007729dc SB-EXT::INTERACTIVE-EVAL=
<br>
4: fp=3D0xba4f4b0 pc=3D0xb80089bc74 SB-DEBUG::DEBUG-EVAL-PRI=
NT<br>
5: fp=3D0xba4f650 pc=3D0xb80089b800 SB-DEBUG::DEBUG-LOOP-FUN=
<br>
6: fp=3D0xba4f668 pc=3D0xb80089af5a SB-DEBUG::INTERNAL-DEBUG=
<br>
7: fp=3D0xba4f6e8 pc=3D0xb800899c24 (FLET DEBUG :IN SB-DEBUG=
::%INVOKE-DEBUGGER)<br>
8: fp=3D0xba4f768 pc=3D0xb8008996cc SB-DEBUG::%INVOKE-DEBUGG=
ER<br>
9: fp=3D0xba4f7d8 pc=3D0xb8008985fd (LAMBDA () :IN SB-DEBUG:=
:FUNCALL-WITH-DEBUG-IO-SYNTAX)<br>
10: fp=3D0xba4f7f0 pc=3D0xb80006db68 SB-IMPL::CALL-WITH-SANE-IO-SY=
NTAX<br>
11: fp=3D0xba4f898 pc=3D0xb8008980da (FLET "THUNK" :IN SB-DEBUG::F=
UNCALL-WITH-DEBUG-IO-SYNTAX)<br>
12: fp=3D0xba4f8b0 pc=3D0xb8007cb9ef SB-IMPL::%WITH-STANDARD-IO-SY=
NTAX<br>
13: fp=3D0xba4f960 pc=3D0xb800898013 SB-DEBUG::FUNCALL-WITH-DEBUG-=
IO-SYNTAX<br>
14: fp=3D0xba4f978 pc=3D0xb800898eeb INVOKE-DEBUGGER<br>
15: fp=3D0xba4f9a8 pc=3D0xb80000e066 ERROR<br>
16: fp=3D0xba4f9b8 pc=3D0xb800866086 SB-KERNEL::BINDING-STACK-EXHA=
USTED-ERROR<br>
17: fp=3D0xba4f9f0 pc=3D0xb82726e Foreign function call_into_lisp_=
<br>
18: fp=3D0xba4fa78 pc=3D0xb827320 Foreign function post_signal_tra=
mp<br>
19: fp=3D0xba4faa0 pc=3D0xb800c6c0e5 CL-USER::FOO<br>
20: fp=3D0xba4fac8 pc=3D0xb800c6c1ac CL-USER::FOO</font><br></div>=
</div></div></blockquote>
<div class=3D"markdown" style=3D"white-space: normal;">
</div>
</div>
</body>
</html>
--=_MailMate_AF3E8E01-578D-4C85-9ABA-6B13902DF56D_=--
--===============4952601099343251740==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============4952601099343251740==
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
--===============4952601099343251740==--