[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PLEASE: debugging embedded guile code
From: |
Neil Jerram |
Subject: |
Re: PLEASE: debugging embedded guile code |
Date: |
26 Apr 2003 20:30:50 +0100 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 |
>>>>> "Joris" == Joris van der Hoeven <address@hidden> writes:
Joris> On 26 Apr 2003, Neil Jerram wrote:
>>
>> I agree, but I also think that the lazy-catch mechanism is more tricky
>> than it needs to be, especially in C. So I'd like to get the
>> mechanism right first and then document it.
Joris> We now started to use lazy-catch more and more, but we might
Joris> still change that. Can you tell us what you have in mind?
Don't panic; I have nothing in mind yet. Judging from the apparent
difficulty that people have with this area on the mailing list, I
thought this was an issue that we should think about. If it really
isn't an issue, no problem (except that we should improve the docs).
lazy-catch in Scheme is straightforward, but my intuition is that
doing a lazy-catch in C is harder work than should be needed to obtain
error information. My problem is that I don't understand why you'd
ever do it in C instead of Scheme, yet there have been several posts
describing how to do exactly that. Hence my question about why one
needs to do this in C (which I don't think anyone has answered yet).
Joris> I also think that there you might add some scheme routines
Joris> to construct comprehensive error messages from error
Joris> objects. This would allow me to print these messages in a
Joris> popup window or include them in a status buffer. I
Joris> currently print everything to standard output or error...
>>
>> I think I understand, but can you give an example?
Joris> You might for instance provide routines
Joris> (error->message error-obj)
Joris> (error->backtrace error-obj)
Joris> (error->source error-obj)
Joris> (error->file-name error-obj)
Joris> (error->line-number error-obj)
Joris> etc.
Right. With the current organization of things, the location of an
error is described by a stack obejct, so I think all of these but the
first would be stack->X rather than error->X, but I see what you mean.
These raise another C vs. Scheme question, though. These routines are
trivial to implement in Scheme, but wouldn't then be readily available
on the C level. Does that matter? and if so, why?
Regards,
Neil
Re: PLEASE: debugging embedded guile code, Mikael Djurfeldt, 2003/04/28
Re: PLEASE: debugging embedded guile code, Neil Jerram, 2003/04/26