3012 _st->cr();
3013 } else {
3014 fd->print_on_for(_st, _obj);
3015 _st->cr();
3016 }
3017 }
3018
3019
3020 void InstanceKlass::oop_print_on(oop obj, outputStream* st) {
3021 Klass::oop_print_on(obj, st);
3022
3023 if (this == SystemDictionary::String_klass()) {
3024 typeArrayOop value = java_lang_String::value(obj);
3025 juint offset = java_lang_String::offset(obj);
3026 juint length = java_lang_String::length(obj);
3027 if (value != NULL &&
3028 value->is_typeArray() &&
3029 offset <= (juint) value->length() &&
3030 offset + length <= (juint) value->length()) {
3031 st->print(BULLET"string: ");
3032 Handle h_obj(obj);
3033 java_lang_String::print(h_obj, st);
3034 st->cr();
3035 if (!WizardMode) return; // that is enough
3036 }
3037 }
3038
3039 st->print_cr(BULLET"---- fields (total size %d words):", oop_size(obj));
3040 FieldPrinter print_field(st, obj);
3041 do_nonstatic_fields(&print_field);
3042
3043 if (this == SystemDictionary::Class_klass()) {
3044 st->print(BULLET"signature: ");
3045 java_lang_Class::print_signature(obj, st);
3046 st->cr();
3047 Klass* mirrored_klass = java_lang_Class::as_Klass(obj);
3048 st->print(BULLET"fake entry for mirror: ");
3049 mirrored_klass->print_value_on_maybe_null(st);
3050 st->cr();
3051 Klass* array_klass = java_lang_Class::array_klass(obj);
3052 st->print(BULLET"fake entry for array: ");
3053 array_klass->print_value_on_maybe_null(st);
|
3012 _st->cr();
3013 } else {
3014 fd->print_on_for(_st, _obj);
3015 _st->cr();
3016 }
3017 }
3018
3019
3020 void InstanceKlass::oop_print_on(oop obj, outputStream* st) {
3021 Klass::oop_print_on(obj, st);
3022
3023 if (this == SystemDictionary::String_klass()) {
3024 typeArrayOop value = java_lang_String::value(obj);
3025 juint offset = java_lang_String::offset(obj);
3026 juint length = java_lang_String::length(obj);
3027 if (value != NULL &&
3028 value->is_typeArray() &&
3029 offset <= (juint) value->length() &&
3030 offset + length <= (juint) value->length()) {
3031 st->print(BULLET"string: ");
3032 java_lang_String::print(obj, st);
3033 st->cr();
3034 if (!WizardMode) return; // that is enough
3035 }
3036 }
3037
3038 st->print_cr(BULLET"---- fields (total size %d words):", oop_size(obj));
3039 FieldPrinter print_field(st, obj);
3040 do_nonstatic_fields(&print_field);
3041
3042 if (this == SystemDictionary::Class_klass()) {
3043 st->print(BULLET"signature: ");
3044 java_lang_Class::print_signature(obj, st);
3045 st->cr();
3046 Klass* mirrored_klass = java_lang_Class::as_Klass(obj);
3047 st->print(BULLET"fake entry for mirror: ");
3048 mirrored_klass->print_value_on_maybe_null(st);
3049 st->cr();
3050 Klass* array_klass = java_lang_Class::array_klass(obj);
3051 st->print(BULLET"fake entry for array: ");
3052 array_klass->print_value_on_maybe_null(st);
|