[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