Debugging progess, question on how to step using MH

John Rose john.r.rose at oracle.com
Wed Aug 3 00:13:46 PDT 2011


Hi Mark.

Your proposal looks right, at least until JVMTI has native support for MH interposition.

It might be more efficient to use a SwitchPoint to enable the slow path testing.  Basically, the switchpoint would take the place of the GWT, and (when invalidated) would execute a slow path that would patch in the slower code propose (with explicit GWT).

-- John

On Aug 2, 2011, at 6:44 PM, Mark Roos wrote:

> Thanks to all of the jvm summit feedback we decided to go with an C++ jvmti agent to get the 
> vm info for our Smalltalk debugger.  Stack vars,  instances and references are working. 
> Pretty small C code ( < 400 lines total ) so all in all not bad. 
> 
> The next step is to step a suspended thread.  I Thought of jvmti  again but it looks pretty 
> complex to support ( and does not support 292 yet) so I thought of using method handles 
> and callsites as suggested by John.  I was thinking of an bootstrap supplied callsite whose target is 
> a GWT which tests to see if this site should be suspended ( based on thread and stack depth). 
> The fast path would invoke the normal call site and its normal chain of method GWTs/lookups. 
> 
> The slow path would send a debug update event and then suspend.  When resumed it would 
> invokeExact the normal call site of the fast path. 
> 
> Is there a better way? 
> 
> thanks 
> mark_______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev



More information about the mlvm-dev mailing list