hotspot/src/share/vm/classfile/classLoaderData.cpp
changeset 24424 2658d7834c6e
parent 23526 6851d341ad52
child 24457 0e20b36df5c4
equal deleted inserted replaced
24358:8528b67f6562 24424:2658d7834c6e
   279 
   279 
   280   if (TraceClassLoaderData && Verbose && k->class_loader_data() != NULL) {
   280   if (TraceClassLoaderData && Verbose && k->class_loader_data() != NULL) {
   281     ResourceMark rm;
   281     ResourceMark rm;
   282     tty->print_cr("[TraceClassLoaderData] Adding k: " PTR_FORMAT " %s to CLD: "
   282     tty->print_cr("[TraceClassLoaderData] Adding k: " PTR_FORMAT " %s to CLD: "
   283                   PTR_FORMAT " loader: " PTR_FORMAT " %s",
   283                   PTR_FORMAT " loader: " PTR_FORMAT " %s",
   284                   k,
   284                   p2i(k),
   285                   k->external_name(),
   285                   k->external_name(),
   286                   k->class_loader_data(),
   286                   p2i(k->class_loader_data()),
   287                   (void *)k->class_loader(),
   287                   p2i((void *)k->class_loader()),
   288                   loader_name());
   288                   loader_name());
   289   }
   289   }
   290 }
   290 }
   291 
   291 
   292 // This is called by InstanceKlass::deallocate_contents() to remove the
   292 // This is called by InstanceKlass::deallocate_contents() to remove the
   317   // Tell serviceability tools these classes are unloading
   317   // Tell serviceability tools these classes are unloading
   318   classes_do(InstanceKlass::notify_unload_class);
   318   classes_do(InstanceKlass::notify_unload_class);
   319 
   319 
   320   if (TraceClassLoaderData) {
   320   if (TraceClassLoaderData) {
   321     ResourceMark rm;
   321     ResourceMark rm;
   322     tty->print("[ClassLoaderData: unload loader data "PTR_FORMAT, this);
   322     tty->print("[ClassLoaderData: unload loader data " INTPTR_FORMAT, p2i(this));
   323     tty->print(" for instance "PTR_FORMAT" of %s", (void *)class_loader(),
   323     tty->print(" for instance " INTPTR_FORMAT " of %s", p2i((void *)class_loader()),
   324                loader_name());
   324                loader_name());
   325     if (is_anonymous()) {
   325     if (is_anonymous()) {
   326       tty->print(" for anonymous class  "PTR_FORMAT " ", _klasses);
   326       tty->print(" for anonymous class  " INTPTR_FORMAT " ", p2i(_klasses));
   327     }
   327     }
   328     tty->print_cr("]");
   328     tty->print_cr("]");
   329   }
   329   }
   330 }
   330 }
   331 
   331 
   483 #undef CLD_DUMP_KLASSES
   483 #undef CLD_DUMP_KLASSES
   484 
   484 
   485 void ClassLoaderData::dump(outputStream * const out) {
   485 void ClassLoaderData::dump(outputStream * const out) {
   486   ResourceMark rm;
   486   ResourceMark rm;
   487   out->print("ClassLoaderData CLD: "PTR_FORMAT", loader: "PTR_FORMAT", loader_klass: "PTR_FORMAT" %s {",
   487   out->print("ClassLoaderData CLD: "PTR_FORMAT", loader: "PTR_FORMAT", loader_klass: "PTR_FORMAT" %s {",
   488       this, (void *)class_loader(),
   488       p2i(this), p2i((void *)class_loader()),
   489       class_loader() != NULL ? class_loader()->klass() : NULL, loader_name());
   489       p2i(class_loader() != NULL ? class_loader()->klass() : NULL), loader_name());
   490   if (claimed()) out->print(" claimed ");
   490   if (claimed()) out->print(" claimed ");
   491   if (is_unloading()) out->print(" unloading ");
   491   if (is_unloading()) out->print(" unloading ");
   492   out->print(" handles " INTPTR_FORMAT, handles());
   492   out->print(" handles " INTPTR_FORMAT, p2i(handles()));
   493   out->cr();
   493   out->cr();
   494   if (metaspace_or_null() != NULL) {
   494   if (metaspace_or_null() != NULL) {
   495     out->print_cr("metaspace: " PTR_FORMAT, metaspace_or_null());
   495     out->print_cr("metaspace: " INTPTR_FORMAT, p2i(metaspace_or_null()));
   496     metaspace_or_null()->dump(out);
   496     metaspace_or_null()->dump(out);
   497   } else {
   497   } else {
   498     out->print_cr("metaspace: NULL");
   498     out->print_cr("metaspace: NULL");
   499   }
   499   }
   500 
   500 
   584     ClassLoaderData* exchanged = (ClassLoaderData*)Atomic::cmpxchg_ptr(cld, list_head, next);
   584     ClassLoaderData* exchanged = (ClassLoaderData*)Atomic::cmpxchg_ptr(cld, list_head, next);
   585     if (exchanged == next) {
   585     if (exchanged == next) {
   586       if (TraceClassLoaderData) {
   586       if (TraceClassLoaderData) {
   587         ResourceMark rm;
   587         ResourceMark rm;
   588         tty->print("[ClassLoaderData: ");
   588         tty->print("[ClassLoaderData: ");
   589         tty->print("create class loader data "PTR_FORMAT, cld);
   589         tty->print("create class loader data " INTPTR_FORMAT, p2i(cld));
   590         tty->print(" for instance "PTR_FORMAT" of %s", (void *)cld->class_loader(),
   590         tty->print(" for instance " INTPTR_FORMAT " of %s", p2i((void *)cld->class_loader()),
   591                    cld->loader_name());
   591                    cld->loader_name());
   592         tty->print_cr("]");
   592         tty->print_cr("]");
   593       }
   593       }
   594       return cld;
   594       return cld;
   595     }
   595     }
   845 
   845 
   846 void ClassLoaderData::print_value_on(outputStream* out) const {
   846 void ClassLoaderData::print_value_on(outputStream* out) const {
   847   if (class_loader() == NULL) {
   847   if (class_loader() == NULL) {
   848     out->print("NULL class_loader");
   848     out->print("NULL class_loader");
   849   } else {
   849   } else {
   850     out->print("class loader "PTR_FORMAT, this);
   850     out->print("class loader " INTPTR_FORMAT, p2i(this));
   851     class_loader()->print_value_on(out);
   851     class_loader()->print_value_on(out);
   852   }
   852   }
   853 }
   853 }
   854 
   854 
   855 #if INCLUDE_TRACE
   855 #if INCLUDE_TRACE