comparison src/share/vm/runtime/thread.cpp @ 3336:2e038ad0c1d0

7009361: JSR 292 Invalid value on stack on solaris-sparc with -Xcomp Reviewed-by: kvn, twisti
author never
date Mon, 02 May 2011 18:53:37 -0700
parents 38fea01eb669
children f52ed367b66d
comparison
equal deleted inserted replaced
3335:49d67a090fe2 3336:2e038ad0c1d0
29 #include "classfile/vmSymbols.hpp" 29 #include "classfile/vmSymbols.hpp"
30 #include "code/scopeDesc.hpp" 30 #include "code/scopeDesc.hpp"
31 #include "compiler/compileBroker.hpp" 31 #include "compiler/compileBroker.hpp"
32 #include "interpreter/interpreter.hpp" 32 #include "interpreter/interpreter.hpp"
33 #include "interpreter/linkResolver.hpp" 33 #include "interpreter/linkResolver.hpp"
34 #include "interpreter/oopMapCache.hpp"
34 #include "jvmtifiles/jvmtiEnv.hpp" 35 #include "jvmtifiles/jvmtiEnv.hpp"
35 #include "memory/oopFactory.hpp" 36 #include "memory/oopFactory.hpp"
36 #include "memory/universe.inline.hpp" 37 #include "memory/universe.inline.hpp"
37 #include "oops/instanceKlass.hpp" 38 #include "oops/instanceKlass.hpp"
38 #include "oops/objArrayOop.hpp" 39 #include "oops/objArrayOop.hpp"
2858 tty->cr(); 2859 tty->cr();
2859 } 2860 }
2860 } 2861 }
2861 2862
2862 2863
2864 // Print or validate the layout of stack frames
2865 void JavaThread::print_frame_layout(int depth, bool validate_only) {
2866 ResourceMark rm;
2867 PRESERVE_EXCEPTION_MARK;
2868 FrameValues values;
2869 int frame_no = 0;
2870 for(StackFrameStream fst(this, false); !fst.is_done(); fst.next()) {
2871 fst.current()->describe(values, ++frame_no);
2872 if (depth == frame_no) break;
2873 }
2874 if (validate_only) {
2875 values.validate();
2876 } else {
2877 tty->print_cr("[Describe stack layout]");
2878 values.print();
2879 }
2880 }
2881
2882
2863 void JavaThread::trace_stack_from(vframe* start_vf) { 2883 void JavaThread::trace_stack_from(vframe* start_vf) {
2864 ResourceMark rm; 2884 ResourceMark rm;
2865 int vframe_no = 1; 2885 int vframe_no = 1;
2866 for (vframe* f = start_vf; f; f = f->sender() ) { 2886 for (vframe* f = start_vf; f; f = f->sender() ) {
2867 if (f->is_java_frame()) { 2887 if (f->is_java_frame()) {