< prev index next >

src/share/vm/oops/instanceKlass.cpp

Print this page




2904 
2905 #ifndef PRODUCT
2906 
2907 void FieldPrinter::do_field(fieldDescriptor* fd) {
2908   _st->print(BULLET);
2909    if (_obj == NULL) {
2910      fd->print_on(_st);
2911      _st->cr();
2912    } else {
2913      fd->print_on_for(_st, _obj);
2914      _st->cr();
2915    }
2916 }
2917 
2918 
2919 void InstanceKlass::oop_print_on(oop obj, outputStream* st) {
2920   Klass::oop_print_on(obj, st);
2921 
2922   if (this == SystemDictionary::String_klass()) {
2923     typeArrayOop value  = java_lang_String::value(obj);
2924     juint        offset = java_lang_String::offset(obj);
2925     juint        length = java_lang_String::length(obj);
2926     if (value != NULL &&
2927         value->is_typeArray() &&
2928         offset          <= (juint) value->length() &&
2929         offset + length <= (juint) value->length()) {
2930       st->print(BULLET"string: ");
2931       java_lang_String::print(obj, st);
2932       st->cr();
2933       if (!WizardMode)  return;  // that is enough
2934     }
2935   }
2936 
2937   st->print_cr(BULLET"---- fields (total size %d words):", oop_size(obj));
2938   FieldPrinter print_field(st, obj);
2939   do_nonstatic_fields(&print_field);
2940 
2941   if (this == SystemDictionary::Class_klass()) {
2942     st->print(BULLET"signature: ");
2943     java_lang_Class::print_signature(obj, st);
2944     st->cr();
2945     Klass* mirrored_klass = java_lang_Class::as_Klass(obj);
2946     st->print(BULLET"fake entry for mirror: ");
2947     mirrored_klass->print_value_on_maybe_null(st);
2948     st->cr();
2949     Klass* array_klass = java_lang_Class::array_klass(obj);




2904 
2905 #ifndef PRODUCT
2906 
2907 void FieldPrinter::do_field(fieldDescriptor* fd) {
2908   _st->print(BULLET);
2909    if (_obj == NULL) {
2910      fd->print_on(_st);
2911      _st->cr();
2912    } else {
2913      fd->print_on_for(_st, _obj);
2914      _st->cr();
2915    }
2916 }
2917 
2918 
2919 void InstanceKlass::oop_print_on(oop obj, outputStream* st) {
2920   Klass::oop_print_on(obj, st);
2921 
2922   if (this == SystemDictionary::String_klass()) {
2923     typeArrayOop value  = java_lang_String::value(obj);

2924     juint        length = java_lang_String::length(obj);
2925     if (value != NULL &&
2926         value->is_typeArray() &&
2927         length <= (juint) value->length()) {

2928       st->print(BULLET"string: ");
2929       java_lang_String::print(obj, st);
2930       st->cr();
2931       if (!WizardMode)  return;  // that is enough
2932     }
2933   }
2934 
2935   st->print_cr(BULLET"---- fields (total size %d words):", oop_size(obj));
2936   FieldPrinter print_field(st, obj);
2937   do_nonstatic_fields(&print_field);
2938 
2939   if (this == SystemDictionary::Class_klass()) {
2940     st->print(BULLET"signature: ");
2941     java_lang_Class::print_signature(obj, st);
2942     st->cr();
2943     Klass* mirrored_klass = java_lang_Class::as_Klass(obj);
2944     st->print(BULLET"fake entry for mirror: ");
2945     mirrored_klass->print_value_on_maybe_null(st);
2946     st->cr();
2947     Klass* array_klass = java_lang_Class::array_klass(obj);


< prev index next >