Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
d7769f60
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看板
提交
d7769f60
编写于
3月 13, 2018
作者:
F
fmatte
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8194642: Improve OOM error reporting for JDK8
Reviewed-by: dholmes, kevinw
上级
cc08c1ca
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
42 addition
and
13 deletion
+42
-13
src/share/vm/utilities/vmError.cpp
src/share/vm/utilities/vmError.cpp
+42
-13
未找到文件。
src/share/vm/utilities/vmError.cpp
浏览文件 @
d7769f60
...
@@ -304,6 +304,47 @@ void VMError::print_stack_trace(outputStream* st, JavaThread* jt,
...
@@ -304,6 +304,47 @@ void VMError::print_stack_trace(outputStream* st, JavaThread* jt,
#endif // ZERO
#endif // ZERO
}
}
static
void
print_oom_reasons
(
outputStream
*
st
)
{
st
->
print_cr
(
"# Possible reasons:"
);
st
->
print_cr
(
"# The system is out of physical RAM or swap space"
);
if
(
UseCompressedOops
)
{
st
->
print_cr
(
"# The process is running with CompressedOops enabled, and the Java Heap may be blocking the growth of the native heap"
);
}
if
(
LogBytesPerWord
==
2
)
{
st
->
print_cr
(
"# In 32 bit mode, the process size limit was hit"
);
}
st
->
print_cr
(
"# Possible solutions:"
);
st
->
print_cr
(
"# Reduce memory load on the system"
);
st
->
print_cr
(
"# Increase physical memory or swap space"
);
st
->
print_cr
(
"# Check if swap backing store is full"
);
if
(
LogBytesPerWord
==
2
)
{
st
->
print_cr
(
"# Use 64 bit Java on a 64 bit OS"
);
}
st
->
print_cr
(
"# Decrease Java heap size (-Xmx/-Xms)"
);
st
->
print_cr
(
"# Decrease number of Java threads"
);
st
->
print_cr
(
"# Decrease Java thread stack sizes (-Xss)"
);
st
->
print_cr
(
"# Set larger code cache with -XX:ReservedCodeCacheSize="
);
if
(
UseCompressedOops
)
{
switch
(
Universe
::
narrow_oop_mode
())
{
case
Universe
::
UnscaledNarrowOop
:
st
->
print_cr
(
"# JVM is running with Unscaled Compressed Oops mode in which the Java heap is"
);
st
->
print_cr
(
"# placed in the first 4GB address space. The Java Heap base address is the"
);
st
->
print_cr
(
"# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress"
);
st
->
print_cr
(
"# to set the Java Heap base and to place the Java Heap above 4GB virtual address."
);
break
;
case
Universe
::
ZeroBasedNarrowOop
:
st
->
print_cr
(
"# JVM is running with Zero Based Compressed Oops mode in which the Java heap is"
);
st
->
print_cr
(
"# placed in the first 32GB address space. The Java Heap base address is the"
);
st
->
print_cr
(
"# maximum limit for the native heap growth. Please use -XX:HeapBaseMinAddress"
);
st
->
print_cr
(
"# to set the Java Heap base and to place the Java Heap above 32GB virtual address."
);
break
;
default:
break
;
}
}
st
->
print_cr
(
"# This output file may be truncated or incomplete."
);
}
// This is the main function to report a fatal error. Only one thread can
// This is the main function to report a fatal error. Only one thread can
// call this function, so we don't need to worry about MT-safety. But it's
// call this function, so we don't need to worry about MT-safety. But it's
// possible that the error handler itself may crash or die on an internal
// possible that the error handler itself may crash or die on an internal
...
@@ -375,19 +416,7 @@ void VMError::report(outputStream* st) {
...
@@ -375,19 +416,7 @@ void VMError::report(outputStream* st) {
}
}
// In error file give some solutions
// In error file give some solutions
if
(
_verbose
)
{
if
(
_verbose
)
{
st
->
print_cr
(
"# Possible reasons:"
);
print_oom_reasons
(
st
);
st
->
print_cr
(
"# The system is out of physical RAM or swap space"
);
st
->
print_cr
(
"# In 32 bit mode, the process size limit was hit"
);
st
->
print_cr
(
"# Possible solutions:"
);
st
->
print_cr
(
"# Reduce memory load on the system"
);
st
->
print_cr
(
"# Increase physical memory or swap space"
);
st
->
print_cr
(
"# Check if swap backing store is full"
);
st
->
print_cr
(
"# Use 64 bit Java on a 64 bit OS"
);
st
->
print_cr
(
"# Decrease Java heap size (-Xmx/-Xms)"
);
st
->
print_cr
(
"# Decrease number of Java threads"
);
st
->
print_cr
(
"# Decrease Java thread stack sizes (-Xss)"
);
st
->
print_cr
(
"# Set larger code cache with -XX:ReservedCodeCacheSize="
);
st
->
print_cr
(
"# This output file may be truncated or incomplete."
);
}
else
{
}
else
{
return
;
// that's enough for the screen
return
;
// that's enough for the screen
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录