Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
08a42356
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
08a42356
编写于
5月 30, 2013
作者:
J
jiangli
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
01508cd1
c8b0321d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
43 addition
and
16 deletion
+43
-16
make/excludeSrc.make
make/excludeSrc.make
+1
-1
src/share/vm/prims/forte.cpp
src/share/vm/prims/forte.cpp
+24
-14
src/share/vm/services/memTracker.cpp
src/share/vm/services/memTracker.cpp
+10
-1
src/share/vm/utilities/globalDefinitions.hpp
src/share/vm/utilities/globalDefinitions.hpp
+8
-0
未找到文件。
make/excludeSrc.make
浏览文件 @
08a42356
...
@@ -25,7 +25,7 @@ ifeq ($(INCLUDE_JVMTI), false)
...
@@ -25,7 +25,7 @@ ifeq ($(INCLUDE_JVMTI), false)
CXXFLAGS
+=
-DINCLUDE_JVMTI
=
0
CXXFLAGS
+=
-DINCLUDE_JVMTI
=
0
CFLAGS
+=
-DINCLUDE_JVMTI
=
0
CFLAGS
+=
-DINCLUDE_JVMTI
=
0
Src_Files_EXCLUDE
+=
jvmtiGetLoadedClasses.cpp
forte.cpp
jvmtiThreadState.cpp jvmtiExtensions.cpp
\
Src_Files_EXCLUDE
+=
jvmtiGetLoadedClasses.cpp jvmtiThreadState.cpp jvmtiExtensions.cpp
\
jvmtiImpl.cpp jvmtiManageCapabilities.cpp jvmtiRawMonitor.cpp jvmtiUtil.cpp jvmtiTrace.cpp
\
jvmtiImpl.cpp jvmtiManageCapabilities.cpp jvmtiRawMonitor.cpp jvmtiUtil.cpp jvmtiTrace.cpp
\
jvmtiCodeBlobEvents.cpp jvmtiEnv.cpp jvmtiRedefineClasses.cpp jvmtiEnvBase.cpp jvmtiEnvThreadState.cpp
\
jvmtiCodeBlobEvents.cpp jvmtiEnv.cpp jvmtiRedefineClasses.cpp jvmtiEnvBase.cpp jvmtiEnvThreadState.cpp
\
jvmtiTagMap.cpp jvmtiEventController.cpp evmCompat.cpp jvmtiEnter.xsl jvmtiExport.cpp
\
jvmtiTagMap.cpp jvmtiEventController.cpp evmCompat.cpp jvmtiEnter.xsl jvmtiExport.cpp
\
...
...
src/share/vm/prims/forte.cpp
浏览文件 @
08a42356
...
@@ -35,6 +35,19 @@
...
@@ -35,6 +35,19 @@
#include "runtime/vframe.hpp"
#include "runtime/vframe.hpp"
#include "runtime/vframeArray.hpp"
#include "runtime/vframeArray.hpp"
// call frame copied from old .h file and renamed
typedef
struct
{
jint
lineno
;
// line number in the source file
jmethodID
method_id
;
// method executed in this frame
}
ASGCT_CallFrame
;
// call trace copied from old .h file and renamed
typedef
struct
{
JNIEnv
*
env_id
;
// Env where trace was recorded
jint
num_frames
;
// number of frames in this trace
ASGCT_CallFrame
*
frames
;
// frames
}
ASGCT_CallTrace
;
// These name match the names reported by the forte quality kit
// These name match the names reported by the forte quality kit
enum
{
enum
{
ticks_no_Java_frame
=
0
,
ticks_no_Java_frame
=
0
,
...
@@ -50,6 +63,8 @@ enum {
...
@@ -50,6 +63,8 @@ enum {
ticks_safepoint
=
-
10
ticks_safepoint
=
-
10
};
};
#if INCLUDE_JVMTI
//-------------------------------------------------------
//-------------------------------------------------------
// Native interfaces for use by Forte tools.
// Native interfaces for use by Forte tools.
...
@@ -360,20 +375,6 @@ static bool find_initial_Java_frame(JavaThread* thread,
...
@@ -360,20 +375,6 @@ static bool find_initial_Java_frame(JavaThread* thread,
}
}
// call frame copied from old .h file and renamed
typedef
struct
{
jint
lineno
;
// line number in the source file
jmethodID
method_id
;
// method executed in this frame
}
ASGCT_CallFrame
;
// call trace copied from old .h file and renamed
typedef
struct
{
JNIEnv
*
env_id
;
// Env where trace was recorded
jint
num_frames
;
// number of frames in this trace
ASGCT_CallFrame
*
frames
;
// frames
}
ASGCT_CallTrace
;
static
void
forte_fill_call_trace_given_top
(
JavaThread
*
thd
,
static
void
forte_fill_call_trace_given_top
(
JavaThread
*
thd
,
ASGCT_CallTrace
*
trace
,
ASGCT_CallTrace
*
trace
,
int
depth
,
int
depth
,
...
@@ -634,3 +635,12 @@ void Forte::register_stub(const char* name, address start, address end) {
...
@@ -634,3 +635,12 @@ void Forte::register_stub(const char* name, address start, address end) {
pointer_delta
(
end
,
start
,
sizeof
(
jbyte
)),
0
,
NULL
);
pointer_delta
(
end
,
start
,
sizeof
(
jbyte
)),
0
,
NULL
);
#endif // !_WINDOWS && !IA64
#endif // !_WINDOWS && !IA64
}
}
#else // INCLUDE_JVMTI
extern
"C"
{
JNIEXPORT
void
AsyncGetCallTrace
(
ASGCT_CallTrace
*
trace
,
jint
depth
,
void
*
ucontext
)
{
trace
->
num_frames
=
ticks_no_class_load
;
// -1
}
}
#endif // INCLUDE_JVMTI
src/share/vm/services/memTracker.cpp
浏览文件 @
08a42356
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include "services/memReporter.hpp"
#include "services/memReporter.hpp"
#include "services/memTracker.hpp"
#include "services/memTracker.hpp"
#include "utilities/decoder.hpp"
#include "utilities/decoder.hpp"
#include "utilities/defaultStream.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/globalDefinitions.hpp"
bool
NMT_track_callsite
=
false
;
bool
NMT_track_callsite
=
false
;
...
@@ -77,7 +78,15 @@ void MemTracker::init_tracking_options(const char* option_line) {
...
@@ -77,7 +78,15 @@ void MemTracker::init_tracking_options(const char* option_line) {
if
(
strcmp
(
option_line
,
"=summary"
)
==
0
)
{
if
(
strcmp
(
option_line
,
"=summary"
)
==
0
)
{
_tracking_level
=
NMT_summary
;
_tracking_level
=
NMT_summary
;
}
else
if
(
strcmp
(
option_line
,
"=detail"
)
==
0
)
{
}
else
if
(
strcmp
(
option_line
,
"=detail"
)
==
0
)
{
_tracking_level
=
NMT_detail
;
// detail relies on a stack-walking ability that may not
// be available depending on platform and/or compiler flags
if
(
PLATFORM_NMT_DETAIL_SUPPORTED
)
{
_tracking_level
=
NMT_detail
;
}
else
{
jio_fprintf
(
defaultStream
::
error_stream
(),
"NMT detail is not supported on this platform. Using NMT summary instead."
);
_tracking_level
=
NMT_summary
;
}
}
else
if
(
strcmp
(
option_line
,
"=off"
)
!=
0
)
{
}
else
if
(
strcmp
(
option_line
,
"=off"
)
!=
0
)
{
vm_exit_during_initialization
(
"Syntax error, expecting -XX:NativeMemoryTracking=[off|summary|detail]"
,
NULL
);
vm_exit_during_initialization
(
"Syntax error, expecting -XX:NativeMemoryTracking=[off|summary|detail]"
,
NULL
);
}
}
...
...
src/share/vm/utilities/globalDefinitions.hpp
浏览文件 @
08a42356
...
@@ -380,6 +380,14 @@ const uint64_t KlassEncodingMetaspaceMax = (uint64_t(max_juint) + 1) << LogKlass
...
@@ -380,6 +380,14 @@ const uint64_t KlassEncodingMetaspaceMax = (uint64_t(max_juint) + 1) << LogKlass
# include "globalDefinitions_ppc.hpp"
# include "globalDefinitions_ppc.hpp"
#endif
#endif
/*
* If a platform does not support NMT_detail
* the platform specific globalDefinitions (above)
* can set PLATFORM_NMT_DETAIL_SUPPORTED to false
*/
#ifndef PLATFORM_NMT_DETAIL_SUPPORTED
#define PLATFORM_NMT_DETAIL_SUPPORTED true
#endif
// The byte alignment to be used by Arena::Amalloc. See bugid 4169348.
// The byte alignment to be used by Arena::Amalloc. See bugid 4169348.
// Note: this value must be a power of 2
// Note: this value must be a power of 2
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录