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