Wed 12 Oct 2011 07:18:44 PM UTC, comment #2:
Hi, Tobias!
I have no experience whatsoever with GUD, and don't know offhand how integration in Geiser could work.
Usually, debuggers take control of the interface, limiting the kind of evaluations/actions one can perform, and this is not really the case with Guile's debug mode: it's just a REPL. So i was thinking more of providing some shortcuts in the REPL for invoking ,-commands related with debugging, and perhaps one or two in geiser-mode to set breakpoints in source files---i've played very little with guile's debugger, but i think that's possible.
In that model, the debugging support would be part of the REPL mode and perhaps one doesn't even need a dedicated minor mode (but it's possible to provide one: geiser is already tracking when guile enters the debug repl).
If we can hook GUD in there somehow, and you think it can add value to this model, i'm all for it, specially if you can help!
(BTW, if you're in the mailing list, please feel free to answer there, so that we can continue the discussion using a better tool than this awful bug tracker :D)
|
Fri 07 Oct 2011 02:33:58 PM UTC, comment #1:
Hello,
Thank you for Geiser -- it's really nice!
I would also like to see the debugging support somewhat extended. In particular, I wonder if it would be possible to hook into GUD so that it's possible to set breakpoints in the source buffers and also seeing the current location reflected in source buffer fringe (the conventional right arrow) when stepping.
I have some experience inplementing GUD support for external debuggers so I may be able to help out here, but due to the nature of Geiser (and Lisp environments in general) things look a bit different compared to interacting with an "external" debugger (such as gdb/jdb etc). In particular, I guess you want to have GUD as some kind of minor mode inside the REPL mode, as opposed to as a major mode for a separate dedicated buffer?
Lastly, I think it would be cool if source location for code interactively evaluated from a buffer would be tracked. Right now the source locations in the backtrace (at least in the Guile case) refer to stdin-something. I know this is how it's implemented but from a user point of view I think it makes sense (and should be possible) to keep track of where interactively evaluated code came from. I.e. when you do C-M-x or the like, the source code locations (which Geiser knows) would be communicated to the underlying Scheme (may require dedicated support in the implementation?) and then used when printing out backtraces and the like.
As I said, if you think the above makes sense and is doable, I can probably help out.
Cheers,
Tobias Gerdin (tgerdin (at) the-google-mail-service . com)
|