176 #define AGENT_ERROR_NOT_CURRENT_FRAME _AGENT_ERROR(7)
177 #define AGENT_ERROR_OUT_OF_MEMORY _AGENT_ERROR(8)
178 #define AGENT_ERROR_INVALID_TAG _AGENT_ERROR(9)
179 #define AGENT_ERROR_ALREADY_INVOKING _AGENT_ERROR(10)
180 #define AGENT_ERROR_INVALID_INDEX _AGENT_ERROR(11)
181 #define AGENT_ERROR_INVALID_LENGTH _AGENT_ERROR(12)
182 #define AGENT_ERROR_INVALID_STRING _AGENT_ERROR(13)
183 #define AGENT_ERROR_INVALID_CLASS_LOADER _AGENT_ERROR(14)
184 #define AGENT_ERROR_INVALID_ARRAY _AGENT_ERROR(15)
185 #define AGENT_ERROR_TRANSPORT_LOAD _AGENT_ERROR(16)
186 #define AGENT_ERROR_TRANSPORT_INIT _AGENT_ERROR(17)
187 #define AGENT_ERROR_NATIVE_METHOD _AGENT_ERROR(18)
188 #define AGENT_ERROR_INVALID_COUNT _AGENT_ERROR(19)
189 #define AGENT_ERROR_INVALID_FRAMEID _AGENT_ERROR(20)
190 #define AGENT_ERROR_NULL_POINTER _AGENT_ERROR(21)
191 #define AGENT_ERROR_ILLEGAL_ARGUMENT _AGENT_ERROR(22)
192 #define AGENT_ERROR_INVALID_THREAD _AGENT_ERROR(23)
193 #define AGENT_ERROR_INVALID_EVENT_TYPE _AGENT_ERROR(24)
194 #define AGENT_ERROR_INVALID_OBJECT _AGENT_ERROR(25)
195 #define AGENT_ERROR_NO_MORE_FRAMES _AGENT_ERROR(26)
196
197 /* Combined event information */
198
199 typedef struct {
200
201 EventIndex ei;
202 jthread thread;
203 jclass clazz;
204 jmethodID method;
205 jlocation location;
206 jobject object; /* possibly an exception or user object */
207
208 union {
209
210 /* ei = EI_FIELD_ACCESS */
211 struct {
212 jclass field_clazz;
213 jfieldID field;
214 } field_access;
215
336 jvmtiError jvmtiGetCapabilities(jvmtiCapabilities *caps);
337 jint jvmtiMajorVersion(void);
338 jint jvmtiMinorVersion(void);
339 jint jvmtiMicroVersion(void);
340 jvmtiError getSourceDebugExtension(jclass clazz, char **extensionPtr);
341 jboolean canSuspendResumeThreadLists(void);
342
343 jrawMonitorID debugMonitorCreate(char *name);
344 void debugMonitorEnter(jrawMonitorID theLock);
345 void debugMonitorExit(jrawMonitorID theLock);
346 void debugMonitorWait(jrawMonitorID theLock);
347 void debugMonitorTimedWait(jrawMonitorID theLock, jlong millis);
348 void debugMonitorNotify(jrawMonitorID theLock);
349 void debugMonitorNotifyAll(jrawMonitorID theLock);
350 void debugMonitorDestroy(jrawMonitorID theLock);
351
352 jthread *allThreads(jint *count);
353
354 void threadGroupInfo(jthreadGroup, jvmtiThreadGroupInfo *info);
355
356 char *getClassname(jclass);
357 jvmtiError classSignature(jclass, char**, char**);
358 jint classStatus(jclass);
359 void writeGenericSignature(struct PacketOutputStream *, char *);
360 jboolean isMethodNative(jmethodID);
361 jboolean isMethodObsolete(jmethodID);
362 jvmtiError isMethodSynthetic(jmethodID, jboolean*);
363 jvmtiError isFieldSynthetic(jclass, jfieldID, jboolean*);
364
365 jboolean isSameObject(JNIEnv *env, jobject o1, jobject o2);
366
367 jint objectHashCode(jobject);
368
369 jvmtiError allInterfaces(jclass clazz, jclass **ppinterfaces, jint *count);
370 jvmtiError allLoadedClasses(jclass **ppclasses, jint *count);
371 jvmtiError allClassLoaderClasses(jobject loader, jclass **ppclasses, jint *count);
372 jvmtiError allNestedClasses(jclass clazz, jclass **ppnested, jint *pcount);
373
374 void setAgentPropertyValue(JNIEnv *env, char *propertyName, char* propertyValue);
375
|
176 #define AGENT_ERROR_NOT_CURRENT_FRAME _AGENT_ERROR(7)
177 #define AGENT_ERROR_OUT_OF_MEMORY _AGENT_ERROR(8)
178 #define AGENT_ERROR_INVALID_TAG _AGENT_ERROR(9)
179 #define AGENT_ERROR_ALREADY_INVOKING _AGENT_ERROR(10)
180 #define AGENT_ERROR_INVALID_INDEX _AGENT_ERROR(11)
181 #define AGENT_ERROR_INVALID_LENGTH _AGENT_ERROR(12)
182 #define AGENT_ERROR_INVALID_STRING _AGENT_ERROR(13)
183 #define AGENT_ERROR_INVALID_CLASS_LOADER _AGENT_ERROR(14)
184 #define AGENT_ERROR_INVALID_ARRAY _AGENT_ERROR(15)
185 #define AGENT_ERROR_TRANSPORT_LOAD _AGENT_ERROR(16)
186 #define AGENT_ERROR_TRANSPORT_INIT _AGENT_ERROR(17)
187 #define AGENT_ERROR_NATIVE_METHOD _AGENT_ERROR(18)
188 #define AGENT_ERROR_INVALID_COUNT _AGENT_ERROR(19)
189 #define AGENT_ERROR_INVALID_FRAMEID _AGENT_ERROR(20)
190 #define AGENT_ERROR_NULL_POINTER _AGENT_ERROR(21)
191 #define AGENT_ERROR_ILLEGAL_ARGUMENT _AGENT_ERROR(22)
192 #define AGENT_ERROR_INVALID_THREAD _AGENT_ERROR(23)
193 #define AGENT_ERROR_INVALID_EVENT_TYPE _AGENT_ERROR(24)
194 #define AGENT_ERROR_INVALID_OBJECT _AGENT_ERROR(25)
195 #define AGENT_ERROR_NO_MORE_FRAMES _AGENT_ERROR(26)
196 #define AGENT_ERROR_INVALID_MODULE _AGENT_ERROR(27)
197
198 /* Combined event information */
199
200 typedef struct {
201
202 EventIndex ei;
203 jthread thread;
204 jclass clazz;
205 jmethodID method;
206 jlocation location;
207 jobject object; /* possibly an exception or user object */
208
209 union {
210
211 /* ei = EI_FIELD_ACCESS */
212 struct {
213 jclass field_clazz;
214 jfieldID field;
215 } field_access;
216
337 jvmtiError jvmtiGetCapabilities(jvmtiCapabilities *caps);
338 jint jvmtiMajorVersion(void);
339 jint jvmtiMinorVersion(void);
340 jint jvmtiMicroVersion(void);
341 jvmtiError getSourceDebugExtension(jclass clazz, char **extensionPtr);
342 jboolean canSuspendResumeThreadLists(void);
343
344 jrawMonitorID debugMonitorCreate(char *name);
345 void debugMonitorEnter(jrawMonitorID theLock);
346 void debugMonitorExit(jrawMonitorID theLock);
347 void debugMonitorWait(jrawMonitorID theLock);
348 void debugMonitorTimedWait(jrawMonitorID theLock, jlong millis);
349 void debugMonitorNotify(jrawMonitorID theLock);
350 void debugMonitorNotifyAll(jrawMonitorID theLock);
351 void debugMonitorDestroy(jrawMonitorID theLock);
352
353 jthread *allThreads(jint *count);
354
355 void threadGroupInfo(jthreadGroup, jvmtiThreadGroupInfo *info);
356
357 jclass findClass(JNIEnv *env, const char * name);
358 jmethodID getMethod(JNIEnv *env, jclass clazz, const char * name, const char *signature);
359 char *getModuleName(jclass);
360 char *getClassname(jclass);
361 jvmtiError classSignature(jclass, char**, char**);
362 jint classStatus(jclass);
363 void writeGenericSignature(struct PacketOutputStream *, char *);
364 jboolean isMethodNative(jmethodID);
365 jboolean isMethodObsolete(jmethodID);
366 jvmtiError isMethodSynthetic(jmethodID, jboolean*);
367 jvmtiError isFieldSynthetic(jclass, jfieldID, jboolean*);
368
369 jboolean isSameObject(JNIEnv *env, jobject o1, jobject o2);
370
371 jint objectHashCode(jobject);
372
373 jvmtiError allInterfaces(jclass clazz, jclass **ppinterfaces, jint *count);
374 jvmtiError allLoadedClasses(jclass **ppclasses, jint *count);
375 jvmtiError allClassLoaderClasses(jobject loader, jclass **ppclasses, jint *count);
376 jvmtiError allNestedClasses(jclass clazz, jclass **ppnested, jint *pcount);
377
378 void setAgentPropertyValue(JNIEnv *env, char *propertyName, char* propertyValue);
379
|