RFR: 8265218: trace_method_handle_stub fails to find calling frame on x86

Vladimir Ivanov vlivanov at openjdk.java.net
Fri Apr 16 23:09:40 UTC 2021


`trace_method_handle_stub` on x86 tries to dump the frame which initiated the tracing, but fails to find the proper frame when it is the immediate caller.  

The problem is `os::current_frame()` returns the caller (instead of the current frame as the name suggests) and then `os::get_sender_for_C_frame()` steps over one more frame. So, if there are no intermediate frames present, it steps over the desired frame.

Proposed fix is to start the search from the frame reported by `os::current_frame()`.

Testing:
- [x] failing test
- [x] hs-precheckin-comp,hs-tier1,hs-tier2 w/ `-Xlog:methodhandles=trace`

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

Commit messages:
 - Merge branch 'master' into 8265218.mh_logging
 - Remove from test/hotspot/jtreg/ProblemList-Xcomp.txt
 - 8265218: trace_method_handle_stub fails to find calling frame on x86

Changes: https://git.openjdk.java.net/jdk/pull/3554/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=3554&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8265218
  Stats: 7 lines in 2 files changed: 2 ins; 3 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3554.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3554/head:pull/3554

PR: https://git.openjdk.java.net/jdk/pull/3554


More information about the hotspot-runtime-dev mailing list