mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-23 20:44:41 +02:00
6537506: Provide a mechanism for specifying Java-level USDT-like dtrace probes
Initial checkin of JSDT code Reviewed-by: acorn, sbohne
This commit is contained in:
parent
849e0dfc44
commit
f072bc9d3f
26 changed files with 2935 additions and 26 deletions
|
@ -606,6 +606,83 @@ JVM_SupportsCX8(void);
|
|||
JNIEXPORT jboolean JNICALL
|
||||
JVM_CX8Field(JNIEnv *env, jobject obj, jfieldID fldID, jlong oldVal, jlong newVal);
|
||||
|
||||
/*
|
||||
* com.sun.dtrace.jsdt support
|
||||
*/
|
||||
|
||||
#define JVM_TRACING_DTRACE_VERSION 1
|
||||
|
||||
/*
|
||||
* Structure to pass one probe description to JVM.
|
||||
*
|
||||
* The VM will overwrite the definition of the referenced method with
|
||||
* code that will fire the probe.
|
||||
*/
|
||||
typedef struct {
|
||||
jmethodID method;
|
||||
jstring function;
|
||||
jstring name;
|
||||
void* reserved[4]; // for future use
|
||||
} JVM_DTraceProbe;
|
||||
|
||||
/**
|
||||
* Encapsulates the stability ratings for a DTrace provider field
|
||||
*/
|
||||
typedef struct {
|
||||
jint nameStability;
|
||||
jint dataStability;
|
||||
jint dependencyClass;
|
||||
} JVM_DTraceInterfaceAttributes;
|
||||
|
||||
/*
|
||||
* Structure to pass one provider description to JVM
|
||||
*/
|
||||
typedef struct {
|
||||
jstring name;
|
||||
JVM_DTraceProbe* probes;
|
||||
jint probe_count;
|
||||
JVM_DTraceInterfaceAttributes providerAttributes;
|
||||
JVM_DTraceInterfaceAttributes moduleAttributes;
|
||||
JVM_DTraceInterfaceAttributes functionAttributes;
|
||||
JVM_DTraceInterfaceAttributes nameAttributes;
|
||||
JVM_DTraceInterfaceAttributes argsAttributes;
|
||||
void* reserved[4]; // for future use
|
||||
} JVM_DTraceProvider;
|
||||
|
||||
/*
|
||||
* Get the version number the JVM was built with
|
||||
*/
|
||||
JNIEXPORT jint JNICALL
|
||||
JVM_DTraceGetVersion(JNIEnv* env);
|
||||
|
||||
/*
|
||||
* Register new probe with given signature, return global handle
|
||||
*
|
||||
* The version passed in is the version that the library code was
|
||||
* built with.
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL
|
||||
JVM_DTraceActivate(JNIEnv* env, jint version, jstring module_name,
|
||||
jint providers_count, JVM_DTraceProvider* providers);
|
||||
|
||||
/*
|
||||
* Check JSDT probe
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL
|
||||
JVM_DTraceIsProbeEnabled(JNIEnv* env, jmethodID method);
|
||||
|
||||
/*
|
||||
* Destroy custom DOF
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
JVM_DTraceDispose(JNIEnv* env, jlong handle);
|
||||
|
||||
/*
|
||||
* Check to see if DTrace is supported by OS
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL
|
||||
JVM_DTraceIsSupported(JNIEnv* env);
|
||||
|
||||
/*************************************************************************
|
||||
PART 2: Support for the Verifier and Class File Format Checker
|
||||
************************************************************************/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue