[Mono-list] Stability problem under linux MDV 2008 Cooker
Alessandro Vesely
vesely at tana.it
Tue Jul 15 06:44:29 EDT 2008
Petit Eric wrote:
> 2008/7/15 Alessandro Vesely <vesely at tana.it>:
>> Hi Eric,
>>>>
>>>> However, I found out the hard way that setting G_SLICE=debug-blocks is a
>>>> requirement for no-nonsense debugging with mono.
>>>
>>> Hé hé , yu think ishould do that ?
>>
>> If there is a chance that a bug depends on a C written function, absolutely
>> yes.
> Yes i have a managed C program (obexftp), can yu say me if i need to
> compile the C programe with G_SLICE=debug-blocks or in environment or
> when compiling Mono ?
After compiling a managed C (i.e. C#) program one can always make sure
that the compilation is correct by inspecting the assembly. When
running it, [plain, i.e. unmanaged] C code supervises the execution.
In normal C code, releasing a non-allocated memory block results in a
core dump. In mono without debug-blocks, glib blindly accepts any
released memory for later reallocation. That may result in overlapping
variables at some further point during the execution.
> Better , do yu know a link with TODO to do that step by step
running "env G_SLICE=debug-blocks mono my.exe" would suffice for
dismissing an occasional doubt. However, I'd recommend setting "export
G_SLICE=debug-blocks" in a developer's .bashrc. The point is that,
even if memory errors a quite uncommon, one of them is enough for all
bets to be off. That's what managed code is all about.
> it is
> true i really need to see wath happen in the C code, a Valgrind for
> Mono should be very nice
Although mono can be instrumented with Valgrind tools, as mentioned in
http://www.mono-project.com/Debugging, that is likely to cause
performance degradation on a different scale w.r.t. glib internal
checking (noticeable vs. unnoticeable).
Ciao
Ale
More information about the Mono-list
mailing list