|
From: | felix |
Subject: | Re: [Chicken-users] Debuggery |
Date: | Wed, 17 Mar 2004 22:01:18 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 |
Peter Keller wrote:
On Wed, Mar 17, 2004 at 09:12:52PM +0100, felix wrote:Agreed. The problem is that there is often very little information availableat runtime, partly because I wanted to keep too much overhead out of compiledcode and partly because I simply didn't show much forethought. I'm open to suggestions, of course.I've spoken quite a long time with Felix about fixing Chicken to allow debugging of the native binaries at runtime by redoing some of the code translation a little bit to create explicit stack frames that contain debugging information in them. But I unfortunately don't have much time to invest in it currently (and for the next several months at least). If someone would like to help me finish the design for it so it can be presented to felix for his final judgement on the method, I would be very appreciative. I don't have much formally written up, but I can dig up my conversations with Felix and put something together if someone is seriously willing to take a look at it.
[Oops, I just sent my reply to Michele, mentioning your ideas] Hi, Peter! A full native code debugger would be HEAVEN. No doubt about it. But changing the compiler and runtime-system so completely is currently not an option, I'm afraid. The very fact that we can use standard C call-frames makes the Cheney-on-the-MTA approach so elegant (and I believe efficient as well). Perhaps an extra argument per call that contains the debug-info? Or a global variable? Currently we have C_trace(), which could perhaps be extended to add extra information to the global trace-ring... Portability is an issue as well. To seamlessly debug Scheme and C, one probably has to write something on top of gdb, or even write a low-level debugger from scratch (shudder!). I have absolutely *no* idea how such stuff is done, and (naturally) it wouldn't work on Windoze (which is not a big issue, but unfortunate). cheers, felix
[Prev in Thread] | Current Thread | [Next in Thread] |