1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-17 17:20:29 +02:00

More robust low-level frame printer

* libguile/frames.c (scm_i_frame_print): Print using
  frame-procedure-name, not frame-procedure.
This commit is contained in:
Andy Wingo 2015-11-27 12:31:16 +01:00
parent 029af6f68a
commit 9a8c2995ae

View file

@ -43,9 +43,17 @@ scm_i_frame_print (SCM frame, SCM port, scm_print_state *pstate)
{ {
scm_puts_unlocked ("#<frame ", port); scm_puts_unlocked ("#<frame ", port);
scm_uintprint (SCM_UNPACK (frame), 16, port); scm_uintprint (SCM_UNPACK (frame), 16, port);
if (scm_module_system_booted_p)
{
SCM name = scm_frame_procedure_name (frame);
if (scm_is_true (name))
{
scm_putc_unlocked (' ', port); scm_putc_unlocked (' ', port);
scm_write (scm_frame_procedure (frame), port); scm_write (name, port);
/* don't write args, they can get us into trouble. */ }
}
/* Don't write args, they can be ridiculously long. */
scm_puts_unlocked (">", port); scm_puts_unlocked (">", port);
} }