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@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to