RFR(S) 8161598,,Kitchensink fails: assert(nm->insts_contains(original_pc)) failed: original PC must be in nmethod/CompiledMethod

dean.long at oracle.com dean.long at oracle.com
Mon Aug 15 18:41:42 UTC 2016


On 8/15/16 11:02 AM, Andrew Haley wrote:

> I've written an AArch64 version of this, but given that the bug is
> secret I can't figure out how to test it properly.
>
> Andrew.
Hi Andrew.  Unfortunately, the test and the code that is calling 
JavaThread::pd_get_top_frame() are all closed.  Does aarch64 have an 
tests that exercise JavaThread::pd_get_top_frame()?  To test, you need 
to suspend a thread, check if the thread state is _thread_in_Java, get 
the context, call pd_get_top_frame(), then try to walk the stack.

Or to get a deterministic way to test, I think you could insert illegal 
instructions in strategic places where the anchor frame is being set up 
(set_last_Java_frame() and C2 CallRuntimeDirect) and then call 
pd_get_top_frame() in the signal handler, try to walk backwards a few 
frames, patch the illegal instruction with a NOP, and return.

dl


More information about the hotspot-runtime-dev mailing list