-
Bug
-
Resolution: Fixed
-
P3
-
hs20, 6
-
b128
-
generic
-
generic
-
Not verified
Several jdi event requests provide method addInstanceFilter(ObjectReference instance) which should restrict the events generated by this request to those in which the currently executing instance ("this") is the object specified. But if events occur in native method this filter doesn't affect such events.
Attached test try use instance filter for ExceptionRequest, MonitorContendedEnterRequest, MonitorContendedEnteredRequest. 10 objects in debuggee VM generate events in native method, debugger expect events only from one of them, but receive events generated by all objects.
Test output:
Breakpoint
Initialize requests
Requests initialized
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Breakpoint
Received event: VMDeathEvent
Received event: VMDisconnectEvent
Total events:
Enter events: 10
Entered events: 10
Exception events: 10
Error: enter events != 1 actually: 10
Error: entered events != 1 actually: 10
Error: exception events != 1 actually: 10
TEST FAIL
Attached test try use instance filter for ExceptionRequest, MonitorContendedEnterRequest, MonitorContendedEnteredRequest. 10 objects in debuggee VM generate events in native method, debugger expect events only from one of them, but receive events generated by all objects.
Test output:
Breakpoint
Initialize requests
Requests initialized
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veThrowException()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Received event: ###@###.###veMonitorEnter()+-1 in thread main
Breakpoint
Received event: VMDeathEvent
Received event: VMDisconnectEvent
Total events:
Enter events: 10
Entered events: 10
Exception events: 10
Error: enter events != 1 actually: 10
Error: entered events != 1 actually: 10
Error: exception events != 1 actually: 10
TEST FAIL
- duplicates
-
JDK-7012689 NativeInstanceFilter.java fails due to "Event from native frame not filtered out."
-
- Closed
-
- relates to
-
JDK-7003782 Update JVMTI version to 1.2 for jdk7
-
- Closed
-
-
JDK-7004582 Add GetLocalInstance() function to JVMTI 1.2
-
- Closed
-