From: Philippe W. <phi...@sk...> - 2012-10-09 21:02:15
|
On Tue, 2012-10-09 at 11:40 -0500, Kerrick Staley wrote: > > 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)? Since Valgrind 3.7.0, Valgrind contains an embedded gdbserver, to which you connect from gdb using vgdb as a relay application. The advantages of gdb/vgdb compared to --db-attach is that you get all the usual gdb commands (e.g. breakpoints, continue, jump, inferior function calls, ...) + interactive calls of Valgrind functionality (e.g. search for memleaks e.g. when a breakpoint is reached). vgdb also allows to look at a multi-threaded application, allows inferior function calls, etc. You can also start to debug your application under Valgrind from the beginning (so, before an error has been reported). To use it, give argument --vgdb-error=0 to Valgrind, and follow the instructions to connect your gdb using vgdb. Now, not clear this will help you a lot :(. Maybe there is a function in the mono environment to map a "JITted program counter" to a source line ? Then you could call it from gdb/vgdb to translate these ??? addresses to the source lines that was JITed to these instructions. Philippe |