< prev index next >

test/hotspot/jtreg/serviceability/jvmti/StartPhase/AllowedFunctions/libAllowedFunctions.c

Print this page




  93     void *val = NULL;
  94     jvmtiError err = (*jvmti)->GetThreadLocalStorage(jvmti, thread, &val);
  95     check_jvmti_error(jvmti, "GetThreadLocalStorage", err);
  96     return (intptr_t)val;
  97 }
  98 
  99 static void set_thread_local(jvmtiEnv *jvmti, jthread thread, intptr_t x) {
 100     void *val = (void*)x;
 101     jvmtiError err = (*jvmti)->SetThreadLocalStorage(jvmti, thread, val);
 102     check_jvmti_error(jvmti, "SetThreadLocalStorage", err);
 103 }
 104 
 105 static void print_class_status(jvmtiEnv *jvmti, jclass klass) {
 106     jint status = 0;
 107     jvmtiError err = (*jvmti)->GetClassStatus(jvmti, klass, &status);
 108 
 109     check_jvmti_error(jvmti, "GetClassStatus", err);
 110     // This function is only used in a ClassPrepare event context
 111     if ((status & JVMTI_CLASS_STATUS_VERIFIED)    == 0 ||
 112         (status & JVMTI_CLASS_STATUS_PREPARED)    == 0 ||
 113         (status & JVMTI_CLASS_STATUS_INITIALIZED) == 1 ||
 114         (status & JVMTI_CLASS_STATUS_ERROR)       == 1) {
 115         printf("  ## Error: unexpected class status: 0x%08x\n", status);
 116     }
 117     printf("    Class status: 0x%08x\n", status);
 118 }
 119 
 120 static void print_class_signature(jvmtiEnv *jvmti, jclass klass) {
 121     char* name = NULL;
 122     jvmtiError err = (*jvmti)->GetClassSignature(jvmti, klass, &name, NULL);
 123 
 124     check_jvmti_error(jvmti, "GetClassSignature", err);
 125     if (name != NULL) {
 126         printf(" class: '%s'\n", name);
 127         deallocate(jvmti, name);
 128     }
 129 }
 130 
 131 static void print_class_source_file_name(jvmtiEnv *jvmti, jclass klass) {
 132     char* name = NULL;
 133     jvmtiError err = (*jvmti)->GetSourceFileName(jvmti, klass, &name);
 134 




  93     void *val = NULL;
  94     jvmtiError err = (*jvmti)->GetThreadLocalStorage(jvmti, thread, &val);
  95     check_jvmti_error(jvmti, "GetThreadLocalStorage", err);
  96     return (intptr_t)val;
  97 }
  98 
  99 static void set_thread_local(jvmtiEnv *jvmti, jthread thread, intptr_t x) {
 100     void *val = (void*)x;
 101     jvmtiError err = (*jvmti)->SetThreadLocalStorage(jvmti, thread, val);
 102     check_jvmti_error(jvmti, "SetThreadLocalStorage", err);
 103 }
 104 
 105 static void print_class_status(jvmtiEnv *jvmti, jclass klass) {
 106     jint status = 0;
 107     jvmtiError err = (*jvmti)->GetClassStatus(jvmti, klass, &status);
 108 
 109     check_jvmti_error(jvmti, "GetClassStatus", err);
 110     // This function is only used in a ClassPrepare event context
 111     if ((status & JVMTI_CLASS_STATUS_VERIFIED)    == 0 ||
 112         (status & JVMTI_CLASS_STATUS_PREPARED)    == 0 ||
 113         (status & JVMTI_CLASS_STATUS_INITIALIZED) != 0 ||
 114         (status & JVMTI_CLASS_STATUS_ERROR)       != 0) {
 115         printf("  ## Error: unexpected class status: 0x%08x\n", status);
 116     }
 117     printf("    Class status: 0x%08x\n", status);
 118 }
 119 
 120 static void print_class_signature(jvmtiEnv *jvmti, jclass klass) {
 121     char* name = NULL;
 122     jvmtiError err = (*jvmti)->GetClassSignature(jvmti, klass, &name, NULL);
 123 
 124     check_jvmti_error(jvmti, "GetClassSignature", err);
 125     if (name != NULL) {
 126         printf(" class: '%s'\n", name);
 127         deallocate(jvmti, name);
 128     }
 129 }
 130 
 131 static void print_class_source_file_name(jvmtiEnv *jvmti, jclass klass) {
 132     char* name = NULL;
 133     jvmtiError err = (*jvmti)->GetSourceFileName(jvmti, klass, &name);
 134 


< prev index next >