On Tue, Oct 9, 2012 at 12:40 PM, Kerrick Staley <[email protected]>wrote:
> On Thu, Oct 4, 2012 at 1:40 PM, Tom Hughes <[email protected]> wrote: > > The "mono_jit_runtime_invoke" is a big clue - those will be run time > > generated code that the JIT has created so they won't be in the symbol > table. > > Ah, that makes a lot more sense than my theory. > > On Thu, Oct 4, 2012 at 1:50 PM, Philippe Waroquiers > <[email protected]> wrote: > > If that is effectively the case, have you given > > the argument --smc-check=all (or =all-non-file) ? > > One of these two is for sure mandatory in a JITted env (on x86/amd64 > > at least). > > Yes, I'm passing this argument. > > > Otherwise, you might always try using gdb/vgdb to connect to the process > > under Valgrind when the error is raised : gdb might maybe help > > to see what is going on. > > You mean I should use --db-attach=yes (as Greg suggested)? > > On Thu, Oct 4, 2012 at 5:38 PM, Gregory Junker <[email protected]> wrote: > > Well, for starters, you can look at what line 5791 in mini.c is doing: > > > > https://github.com/mono/mono/blob/master/mono/mini/mini.c > > Not everyone runs master :) > > https://github.com/mono/mono/blob/mono-2-10-9/mono/mini/mini.c#L5791 > > It looks like the line is calling runtime_invoke, which means it's > running JIT code (as others suggested). > > > One thing you can do with Valgrind is have it break to debugger on > errors, > > by supplying the --attach-db=yes option. If you still can't get function > > names in GDB, you may be able to get module names (the addresses look to > be > > in different modules than the Mono runtime), and from there you might > have > > to get your hands dirty with nm or objdump. > > OK, I'll try seeing what I can turn up with gdb. Initial results > aren't promising; when I try the disassemble command at the site of > the error, it tells me "No function contains program counter for > selected frame". > > On Fri, Oct 5, 2012 at 1:11 PM, Rodrigo Kumpera <[email protected]> wrote: > > Mono features a JIT that dynamically generates code and those unknown > frames > > are precisely that. > > Look at the man page to see how to enable valgrind integration to show > > actual names instead. > > Per the manpage, I tried setting MONO_XDEBUG=true and passing > --debug=gdb to Mono; neither caused the ???'s to be replaced with > useful information. Mono generated an xdb.il and an xdb.s file when I > did this, but it doesn't seem like GDB can use these files. I'm going > to see if I can get anywhere with the --aot flag (enabling > ahead-of-time compilation). > > I also noticed this blog post describing Valgrind integration for Mono: > > http://tirania.org/blog/archive/2007/Jun-29.html Valgrind support does exist in mono for a few years, you just need to make sure that your mono build has detected and enabled it correctly.
_______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
