1.1 --- a/src/share/vm/oops/objArrayKlass.cpp Thu Mar 19 09:13:24 2009 -0700 1.2 +++ b/src/share/vm/oops/objArrayKlass.cpp Fri Mar 20 23:19:36 2009 -0700 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. 1.6 + * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -502,12 +502,25 @@ 1.11 } 1.12 } 1.13 1.14 +static int max_objArray_print_length = 4; 1.15 1.16 void objArrayKlass::oop_print_value_on(oop obj, outputStream* st) { 1.17 assert(obj->is_objArray(), "must be objArray"); 1.18 + st->print("a "); 1.19 element_klass()->print_value_on(st); 1.20 - st->print("a [%d] ", objArrayOop(obj)->length()); 1.21 - as_klassOop()->klass()->print_value_on(st); 1.22 + int len = objArrayOop(obj)->length(); 1.23 + st->print("[%d] ", len); 1.24 + obj->print_address_on(st); 1.25 + if (PrintOopAddress || PrintMiscellaneous && (WizardMode || Verbose)) { 1.26 + st->print("{"); 1.27 + for (int i = 0; i < len; i++) { 1.28 + if (i > max_objArray_print_length) { 1.29 + st->print("..."); break; 1.30 + } 1.31 + st->print(" "INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i)); 1.32 + } 1.33 + st->print(" }"); 1.34 + } 1.35 } 1.36 1.37 #endif // PRODUCT