[gambit-list] Non-REPL Debugging in Gambit
François Magnan
francois.magnan at licef.teluq.uqam.ca
Tue Aug 28 10:07:24 EDT 2007
Thank you both for your answers. Having access to the whole stack
(all frames, even if it is long) would be a good addition to the API.
It would help the development of some kind of stack inspector I will
eventually try to add to the Schemeway plugin for use with Gambit.
Is there also an easy way to start a REPL in a separate terminal when
an exception occurs in some thread. This would help debug Termite
applications a lot.
I also take this opportunity to give all my gratitude to Marc for
your wonderful Gambit-C Scheme System. Without it, I don't know how I
could have done my work for the last three years. Cheers!
Thank you,
Francois
On 28-Aug-07, at 9:47 AM, Marc Feeley wrote:
>
> On 27-Aug-07, at 7:12 PM, Guillaume Germain wrote:
>
>> On 8/27/07, François Magnan <francois.magnan at licef.teluq.uqam.ca>
>> wrote:
>>
>>> Is there an easy way to access the debugging functions of the Gambit
>>> REPL in a programmatic way?
>>> I would like to call (for example) a function that would give me the
>>> equivalent of ",b" and ",e" inside my exception-catcher.
>>
>> Here's a simple example for ##cmd-b :
>>
>> (define (stack-to-string)
>> (##continuation-capture
>> (lambda (k)
>> (call-with-output-string ""
>> (lambda (port)
>> (##cmd-b 0 k port))))))
>
> Here is the set of procedures, defined in lib/_repl.scm, which
> implement the REPL commands ,b ,y ,e and ,i:
>
> (##cmd-b depth cont port)
> (##cmd-y depth cont pinpoint? port)
> (##cmd-e cont port)
> (##cmd-i cont port)
>
> If there is interest in having access to
> the functionality of these procedures I can
> make them easier to use by removing the ## prefix,
> adding type checking, and changing the API. Are
> there any suggestions? For example I could add
> optional parameters to ##cmd-b for "max-head" and
> "max-tail".
>
> Marc
>
More information about the Gambit-list
mailing list