review (XS) for 7024866: # assert(limit == NULL || limit <= nm->code_end()) failed: in bounds
Tom Rodriguez
tom.rodriguez at oracle.com
Fri Mar 4 17:42:59 PST 2011
http://cr.openjdk.java.net/~never/7024866
7024866: # assert(limit == NULL || limit <= nm->code_end()) failed: in bounds
Reviewed-by:
This appears to be a long standing issue that for some reason we never
tripped across. If an address appears in the disassembly we check to
see if it has relocInfo so we can print out the actual value. In this
case a jmpq is right at the end of the code and it's encoded in a
short fashion. The code that attempts to look up the oop does this:
oop nmethod::embeddedOop_at(u_char* p) {
RelocIterator iter(this, p, p + oopSize);
and in this case p + oopSize is greater than code_end. The fix is use
p + 1 as the end since we're really looking for a reloc at p. + 1 is
the normal idiom for this in other places. Tested with -Xcomp
-XX:+PrintNMethods which showed the failure previously
More information about the hotspot-compiler-dev
mailing list