[m-dev.] "--debug" option and Opium-M
Erwan Jahier
Erwan.Jahier at irisa.fr
Mon Oct 11 19:52:38 AEST 1999
Fergus, Tyson or Zoltan probably could give me an hint to where i should look
now.
If a Mercury program is compiled with "--grade asm_fast.gc.tr.debug " (vs
"--trace deep"), executing it within Opium-M provokes a SIGSEGV (and not
within mdb).
Looking at the stack (with gdb), it appears that it is due to the following
loop: "MR_trace -> MR_trace_real -> MR_trace_event -> MR_trace_event_external ->
MR_trace -> ..."
As a matter of fact, problems seems to occur each time a call to a function
that is imported from Mercury occurs. Here is the trace produced by mdb (I
have put a breakpoint on MR_trace_event_external):
(gdb) step
Breakpoint 1, MR_trace_event_external (cmd=0x8347dc8, event_info=0xbfff12e4)
at mercury_trace_external.c:382
382 Code *jumpaddr = NULL;
(gdb) 387 Unsigned seqno = event_info->MR_call_seqno;
(gdb) 388 Unsigned depth = event_info->MR_call_depth;
(gdb) 389 MR_Trace_Port port = event_info->MR_trace_port;
(gdb) 390 const char *path = event_info->MR_event_path;
(gdb) 391 Word *saved_regs = event_info->MR_saved_regs;
(gdb) 400 ML_DI_init_mercury_string(&MR_mmc_options);
(gdb) Breakpoint 1, MR_trace_event_external (cmd=0x8347dc8, event_info=0xbffed9b4)
at mercury_trace_external.c:382
382 Code *jumpaddr = NULL;
i.e., instead of continuing the execution of MR_trace_event_external(), it
loops by calling again MR_trace_event_external().
--
R1.
--------------------------------------------------------------------------
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