[m-dev.] spypoints in external debugger

Erwan Jahier Erwan.Jahier at irisa.fr
Mon Aug 30 19:07:22 AEST 1999

| Hi,
| This question is probably directed to Erwin and Fergus. I'm looking at
| including support for spypoints in the graphical debugger, but the
| external debugger doesn't appear to support it.  It's possible for me to
| check spypoints against events within the graphical debugger, however,
| this presents the obvious communications and processing overheads involved
| with retrieving every event from the external debugger.  

Yes. But there is a primitive in Opium-M that is exactly designed for that
purpose (i.e. reducing the communications overheads): fget/1.

| Looking through 
| the source code it appears that the external debugger could probably 
| support spypoints, which would be more appropriate for my purposes.

Yes. I didn't do that because I thought (and still think) it is unnecessary;
spypoints can easily be implemented in Opium-M with reasonable performances.

| Is it possible to add support for spypoints to the external debugger, and
| how much work would be involved?  And if so, is anyone willing to
| implement it?  I could possibly try it myself, but I'm not confident that
| I could do it with my time constraints, and I've little knowledge of the
| source code.

I can implement spypoints, but you first have to convince me that the current
mechanisms available in Opium-M are not sufficient. Please let me know exactly
what do you want do using spypoints, and I let you how it can (easily ;-) be
done with fget/1.

If it is really spypoints that you want (as a feature of your graphical
debugger), then I suggest you write a "spypoint Opium-M scenario" using fget;
it is quite easy and should be a good exercise for you to understand how
Opium-M is working (have a look at the code in Opium-M/source/step_by_step_M.op
which implements basic features of classical debuggers (except spypoints ;-). 

This scenario would fit to your own needs; let users implement the debbuging
features they need, that's what opium* is all about.

If it is really not efficient enough, then I will implement spypoints using the
existing support of the internal debugger.

R1 (hint, hint, hint for spelling my first name correctly Greg! ;-)

mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au

More information about the developers mailing list