hotspot/src/share/vm/runtime/vframe.cpp
changeset 4571 80b553bddc26
parent 3261 c7d5aae8d3f7
child 4581 e89fbd1bcb3d
equal deleted inserted replaced
4569:f372ea9e5ed4 4571:80b553bddc26
   122 }
   122 }
   123 
   123 
   124 static void print_locked_object_class_name(outputStream* st, Handle obj, const char* lock_state) {
   124 static void print_locked_object_class_name(outputStream* st, Handle obj, const char* lock_state) {
   125   if (obj.not_null()) {
   125   if (obj.not_null()) {
   126     st->print("\t- %s <" INTPTR_FORMAT "> ", lock_state, (address)obj());
   126     st->print("\t- %s <" INTPTR_FORMAT "> ", lock_state, (address)obj());
   127     if (obj->klass() == SystemDictionary::class_klass()) {
   127     if (obj->klass() == SystemDictionary::Class_klass()) {
   128       klassOop target_klass = java_lang_Class::as_klassOop(obj());
   128       klassOop target_klass = java_lang_Class::as_klassOop(obj());
   129       st->print_cr("(a java.lang.Class for %s)", instanceKlass::cast(target_klass)->external_name());
   129       st->print_cr("(a java.lang.Class for %s)", instanceKlass::cast(target_klass)->external_name());
   130     } else {
   130     } else {
   131       Klass* k = Klass::cast(obj->klass());
   131       Klass* k = Klass::cast(obj->klass());
   132       st->print_cr("(a %s)", k->external_name());
   132       st->print_cr("(a %s)", k->external_name());
   428   while (!at_end()) {
   428   while (!at_end()) {
   429     if (Universe::reflect_invoke_cache()->is_same_method(method())) {
   429     if (Universe::reflect_invoke_cache()->is_same_method(method())) {
   430       // This is Method.invoke() -- skip it
   430       // This is Method.invoke() -- skip it
   431     } else if (use_new_reflection &&
   431     } else if (use_new_reflection &&
   432               Klass::cast(method()->method_holder())
   432               Klass::cast(method()->method_holder())
   433                  ->is_subclass_of(SystemDictionary::reflect_method_accessor_klass())) {
   433                  ->is_subclass_of(SystemDictionary::reflect_MethodAccessorImpl_klass())) {
   434       // This is an auxilary frame -- skip it
   434       // This is an auxilary frame -- skip it
   435     } else {
   435     } else {
   436       // This is non-excluded frame, we need to count it against the depth
   436       // This is non-excluded frame, we need to count it against the depth
   437       if (depth-- <= 0) {
   437       if (depth-- <= 0) {
   438         // we have reached the desired depth, we are done
   438         // we have reached the desired depth, we are done
   488 
   488 
   489 
   489 
   490 void vframeStreamCommon::skip_reflection_related_frames() {
   490 void vframeStreamCommon::skip_reflection_related_frames() {
   491   while (!at_end() &&
   491   while (!at_end() &&
   492          (JDK_Version::is_gte_jdk14x_version() && UseNewReflection &&
   492          (JDK_Version::is_gte_jdk14x_version() && UseNewReflection &&
   493           (Klass::cast(method()->method_holder())->is_subclass_of(SystemDictionary::reflect_method_accessor_klass()) ||
   493           (Klass::cast(method()->method_holder())->is_subclass_of(SystemDictionary::reflect_MethodAccessorImpl_klass()) ||
   494            Klass::cast(method()->method_holder())->is_subclass_of(SystemDictionary::reflect_constructor_accessor_klass())))) {
   494            Klass::cast(method()->method_holder())->is_subclass_of(SystemDictionary::reflect_ConstructorAccessorImpl_klass())))) {
   495     next();
   495     next();
   496   }
   496   }
   497 }
   497 }
   498 
   498 
   499 
   499