Mercurial > hg > graal-jvmci-8
comparison src/share/vm/utilities/vmError.cpp @ 16719:b1911c1e44c8
Dump disassembly in crash log
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Thu, 07 Aug 2014 11:06:09 -0700 |
parents | 4ca6dc0799b6 |
children | 3eed8712d410 |
comparison
equal
deleted
inserted
replaced
16718:4703a9442f3f | 16719:b1911c1e44c8 |
---|---|
22 * | 22 * |
23 */ | 23 */ |
24 | 24 |
25 #include "precompiled.hpp" | 25 #include "precompiled.hpp" |
26 #include "compiler/compileBroker.hpp" | 26 #include "compiler/compileBroker.hpp" |
27 #include "compiler/disassembler.hpp" | |
27 #include "gc_interface/collectedHeap.hpp" | 28 #include "gc_interface/collectedHeap.hpp" |
28 #include "prims/whitebox.hpp" | 29 #include "prims/whitebox.hpp" |
29 #include "runtime/arguments.hpp" | 30 #include "runtime/arguments.hpp" |
30 #include "runtime/frame.inline.hpp" | 31 #include "runtime/frame.inline.hpp" |
31 #include "runtime/init.hpp" | 32 #include "runtime/init.hpp" |
530 if (_verbose && _context) { | 531 if (_verbose && _context) { |
531 os::print_context(st, _context); | 532 os::print_context(st, _context); |
532 st->cr(); | 533 st->cr(); |
533 } | 534 } |
534 | 535 |
536 STEP(102, "(printing code blob if possible)") | |
537 | |
538 if (_verbose && _context) { | |
539 address pc = os::get_pc(_context); | |
540 CodeBlob* cb = CodeCache::find_blob(pc); | |
541 if (cb != NULL) { | |
542 if (Interpreter::contains(pc)) { | |
543 // The interpreter CodeBlob is very large so try to print the codelet instead. | |
544 InterpreterCodelet* codelet = Interpreter::codelet_containing(pc); | |
545 if (codelet != NULL) { | |
546 codelet->print_on(st); | |
547 Disassembler::decode(codelet->code_begin(), codelet->code_end(), st); | |
548 } | |
549 } else { | |
550 StubCodeDesc* desc = StubCodeDesc::desc_for(pc); | |
551 if (desc != NULL) { | |
552 desc->print_on(st); | |
553 Disassembler::decode(desc->begin(), desc->end(), st); | |
554 } else { | |
555 Disassembler::decode(cb, st); | |
556 st->cr(); | |
557 } | |
558 } | |
559 } | |
560 } | |
561 | |
535 STEP(105, "(printing register info)") | 562 STEP(105, "(printing register info)") |
536 | 563 |
537 // decode register contents if possible | 564 // decode register contents if possible |
538 if (_verbose && _context && Universe::is_fully_initialized()) { | 565 if (_verbose && _context && Universe::is_fully_initialized()) { |
539 os::print_register_info(st, _context); | 566 os::print_register_info(st, _context); |