src/share/vm/classfile/verifier.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8004128_2 Sdiff src/share/vm/classfile

src/share/vm/classfile/verifier.cpp

Print this page




 422       ss->print("Attempt to pop empty stack.");
 423       break;
 424     case MISSING_STACKMAP:
 425       ss->print("Expected stackmap frame at this location.");
 426       break;
 427     case BAD_STACKMAP:
 428       ss->print("Invalid stackmap specification.");
 429       break;
 430     case UNKNOWN:
 431     default:
 432       ShouldNotReachHere();
 433       ss->print_cr("Unknown");
 434   }
 435   ss->cr();
 436 }
 437 
 438 void ErrorContext::location_details(outputStream* ss, const Method* method) const {
 439   if (_bci != -1 && method != NULL) {
 440     streamIndentor si(ss);
 441     const char* bytecode_name = "<invalid>";
 442     if (method->validate_bci_from_bcx(_bci) != -1) {
 443       Bytecodes::Code code = Bytecodes::code_or_bp_at(method->bcp_from(_bci));
 444       if (Bytecodes::is_defined(code)) {
 445           bytecode_name = Bytecodes::name(code);
 446       } else {
 447           bytecode_name = "<illegal>";
 448       }
 449     }
 450     InstanceKlass* ik = method->method_holder();
 451     ss->indent().print_cr("Location:");
 452     streamIndentor si2(ss);
 453     ss->indent().print_cr("%s.%s%s @%d: %s",
 454         ik->name()->as_C_string(), method->name()->as_C_string(),
 455         method->signature()->as_C_string(), _bci, bytecode_name);
 456   }
 457 }
 458 
 459 void ErrorContext::frame_details(outputStream* ss) const {
 460   streamIndentor si(ss);
 461   if (_type.is_valid() && _type.frame() != NULL) {
 462     ss->indent().print_cr("Current Frame:");




 422       ss->print("Attempt to pop empty stack.");
 423       break;
 424     case MISSING_STACKMAP:
 425       ss->print("Expected stackmap frame at this location.");
 426       break;
 427     case BAD_STACKMAP:
 428       ss->print("Invalid stackmap specification.");
 429       break;
 430     case UNKNOWN:
 431     default:
 432       ShouldNotReachHere();
 433       ss->print_cr("Unknown");
 434   }
 435   ss->cr();
 436 }
 437 
 438 void ErrorContext::location_details(outputStream* ss, const Method* method) const {
 439   if (_bci != -1 && method != NULL) {
 440     streamIndentor si(ss);
 441     const char* bytecode_name = "<invalid>";
 442     if (method->validate_bci(_bci) != -1) {
 443       Bytecodes::Code code = Bytecodes::code_or_bp_at(method->bcp_from(_bci));
 444       if (Bytecodes::is_defined(code)) {
 445           bytecode_name = Bytecodes::name(code);
 446       } else {
 447           bytecode_name = "<illegal>";
 448       }
 449     }
 450     InstanceKlass* ik = method->method_holder();
 451     ss->indent().print_cr("Location:");
 452     streamIndentor si2(ss);
 453     ss->indent().print_cr("%s.%s%s @%d: %s",
 454         ik->name()->as_C_string(), method->name()->as_C_string(),
 455         method->signature()->as_C_string(), _bci, bytecode_name);
 456   }
 457 }
 458 
 459 void ErrorContext::frame_details(outputStream* ss) const {
 460   streamIndentor si(ss);
 461   if (_type.is_valid() && _type.frame() != NULL) {
 462     ss->indent().print_cr("Current Frame:");


src/share/vm/classfile/verifier.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File