< prev index next >
src/hotspot/share/jfr/periodic/sampling/jfrCallTrace.cpp
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 25,45 ****
#include "precompiled.hpp"
#include "code/debugInfoRec.hpp"
#include "code/nmethod.hpp"
#include "code/pcDesc.hpp"
#include "jfr/periodic/sampling/jfrCallTrace.hpp"
#include "oops/method.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/frame.inline.hpp"
#include "runtime/registerMap.hpp"
#include "runtime/thread.inline.hpp"
bool JfrGetCallTrace::find_top_frame(frame& top_frame, Method** method, frame& first_frame) {
assert(top_frame.cb() != NULL, "invariant");
RegisterMap map(_thread, false);
frame candidate = top_frame;
! for (int i = 0; i < MaxJavaStackTraceDepth * 2; ++i) {
if (candidate.is_entry_frame()) {
JavaCallWrapper *jcw = candidate.entry_frame_call_wrapper_if_safe(_thread);
if (jcw == NULL || jcw->is_first_frame()) {
return false;
}
--- 25,46 ----
#include "precompiled.hpp"
#include "code/debugInfoRec.hpp"
#include "code/nmethod.hpp"
#include "code/pcDesc.hpp"
#include "jfr/periodic/sampling/jfrCallTrace.hpp"
+ #include "jfr/utilities/jfrTypes.hpp"
#include "oops/method.hpp"
#include "runtime/javaCalls.hpp"
#include "runtime/frame.inline.hpp"
#include "runtime/registerMap.hpp"
#include "runtime/thread.inline.hpp"
bool JfrGetCallTrace::find_top_frame(frame& top_frame, Method** method, frame& first_frame) {
assert(top_frame.cb() != NULL, "invariant");
RegisterMap map(_thread, false);
frame candidate = top_frame;
! for (u4 i = 0; i < MAX_STACK_DEPTH * 2; ++i) {
if (candidate.is_entry_frame()) {
JavaCallWrapper *jcw = candidate.entry_frame_call_wrapper_if_safe(_thread);
if (jcw == NULL || jcw->is_first_frame()) {
return false;
}
< prev index next >