sofya.ed.semantic
Class EDProbe

java.lang.Object
  extended by sofya.ed.semantic.EDProbe

public final class EDProbe
extends java.lang.Object

This class hosts the fields that are referenced by the probes inserted by the instrumentor, and which are monitored by the SemanticEventDispatcher.

Version:
12/16/2005
Author:
Alex Kinneer

Field Summary
static int _inst$$zk183_$arr$idx$
          Field to which the element index of array events are written.
static java.lang.Object _inst$$zk183_$arr$ref$rd
          Field to which the array reference of array read events are written.
static java.lang.Object _inst$$zk183_$arr$ref$wr
          Field to which the array reference of array write events are written.
static java.lang.Object _inst$$zk183_$arr$val$A
          Field to which the value of reference array write events are written.
static byte _inst$$zk183_$arr$val$B
          Field to which the value of byte array write events are written.
static char _inst$$zk183_$arr$val$C
          Field to which the value of char array write events are written.
static double _inst$$zk183_$arr$val$D
          Field to which the value of double array write events are written.
static float _inst$$zk183_$arr$val$F
          Field to which the value of float array write events are written.
static int _inst$$zk183_$arr$val$I
          Field to which the value of int array write events are written.
static long _inst$$zk183_$arr$val$J
          Field to which the value of long array write events are written.
static short _inst$$zk183_$arr$val$S
          Field to which the value of short array write events are written.
static boolean _inst$$zk183_$arr$val$Z
          Field to which the value of boolean array write events are written.
static int _inst$$zk183_$code$
          Field to which probes write event trace codes.
static byte _inst$$zk183_$flag$
          Field used to transmit very limited commands back to the subject instrumentation.
static java.lang.Class _inst$$zk183_$load$
          Field to which class prepare probes write.
static java.lang.Object _inst$$zk183_$mon$10
          Field to which monitor contention events are written.
static java.lang.Object _inst$$zk183_$mon$11
          Field to which monitor acquisition events are written.
static java.lang.Object _inst$$zk183_$mon$12
          Field to which monitor releasing events are written.
static java.lang.Object _inst$$zk183_$mon$13
          Field to which monitor released events are written.
static java.lang.Class _inst$$zk183_$type$
          Field to which the class of caught exceptions are written.
 
Constructor Summary
EDProbe()
           
 
Method Summary
static void main(java.lang.String[] argv)
          Used to reflectively invoke the main class for the monitored application, which forces the probe to be loaded before any monitored code can be loaded.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_inst$$zk183_$code$

public static int _inst$$zk183_$code$
Field to which probes write event trace codes.


_inst$$zk183_$load$

public static java.lang.Class _inst$$zk183_$load$
Field to which class prepare probes write.


_inst$$zk183_$type$

public static java.lang.Class _inst$$zk183_$type$
Field to which the class of caught exceptions are written.


_inst$$zk183_$mon$10

public static java.lang.Object _inst$$zk183_$mon$10
Field to which monitor contention events are written.


_inst$$zk183_$mon$11

public static java.lang.Object _inst$$zk183_$mon$11
Field to which monitor acquisition events are written.


_inst$$zk183_$mon$12

public static java.lang.Object _inst$$zk183_$mon$12
Field to which monitor releasing events are written.


_inst$$zk183_$mon$13

public static java.lang.Object _inst$$zk183_$mon$13
Field to which monitor released events are written.


_inst$$zk183_$arr$ref$rd

public static java.lang.Object _inst$$zk183_$arr$ref$rd
Field to which the array reference of array read events are written.


_inst$$zk183_$arr$ref$wr

public static java.lang.Object _inst$$zk183_$arr$ref$wr
Field to which the array reference of array write events are written.


_inst$$zk183_$arr$idx$

public static int _inst$$zk183_$arr$idx$
Field to which the element index of array events are written.


_inst$$zk183_$arr$val$B

public static byte _inst$$zk183_$arr$val$B
Field to which the value of byte array write events are written.


_inst$$zk183_$arr$val$C

public static char _inst$$zk183_$arr$val$C
Field to which the value of char array write events are written.


_inst$$zk183_$arr$val$D

public static double _inst$$zk183_$arr$val$D
Field to which the value of double array write events are written.


_inst$$zk183_$arr$val$F

public static float _inst$$zk183_$arr$val$F
Field to which the value of float array write events are written.


_inst$$zk183_$arr$val$I

public static int _inst$$zk183_$arr$val$I
Field to which the value of int array write events are written.


_inst$$zk183_$arr$val$J

public static long _inst$$zk183_$arr$val$J
Field to which the value of long array write events are written.


_inst$$zk183_$arr$val$S

public static short _inst$$zk183_$arr$val$S
Field to which the value of short array write events are written.


_inst$$zk183_$arr$val$Z

public static boolean _inst$$zk183_$arr$val$Z
Field to which the value of boolean array write events are written.


_inst$$zk183_$arr$val$A

public static java.lang.Object _inst$$zk183_$arr$val$A
Field to which the value of reference array write events are written.


_inst$$zk183_$flag$

public static byte _inst$$zk183_$flag$
Field used to transmit very limited commands back to the subject instrumentation.

Constructor Detail

EDProbe

public EDProbe()
Method Detail

main

public static void main(java.lang.String[] argv)
                 throws java.lang.Exception
Used to reflectively invoke the main class for the monitored application, which forces the probe to be loaded before any monitored code can be loaded.

This is an ugly hack to work around a bug in the JDI. Namely, the JDI violates the declared contract of the ClassPrepareEvent by permitting execution of code in the loaded class prior to dispatching the event to the JDI event queue. This means that during initialization, user code may write to fields we want to monitor before we have had a chance to request monitoring of those fields in the SemanticEventDispatcher, since we must have a reference to a loaded class to add event requests for the fields of the class.

Throws:
java.lang.Exception