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