On 17/08/2013 2:51 AM, Staffan Larsen wrote:
This failure happens when compiling with the VS 2012 compiler. The attach code
relies on the order of two methods in the compiled binary and VS 2012 changed
that order. The solution used is the linker flag /ORDER [1] which allows us to
specify the order in which methods are laid out in the binary image. Since the
flag only operates on non-static methods, the methods have been made non-static
and also changed name so that they will not clash with other methods.
webrev: http://cr.openjdk.java.net/~sla/8022071/webrev.01/
The change has been tested with both VS 2010 and VS 2012.
I wonder if simply changing from static to non-static would have been
sufficient? Of course still no guarantee that future versions of the
compiler would preserve the same order in that case; but then what
guarantees do we have that the weird @4 name mangling will remain the same?
Thanks,
David
Thanks,
/Staffan
[1] http://msdn.microsoft.com/en-us/library/vstudio/00kh39zz.aspx