hotspot/src/share/vm/runtime/frame.cpp
changeset 42650 1f304d0c888b
parent 42569 fccb65782775
child 46560 388aa8d67c80
equal deleted inserted replaced
42649:28238583a459 42650:1f304d0c888b
   642 // crash inside this function if stack frame is corrupted. The fatal error
   642 // crash inside this function if stack frame is corrupted. The fatal error
   643 // handler can catch and handle the crash. Here we assume the frame is valid.
   643 // handler can catch and handle the crash. Here we assume the frame is valid.
   644 //
   644 //
   645 // First letter indicates type of the frame:
   645 // First letter indicates type of the frame:
   646 //    J: Java frame (compiled)
   646 //    J: Java frame (compiled)
       
   647 //    A: Java frame (aot compiled)
   647 //    j: Java frame (interpreted)
   648 //    j: Java frame (interpreted)
   648 //    V: VM frame (C/C++)
   649 //    V: VM frame (C/C++)
   649 //    v: Other frames running VM generated code (e.g. stubs, adapters, etc.)
   650 //    v: Other frames running VM generated code (e.g. stubs, adapters, etc.)
   650 //    C: C/C++ frame
   651 //    C: C/C++ frame
   651 //
   652 //
   683       st->print("v  ~BufferBlob::%s", ((BufferBlob *)_cb)->name());
   684       st->print("v  ~BufferBlob::%s", ((BufferBlob *)_cb)->name());
   684     } else if (_cb->is_compiled()) {
   685     } else if (_cb->is_compiled()) {
   685       CompiledMethod* cm = (CompiledMethod*)_cb;
   686       CompiledMethod* cm = (CompiledMethod*)_cb;
   686       Method* m = cm->method();
   687       Method* m = cm->method();
   687       if (m != NULL) {
   688       if (m != NULL) {
   688         if (cm->is_nmethod()) {
   689         if (cm->is_aot()) {
       
   690           st->print("A %d ", cm->compile_id());
       
   691         } else if (cm->is_nmethod()) {
   689           nmethod* nm = cm->as_nmethod();
   692           nmethod* nm = cm->as_nmethod();
   690           st->print("J %d%s", nm->compile_id(), (nm->is_osr_method() ? "%" : ""));
   693           st->print("J %d%s", nm->compile_id(), (nm->is_osr_method() ? "%" : ""));
   691           st->print(" %s", nm->compiler_name());
   694           st->print(" %s", nm->compiler_name());
   692         }
   695         }
   693         m->name_and_sig_as_C_string(buf, buflen);
   696         m->name_and_sig_as_C_string(buf, buflen);
  1264     values.describe(-1, info_address, err_msg("#%d entry frame", frame_no), 2);
  1267     values.describe(-1, info_address, err_msg("#%d entry frame", frame_no), 2);
  1265   } else if (is_compiled_frame()) {
  1268   } else if (is_compiled_frame()) {
  1266     // For now just label the frame
  1269     // For now just label the frame
  1267     CompiledMethod* cm = (CompiledMethod*)cb();
  1270     CompiledMethod* cm = (CompiledMethod*)cb();
  1268     values.describe(-1, info_address,
  1271     values.describe(-1, info_address,
  1269                     FormatBuffer<1024>("#%d nmethod " INTPTR_FORMAT " for method %s%s", frame_no,
  1272                     FormatBuffer<1024>("#%d nmethod " INTPTR_FORMAT " for method %s%s%s", frame_no,
  1270                                        p2i(cm), cm->method()->name_and_sig_as_C_string(),
  1273                                        p2i(cm),
       
  1274                                        (cm->is_aot() ? "A ": "J "),
       
  1275                                        cm->method()->name_and_sig_as_C_string(),
  1271                                        (_deopt_state == is_deoptimized) ?
  1276                                        (_deopt_state == is_deoptimized) ?
  1272                                        " (deoptimized)" :
  1277                                        " (deoptimized)" :
  1273                                        ((_deopt_state == unknown) ? " (state unknown)" : "")),
  1278                                        ((_deopt_state == unknown) ? " (state unknown)" : "")),
  1274                     2);
  1279                     2);
  1275   } else if (is_native_frame()) {
  1280   } else if (is_native_frame()) {