src/share/vm/utilities/vmError.cpp

Print this page




 554 
 555        if (fr.sp()) {
 556          st->print(",  sp=" PTR_FORMAT, fr.sp());
 557          size_t free_stack_size = pointer_delta(fr.sp(), stack_bottom, 1024);
 558          st->print(",  free space=" SIZE_FORMAT "k", free_stack_size);
 559        }
 560 
 561        st->cr();
 562      }
 563 
 564   STEP(120, "(printing native stack)" )
 565 
 566      if (_verbose) {
 567        frame fr = _context ? os::fetch_frame_from_context(_context)
 568                            : os::current_frame();
 569 
 570        // see if it's a valid frame
 571        if (fr.pc()) {
 572           st->print_cr("Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)");
 573 
 574           // initialize decoder to decode C frames
 575           Decoder decoder;
 576 
 577           int count = 0;
 578           while (count++ < StackPrintLimit) {
 579              fr.print_on_error(st, buf, sizeof(buf));
 580              st->cr();
 581              if (os::is_first_C_frame(&fr)) break;
 582              fr = os::get_sender_for_C_frame(&fr);
 583           }
 584 
 585           if (count > StackPrintLimit) {
 586              st->print_cr("...<more frames>...");
 587           }
 588 
 589           st->cr();
 590        }
 591      }
 592 
 593   STEP(130, "(printing Java stack)" )
 594 
 595      if (_verbose && _thread && _thread->is_Java_thread()) {
 596        print_stack_trace(st, (JavaThread*)_thread, buf, sizeof(buf));




 554 
 555        if (fr.sp()) {
 556          st->print(",  sp=" PTR_FORMAT, fr.sp());
 557          size_t free_stack_size = pointer_delta(fr.sp(), stack_bottom, 1024);
 558          st->print(",  free space=" SIZE_FORMAT "k", free_stack_size);
 559        }
 560 
 561        st->cr();
 562      }
 563 
 564   STEP(120, "(printing native stack)" )
 565 
 566      if (_verbose) {
 567        frame fr = _context ? os::fetch_frame_from_context(_context)
 568                            : os::current_frame();
 569 
 570        // see if it's a valid frame
 571        if (fr.pc()) {
 572           st->print_cr("Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)");
 573 



 574           int count = 0;
 575           while (count++ < StackPrintLimit) {
 576              fr.print_on_error(st, buf, sizeof(buf));
 577              st->cr();
 578              if (os::is_first_C_frame(&fr)) break;
 579              fr = os::get_sender_for_C_frame(&fr);
 580           }
 581 
 582           if (count > StackPrintLimit) {
 583              st->print_cr("...<more frames>...");
 584           }
 585 
 586           st->cr();
 587        }
 588      }
 589 
 590   STEP(130, "(printing Java stack)" )
 591 
 592      if (_verbose && _thread && _thread->is_Java_thread()) {
 593        print_stack_trace(st, (JavaThread*)_thread, buf, sizeof(buf));