On 27-Aug-07, at 7:12 PM, Guillaume Germain wrote:
On 8/27/07, François Magnan francois.magnan@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