[CM] fn defined in C returns to wrong place

bil at ccrma.Stanford.EDU bil at ccrma.Stanford.EDU
Fri Aug 26 07:28:38 PDT 2022


*error-hook* is only called if there is no catch; it resets the s7 stack
when it returns, so you're back at the top level.  My first thought is
that you need a catch in convert.scm where you do the s7_call.  Maybe
I have the wrong model of what's happening.

The s7 stack can be viewed via (*s7* 'stack); it is independent of the
C stack (I assume that's what you're seeing with backtrace).  I don't
think the GC is the culprit.  s7_show_stack can give an abbreviated
view of the s7 stack from C (you'll need a declaration -- it's not
in s7.h, but it is accessible globally -- I thought of it as a
debugging aid -- (*s7* 'stack) is sometimes very verbose).



More information about the Cmdist mailing list