[foreign-memaccess+abi] RFR: Add stack walk test case that doesn't verify oops

Jorn Vernee jvernee at openjdk.java.net
Fri Jan 29 12:04:01 UTC 2021


On Thu, 28 Jan 2021 18:49:44 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> This is a followup for the earlier quickfix of: https://github.com/openjdk/panama-foreign/pull/417
>> 
>> This adds another test case to TestStackWalk that catches the failing code path.
>> 
>> This re-uses the previously added `WhiteBox::verifyFrames`, and adds a flag to turn off the verification, which triggers the problematic code path. (I've also renamed this to just `walkFrames`, since now we don't always do verification anymore.
>
> src/hotspot/share/prims/whitebox.cpp line 2293:
> 
>> 2291:     tty->print_cr("[WhiteBox::WalkFrames] Walking Frames");
>> 2292:   }
>> 2293:   for (StackFrameStream fst(JavaThread::current(), verify_oops, true); !fst.is_done(); fst.next()) {
> 
> Can you elaborate, please, why `verify_oops` is equivalent to `RegisterMap::_update_map`?

If the register map is not updated, we can't do the call to `frame::verify` below that, which currently only verifies oops in the frame. I thought that the name `verify_oops` would best describe the functionality of the parameter in general, but maybe I've got that backwards... I use it specifically to turn off `RegisterMap::_update_map` after all.

-------------

PR: https://git.openjdk.java.net/panama-foreign/pull/423


More information about the panama-dev mailing list