632 jvmtiError
633 JvmtiEnv::GetErrorName(jvmtiError error, char** name_ptr) {
634 if (error < JVMTI_ERROR_NONE || error > JVMTI_ERROR_MAX) {
635 return JVMTI_ERROR_ILLEGAL_ARGUMENT;
636 }
637 const char *name = JvmtiUtil::error_name(error);
638 if (name == NULL) {
639 return JVMTI_ERROR_ILLEGAL_ARGUMENT;
640 }
641 size_t len = strlen(name) + 1;
642 jvmtiError err = allocate(len, (unsigned char**)name_ptr);
643 if (err == JVMTI_ERROR_NONE) {
644 memcpy(*name_ptr, name, len);
645 }
646 return err;
647 } /* end GetErrorName */
648
649
650 jvmtiError
651 JvmtiEnv::SetVerboseFlag(jvmtiVerboseFlag flag, jboolean value) {
652 switch (flag) {
653 case JVMTI_VERBOSE_OTHER:
654 // ignore
655 break;
656 case JVMTI_VERBOSE_CLASS:
657 if (value == 0) {
658 LogConfiguration::parse_log_arguments("stdout", "class+unload=off", NULL, NULL, NULL);
659 LogConfiguration::parse_log_arguments("stdout", "class+load=off", NULL, NULL, NULL);
660 } else {
661 LogConfiguration::parse_log_arguments("stdout", "class+load=info", NULL, NULL, NULL);
662 LogConfiguration::parse_log_arguments("stdout", "class+unload=info", NULL, NULL, NULL);
663 }
664 break;
665 case JVMTI_VERBOSE_GC:
666 if (value == 0) {
667 LogConfiguration::configure_stdout(LogLevel::Off, true, LOG_TAGS(gc));
668 } else {
669 LogConfiguration::configure_stdout(LogLevel::Info, true, LOG_TAGS(gc));
670 }
671 break;
672 case JVMTI_VERBOSE_JNI:
673 PrintJNIResolving = value != 0;
674 break;
675 default:
676 return JVMTI_ERROR_ILLEGAL_ARGUMENT;
677 };
678 return JVMTI_ERROR_NONE;
679 } /* end SetVerboseFlag */
680
681
682 // format_ptr - pre-checked for NULL
683 jvmtiError
|
632 jvmtiError
633 JvmtiEnv::GetErrorName(jvmtiError error, char** name_ptr) {
634 if (error < JVMTI_ERROR_NONE || error > JVMTI_ERROR_MAX) {
635 return JVMTI_ERROR_ILLEGAL_ARGUMENT;
636 }
637 const char *name = JvmtiUtil::error_name(error);
638 if (name == NULL) {
639 return JVMTI_ERROR_ILLEGAL_ARGUMENT;
640 }
641 size_t len = strlen(name) + 1;
642 jvmtiError err = allocate(len, (unsigned char**)name_ptr);
643 if (err == JVMTI_ERROR_NONE) {
644 memcpy(*name_ptr, name, len);
645 }
646 return err;
647 } /* end GetErrorName */
648
649
650 jvmtiError
651 JvmtiEnv::SetVerboseFlag(jvmtiVerboseFlag flag, jboolean value) {
652 LogLevelType level = value == 0 ? LogLevel::Off : LogLevel::Info;
653 switch (flag) {
654 case JVMTI_VERBOSE_OTHER:
655 // ignore
656 break;
657 case JVMTI_VERBOSE_CLASS:
658 LogConfiguration::configure_stdout(level, false, LOG_TAGS(class, unload));
659 LogConfiguration::configure_stdout(level, false, LOG_TAGS(class, load));
660 break;
661 case JVMTI_VERBOSE_GC:
662 if (value == 0) {
663 LogConfiguration::configure_stdout(LogLevel::Off, true, LOG_TAGS(gc));
664 } else {
665 LogConfiguration::configure_stdout(LogLevel::Info, true, LOG_TAGS(gc));
666 }
667 break;
668 case JVMTI_VERBOSE_JNI:
669 PrintJNIResolving = value != 0;
670 break;
671 default:
672 return JVMTI_ERROR_ILLEGAL_ARGUMENT;
673 };
674 return JVMTI_ERROR_NONE;
675 } /* end SetVerboseFlag */
676
677
678 // format_ptr - pre-checked for NULL
679 jvmtiError
|