United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6990212 JSR 292 JVMTI MethodEnter hook is not called for JSR 292 bootstrap and target methods
JDK-6990212 : JSR 292 JVMTI MethodEnter hook is not called for JSR 292 bootstrap and target methods

Details
Type:
Bug
Submit Date:
2010-10-07
Status:
Closed
Updated Date:
2013-10-24
Project Name:
JDK
Resolved Date:
2011-09-30
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs20
Fixed Versions:
hs22 (b02)

Related Reports
Backport:
Backport:
Duplicate:
Relates:

Sub Tasks

Description
JVMTI MethodEntry hook is:

- not called for JSR 292 bootstrap method.
- called only once for multiple JSR 292 target method invocations from the same CallSite 

Tested on JDK 7 b112 (hs20-b01).

Please see comments for details.
For b135: MethodEntry is not called for methods called using invokedynamic from compiled code (-Xcomp)

                                    

Comments
EVALUATION

I just reproduced this with -Xcomp.  I think the method handle invoke path is missing the required interp_only_mode checks to avoid jumping into compiled code.
                                     
2011-06-30
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/341a57af9b0a
                                     
2011-07-16
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/341a57af9b0a
                                     
2011-07-21
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/341a57af9b0a
                                     
2011-07-23
EVALUATION

6990212: JSR 292 JVMTI MethodEnter hook is not called for JSR 292 bootstrap and target methods
Summary: check for single stepping when dispatching invokes from method handles
Reviewed-by: coleenp, twisti, kvn, dsamersoff

Single stepping and method entry events requires some machinery in the
interpreter to make sure that we never jump into compiled code but the
method handle invoke path doesn't have that code.  The fix is to
reintroduce the required check and dispatch to the interpreted entry
in that case.  Tested with failing test cases from report plus a
simple test case to exercise the MH raiseException path since I had to
rewrite the arugment passing there.
                                     
2011-07-26
EVALUATION

See main CR
                                     
2011-09-12



Hardware and Software, Engineered to Work Together