[m-dev.] hang-up in C-code in asm_fast.gc.prof
Ondrej Bojar
bojar at csse.unimelb.edu.au
Thu May 24 15:56:50 AEST 2007
Hi, everyone.
I'm not quite confident to call this a bug, so I'm posting it rather to merc-devel.
I compiled my code using rotd-2007-05-20. The code runs fine in asm_fast.gc but
hangs up (I previously thought it 'loops ad infinitum') if compiled in
asm_fast.gc.prof.
What actually happens is that my mercury code calls come C-code and the C-code
tries to remove a temporary file using a system call. (Don't ask me why simple
unlink is not used instead, it's not my code.)
Here is a gdb trace, unfortunately I still don't have the runtime compiled with
debugging information.
If I understand it correctly, a profiler tick happens at the call to
system(cmd). After some further steps within the profiler, a do_system in libc
is called and hangs forever.
Breakpoint 1, removefile (filePath=@0x7fff43730500) at util.cpp:51
51 sprintf(cmd,"rm %s",filePath.c_str());
Current language: auto; currently c++
(gdb) print filePath
$1 = (const string &) @0x7fff43730500: {static npos = 18446744073709551615,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> =
{<No data fields>}, <No data fields>}, _M_p = 0x6ca7e078 "/tmp/dskbuff--IpMvxN"}}
(gdb) step
52 system(cmd);
(gdb) step
prof_handle_tick (signum=27) at mercury_prof.c:199
199 mercury_prof.c: No such file or directory.
in mercury_prof.c
Current language: auto; currently c
(gdb) step
207 in mercury_prof.c
(gdb) step
213 in mercury_prof.c
(gdb) finish
Run till exit from #0 prof_handle_tick (signum=27) at mercury_prof.c:223
<signal handler called>
(gdb) step
Single stepping until exit from function __restore_rt,
which has no line number information.
0x00000037a6d3ac50 in system () from /lib64/libc.so.6
(gdb) step
Single stepping until exit from function system,
which has no line number information.
0x00000037a6d3a7f0 in do_system () from /lib64/libc.so.6
(gdb) step
Single stepping until exit from function do_system,
which has no line number information.
<hangs forever>
Any ideas whose fault is this? Any secure means to prevent that?
Thanks, Ondrej.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at csse.unimelb.edu.au
Administrative Queries: owner-mercury-developers at csse.unimelb.edu.au
Subscriptions: mercury-developers-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the developers
mailing list