[Mono-list] Addresses marked as ??? in Valgrind stack trace

Kerrick Staley mail at kerrickstaley.com
Sat Oct 13 03:24:42 UTC 2012


Miraculously, just as all hope seemed lost, I discovered that
ahead-of-time indeed causes a crash, but before the crash a shared
object file is written containing the compiled code. The presence of
this shared object file apparently causes function call information to
appear in stacktraces (when using just-in-time).

Here's a question more for the Mono people: before any of these
crashes, I get some errors in Valgrind, all of them with the same
message:

==27672== Conditional jump or move depends on uninitialised value(s)
==27672==    at 0x81D736F: conservatively_pin_objects_from (sgen-gc.c:2036)

In GDB, this is the first frame of the corresponding backtrace:

#0  0x081d736f in conservatively_pin_objects_from (start=0xbec83a20,
end=<value optimized out>, start_nursery=0x4800000,
end_nursery=0x4c00000, pin_type=0) at sgen-gc.c:2036

This message is printed 4 times: twice for line 2016, and twice for
line 2036 (all at different instruction addresses). All errors are
apparently from the same invocation (same arguments). The code is
here:

https://github.com/mono/mono/blob/mono-2-10-9/mono/metadata/sgen-gc.c#L2016

I've been assuming that this isn't a bug but rather is is the result
of an omission in Mono's Valgrind suppression file. I'm not entirely
sure, though; could this error ultimately be causing the crash?

Also, thanks Phillippe for the info about --vgdb-error=0; I tried it
and it worked, but I haven't had a chance to delve into the additional
functionality vgdb provides.

- Kerrick


More information about the Mono-list mailing list