< prev index next >

hotspot/src/share/vm/prims/stackwalk.cpp

Print this page

        

*** 111,121 **** for (; !stream.at_end(); stream.next()) { Method* method = stream.method(); int bci = stream.bci(); if (method == NULL) continue; ! if (!ShowHiddenFrames && StackWalk::skip_hidden_frames(mode)) { if (method->is_hidden()) { if (TraceStackWalk) { tty->print(" hidden method: "); method->print_short_name(); tty->print("\n"); } --- 111,124 ---- for (; !stream.at_end(); stream.next()) { Method* method = stream.method(); int bci = stream.bci(); if (method == NULL) continue; ! ! // skip hidden frames for default StackWalker option (i.e. SHOW_HIDDEN_FRAMES ! // not set) and when StackWalker::getCallerClass is called ! if (!ShowHiddenFrames && (skip_hidden_frames(mode) || get_caller_class(mode))) { if (method->is_hidden()) { if (TraceStackWalk) { tty->print(" hidden method: "); method->print_short_name(); tty->print("\n"); }
*** 137,147 **** } else if (need_method_info(mode)) { assert (use_frames_array(mode), "Bad mode for get stack frame"); Handle stackFrame(frames_array->obj_at(index)); fill_stackframe(stackFrame, method, bci); } else { ! assert (use_frames_array(mode) == false, "Bad mode for get caller class"); frames_array->obj_at_put(index, method->method_holder()->java_mirror()); } if (++frames_decoded >= max_nframes) break; } return frames_decoded; --- 140,156 ---- } else if (need_method_info(mode)) { assert (use_frames_array(mode), "Bad mode for get stack frame"); Handle stackFrame(frames_array->obj_at(index)); fill_stackframe(stackFrame, method, bci); } else { ! assert (get_caller_class(mode) == true, "Bad mode for get caller class"); ! if (index == start_index && method->caller_sensitive()) { ! THROW_MSG_0(vmSymbols::java_lang_UnsupportedOperationException(), ! err_msg("StackWalker::getCallerClass called from @CallerSensitive %s method", ! method->name_and_sig_as_C_string())); ! } ! frames_array->obj_at_put(index, method->method_holder()->java_mirror()); } if (++frames_decoded >= max_nframes) break; } return frames_decoded;
< prev index next >