On Tue, 10 Mar 2026 19:09:14 GMT, Coleen Phillimore <[email protected]> wrote:
> Please review this change to fix GenerateOopMap to not report an unreachable
> bytecode for async exception handling and for the first bytecode in an
> exception catch clause. The first change will generate a safepoint entry
> that doesn't allow async exceptions for bytecodes that cannot trap. The
> second change creates an exception edge for the first bytecode in an
> exception catch clause whether it can trap or not.
> This also adds a GenerateOopMapALot at safeopints to test interpreter oopmap
> generation. Tested JCKs with this option.
> Thanks to @tkrodriguez for the kill003 test.
> Also tested tier1-8.
src/hotspot/share/oops/generateOopMap.cpp line 1174:
> 1172: }
> 1173:
> 1174: void GenerateOopMap::do_exception_edge(BytecodeStream* itr) {
the declaration ordering here is making the diff really hard to read. I assume
you didn't change do_exception_edge but can't easily tell. Maybe move
exception_can_trap after do_exception_edge?
test/hotspot/jtreg/vmTestbase/nsk/jdb/kill/kill003/kill003.java line 87:
> 85: }
> 86:
> 87: reply = jdb.receiveReplyForWithMessageWait(JdbCommand.kill +
> threads[0] + " " + DEBUGGEE_EXCEPTION,
a comment explaining these steps wouldn't hurt. Something like "execution is
now at a bytecode which isn't expecting to handle an exception so throw an
async exception at it to make sure it's gets handled without crashing."
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/30171#discussion_r2914238783
PR Review Comment: https://git.openjdk.org/jdk/pull/30171#discussion_r2914256239