src/share/vm/utilities/vmError.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6970683 Sdiff src/share/vm/utilities

src/share/vm/utilities/vmError.cpp

Print this page




 438        }
 439        st->cr();
 440      }
 441 
 442   STEP(90, "(printing siginfo)" )
 443 
 444      // signal no, signal code, address that caused the fault
 445      if (_verbose && _siginfo) {
 446        os::print_siginfo(st, _siginfo);
 447        st->cr();
 448      }
 449 
 450   STEP(100, "(printing registers, top of stack, instructions near pc)")
 451 
 452      // registers, top of stack, instructions near pc
 453      if (_verbose && _context) {
 454        os::print_context(st, _context);
 455        st->cr();
 456      }
 457 








 458   STEP(110, "(printing stack bounds)" )
 459 
 460      if (_verbose) {
 461        st->print("Stack: ");
 462 
 463        address stack_top;
 464        size_t stack_size;
 465 
 466        if (_thread) {
 467           stack_top = _thread->stack_base();
 468           stack_size = _thread->stack_size();
 469        } else {
 470           stack_top = os::current_stack_base();
 471           stack_size = os::current_stack_size();
 472        }
 473 
 474        address stack_bottom = stack_top - stack_size;
 475        st->print("[" PTR_FORMAT "," PTR_FORMAT "]", stack_bottom, stack_top);
 476 
 477        frame fr = _context ? os::fetch_frame_from_context(_context)


 505              fr = os::get_sender_for_C_frame(&fr);
 506           }
 507 
 508           if (count > StackPrintLimit) {
 509              st->print_cr("...<more frames>...");
 510           }
 511 
 512           st->cr();
 513        }
 514      }
 515 
 516   STEP(130, "(printing Java stack)" )
 517 
 518      if (_verbose && _thread && _thread->is_Java_thread()) {
 519        print_stack_trace(st, (JavaThread*)_thread, buf, sizeof(buf));
 520      }
 521 
 522   STEP(135, "(printing target Java thread stack)" )
 523 
 524      // printing Java thread stack trace if it is involved in GC crash
 525      if (_verbose && (_thread->is_Named_thread())) {
 526        JavaThread*  jt = ((NamedThread *)_thread)->processed_thread();
 527        if (jt != NULL) {
 528          st->print_cr("JavaThread " PTR_FORMAT " (nid = " UINTX_FORMAT ") was being processed", jt, jt->osthread()->thread_id());
 529          print_stack_trace(st, jt, buf, sizeof(buf), true);
 530        }
 531      }
 532 
 533   STEP(140, "(printing VM operation)" )
 534 
 535      if (_verbose && _thread && _thread->is_VM_thread()) {
 536         VMThread* t = (VMThread*)_thread;
 537         VM_Operation* op = t->vm_operation();
 538         if (op) {
 539           op->print_on_error(st);
 540           st->cr();
 541           st->cr();
 542         }
 543      }
 544 
 545   STEP(150, "(printing current compile task)" )


 590        }
 591        st->cr();
 592        st->cr();
 593      }
 594 
 595   STEP(180, "(printing owned locks on error)" )
 596 
 597      // mutexes/monitors that currently have an owner
 598      if (_verbose) {
 599        print_owned_locks_on_error(st);
 600        st->cr();
 601      }
 602 
 603   STEP(190, "(printing heap information)" )
 604 
 605      if (_verbose && Universe::is_fully_initialized()) {
 606        // print heap information before vm abort
 607        Universe::print_on(st);
 608        st->cr();
 609      }








 610 
 611   STEP(200, "(printing dynamic libraries)" )
 612 
 613      if (_verbose) {
 614        // dynamic libraries, or memory map
 615        os::print_dll_info(st);
 616        st->cr();
 617      }
 618 
 619   STEP(210, "(printing VM options)" )
 620 
 621      if (_verbose) {
 622        // VM options
 623        Arguments::print_on(st);
 624        st->cr();
 625      }
 626 
 627   STEP(220, "(printing environment variables)" )
 628 
 629      if (_verbose) {




 438        }
 439        st->cr();
 440      }
 441 
 442   STEP(90, "(printing siginfo)" )
 443 
 444      // signal no, signal code, address that caused the fault
 445      if (_verbose && _siginfo) {
 446        os::print_siginfo(st, _siginfo);
 447        st->cr();
 448      }
 449 
 450   STEP(100, "(printing registers, top of stack, instructions near pc)")
 451 
 452      // registers, top of stack, instructions near pc
 453      if (_verbose && _context) {
 454        os::print_context(st, _context);
 455        st->cr();
 456      }
 457 
 458   STEP(105, "(printing register info)")
 459 
 460      // decode register contents if possible
 461      if (_verbose && _context && Universe::is_fully_initialized()) {
 462        os::print_register_info(st, _context);
 463        st->cr();
 464      }
 465 
 466   STEP(110, "(printing stack bounds)" )
 467 
 468      if (_verbose) {
 469        st->print("Stack: ");
 470 
 471        address stack_top;
 472        size_t stack_size;
 473 
 474        if (_thread) {
 475           stack_top = _thread->stack_base();
 476           stack_size = _thread->stack_size();
 477        } else {
 478           stack_top = os::current_stack_base();
 479           stack_size = os::current_stack_size();
 480        }
 481 
 482        address stack_bottom = stack_top - stack_size;
 483        st->print("[" PTR_FORMAT "," PTR_FORMAT "]", stack_bottom, stack_top);
 484 
 485        frame fr = _context ? os::fetch_frame_from_context(_context)


 513              fr = os::get_sender_for_C_frame(&fr);
 514           }
 515 
 516           if (count > StackPrintLimit) {
 517              st->print_cr("...<more frames>...");
 518           }
 519 
 520           st->cr();
 521        }
 522      }
 523 
 524   STEP(130, "(printing Java stack)" )
 525 
 526      if (_verbose && _thread && _thread->is_Java_thread()) {
 527        print_stack_trace(st, (JavaThread*)_thread, buf, sizeof(buf));
 528      }
 529 
 530   STEP(135, "(printing target Java thread stack)" )
 531 
 532      // printing Java thread stack trace if it is involved in GC crash
 533      if (_verbose && _thread && (_thread->is_Named_thread())) {
 534        JavaThread*  jt = ((NamedThread *)_thread)->processed_thread();
 535        if (jt != NULL) {
 536          st->print_cr("JavaThread " PTR_FORMAT " (nid = " UINTX_FORMAT ") was being processed", jt, jt->osthread()->thread_id());
 537          print_stack_trace(st, jt, buf, sizeof(buf), true);
 538        }
 539      }
 540 
 541   STEP(140, "(printing VM operation)" )
 542 
 543      if (_verbose && _thread && _thread->is_VM_thread()) {
 544         VMThread* t = (VMThread*)_thread;
 545         VM_Operation* op = t->vm_operation();
 546         if (op) {
 547           op->print_on_error(st);
 548           st->cr();
 549           st->cr();
 550         }
 551      }
 552 
 553   STEP(150, "(printing current compile task)" )


 598        }
 599        st->cr();
 600        st->cr();
 601      }
 602 
 603   STEP(180, "(printing owned locks on error)" )
 604 
 605      // mutexes/monitors that currently have an owner
 606      if (_verbose) {
 607        print_owned_locks_on_error(st);
 608        st->cr();
 609      }
 610 
 611   STEP(190, "(printing heap information)" )
 612 
 613      if (_verbose && Universe::is_fully_initialized()) {
 614        // print heap information before vm abort
 615        Universe::print_on(st);
 616        st->cr();
 617      }
 618 
 619   STEP(195, "(printing code cache information)" )
 620 
 621      if (_verbose && Universe::is_fully_initialized()) {
 622        // print code cache information before vm abort
 623        CodeCache::print_bounds(st);
 624        st->cr();
 625      }
 626 
 627   STEP(200, "(printing dynamic libraries)" )
 628 
 629      if (_verbose) {
 630        // dynamic libraries, or memory map
 631        os::print_dll_info(st);
 632        st->cr();
 633      }
 634 
 635   STEP(210, "(printing VM options)" )
 636 
 637      if (_verbose) {
 638        // VM options
 639        Arguments::print_on(st);
 640        st->cr();
 641      }
 642 
 643   STEP(220, "(printing environment variables)" )
 644 
 645      if (_verbose) {


src/share/vm/utilities/vmError.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File