[m-dev.] For review: Stacks dump in the external debugger (round 2)

Fergus Henderson fjh at cs.mu.OZ.AU
Fri Feb 19 08:22:56 AEDT 1999


On 18-Feb-1999, Erwan Jahier <Erwan.Jahier at irisa.fr> wrote:
> | On 16-Feb-1999, Erwan Jahier <Erwan.Jahier at irisa.fr> wrote:
> | > +/*
> | > +** The protocol between the debugged Mercury program and the external debugger
> | > +** is the following: 
> | > +** 1) The debugger sends "stack";
> | > +** 2) For each procedure in the stack that is not generated by the compiler, the
> | > +**    debuggee sends: 
> | > +**	- level(int) (the level of the procedure in the stack)
> | > +**	- detail(unsigned long, unsigned long, unsigned long) (the call event
> | > +**	  number, call sequence number and depth of the goal of the procedure)
> | > +**	- the atom 'pred' or 'func' depending if the procedure is a function 
> | > +**	  or not
> | > +**	- proc('string:string'/long-long) (the name of the procedure)
> | > +**	- det(string) (the determinism of the procedure)
> | > +**	- def_module(string) (the name of the defining module if different from
> | > +**	  the current one)
> | 
> | Does it send def_module(string) if the name of the defining module
> | is the same as the name of the current one?
> | 
> | If not, how does the debugger know when to stop reading from the socket?
> 
> Thanks to the "MR_send_message_to_socket("end_stack");" statement at line 485
> in mercury_trace_external.c

OK, then you need to mention that in the documentation here.

Cheers,
	Fergus.

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "Binaries may die
WWW: <http://www.cs.mu.oz.au/~fjh>  |   but source code lives forever"
PGP: finger fjh at 128.250.37.3        |     -- leaked Microsoft memo.



More information about the developers mailing list