[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How do people debug their guile code?

From: Zelphir Kaltstahl
Subject: Re: How do people debug their guile code?
Date: Tue, 8 Sep 2020 22:15:44 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Icedove/68.10.0

Hi Fredrik!

On 08.09.20 19:42, Fredrik Salomonsson wrote:
> Hi again,
> I recently asked about something similar but more Emacs specific in the
> thread "Debug setup in Emacs". But it seems there are some more work to
> be done to get it properly hooked up with Emacs' GUD. I asked a follow
> up question how people debug their code and got as suggestion that it
> might be better to create a separate thread for it.
> So here it is.
> I'm fairly new with guile (hence why I ask about this). My workflow (in
> other languages) is usually to write tests, then when something goes
> wrong I hook up a debugger and step through the code.
> For guile I've been just writing tests and when something goes wrong I
> sprinkle (format #t ...) and re-run the tests. I haven't dabbled that
> much in running the REPL as I haven't figured out a good way of setting
> up the same environment as when I run the tests (using guile-hall).

I've not used guile-hall yet, nor tested with it. However, what I do to
reproduce the same environment as I have in srfi-64 unit test, but
inside the REPL is the following:

1. start the Guile REPL with `guile -L <dir where my module is>`
2. run `(use-modules (<my module name>))`
3. use procedures defined inside the module
4. copy and paste changed or new definitions from the code
5. try out the definitions and if something goes wrong fix it and go
back to step 4 again

If running M-x run-guile or M-x run-geiser from Emacs, one might need to
change the %load-path of Guile. This can be done with `(add-to-load-path
<string path to dir containing my module>)` for example. Then one can
proceed as described above again.

Not sure if any of this is new to you, but I guessed it would be good to
put it out there.

> What I gathered from the "Debug setup in Emacs" thread. Is to sprinkle
> print out statements using the "format" or "simple-format" procedure.
> Use the "pk" procedure.
> Use the REPL if the setup is easy enough, combined with the use of
> trace.
> And to write tests.
> So I'm curious if there are other workflows/steps people use/take?
> Thanks


reply via email to

[Prev in Thread] Current Thread [Next in Thread]