|
From: Philippe W. <phi...@sk...> - 2011-07-28 20:53:43
|
> Above the code there is this comment: > > /* Note: re "- 1 * sizeof(UWord)", need to take account of the > fact that we are prodding at & ((UWord*)fp)[1] and so need to > adjust the limit check accordingly. Omitting this has been > observed to cause segfaults on rare occasions. */ > > so it seems Go binaries are triggering this "rare occasion". > > Any thoughts on how to proceed would be appreciated. I do not know much about how Valgrind computes the stack trace of the simulated cpu, so the below suggestion might be useless but it does not cost much to suggest :). So, in 3.7.0 svn, Valgrind has an embedded gdbserver. To see what goes wrong in the stack trace of the simulated cpu, you might try to compare how the Valgrind core computes a backtrace ( the one that fails) to the way gdb computes a backtrace (through the Valgrind gdbserver) to the way gdb computes a backtrace when debugging natively 6.out. (you will have for the last two to put a break just before the 6.out instruction which causes the problematic stacktrace). Philippe |