src/share/vm/runtime/thread.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7090904 Sdiff src/share/vm/runtime

src/share/vm/runtime/thread.cpp

Print this page




2901   tty->print_cr("[Trace oops]");
2902   frames_do(oops_print);
2903 }
2904 
2905 
2906 #ifdef ASSERT
2907 // Print or validate the layout of stack frames
2908 void JavaThread::print_frame_layout(int depth, bool validate_only) {
2909   ResourceMark rm;
2910   PRESERVE_EXCEPTION_MARK;
2911   FrameValues values;
2912   int frame_no = 0;
2913   for(StackFrameStream fst(this, false); !fst.is_done(); fst.next()) {
2914     fst.current()->describe(values, ++frame_no);
2915     if (depth == frame_no) break;
2916   }
2917   if (validate_only) {
2918     values.validate();
2919   } else {
2920     tty->print_cr("[Describe stack layout]");
2921     values.print();
2922   }
2923 }
2924 #endif
2925 
2926 void JavaThread::trace_stack_from(vframe* start_vf) {
2927   ResourceMark rm;
2928   int vframe_no = 1;
2929   for (vframe* f = start_vf; f; f = f->sender() ) {
2930     if (f->is_java_frame()) {
2931       javaVFrame::cast(f)->print_activation(vframe_no++);
2932     } else {
2933       f->print();
2934     }
2935     if (vframe_no > StackPrintLimit) {
2936       tty->print_cr("...<more frames>...");
2937       return;
2938     }
2939   }
2940 }
2941 




2901   tty->print_cr("[Trace oops]");
2902   frames_do(oops_print);
2903 }
2904 
2905 
2906 #ifdef ASSERT
2907 // Print or validate the layout of stack frames
2908 void JavaThread::print_frame_layout(int depth, bool validate_only) {
2909   ResourceMark rm;
2910   PRESERVE_EXCEPTION_MARK;
2911   FrameValues values;
2912   int frame_no = 0;
2913   for(StackFrameStream fst(this, false); !fst.is_done(); fst.next()) {
2914     fst.current()->describe(values, ++frame_no);
2915     if (depth == frame_no) break;
2916   }
2917   if (validate_only) {
2918     values.validate();
2919   } else {
2920     tty->print_cr("[Describe stack layout]");
2921     values.print(this);
2922   }
2923 }
2924 #endif
2925 
2926 void JavaThread::trace_stack_from(vframe* start_vf) {
2927   ResourceMark rm;
2928   int vframe_no = 1;
2929   for (vframe* f = start_vf; f; f = f->sender() ) {
2930     if (f->is_java_frame()) {
2931       javaVFrame::cast(f)->print_activation(vframe_no++);
2932     } else {
2933       f->print();
2934     }
2935     if (vframe_no > StackPrintLimit) {
2936       tty->print_cr("...<more frames>...");
2937       return;
2938     }
2939   }
2940 }
2941 


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