review (XS) for 7024866: # assert(limit == NULL || limit <= nm->code_end()) failed: in bounds
Igor Veresov
igor.veresov at oracle.com
Fri Mar 4 17:59:38 PST 2011
Looks good.
igor
On 3/4/11 5:42 PM, Tom Rodriguez wrote:
> 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