Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
69240aab
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看板
提交
69240aab
编写于
4月 10, 2013
作者:
S
stefank
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8011872: Include Bit Map addresses in the hs_err files
Reviewed-by: brutisso, jmasa
上级
5ae8940b
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
98 addition
and
7 deletion
+98
-7
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
...ion/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+21
-0
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
...ion/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
+4
-0
src/share/vm/gc_implementation/g1/concurrentMark.cpp
src/share/vm/gc_implementation/g1/concurrentMark.cpp
+11
-0
src/share/vm/gc_implementation/g1/concurrentMark.hpp
src/share/vm/gc_implementation/g1/concurrentMark.hpp
+4
-0
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+9
-0
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
+1
-0
src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp
...e/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp
+6
-0
src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
..._implementation/parallelScavenge/parallelScavengeHeap.cpp
+9
-0
src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp
..._implementation/parallelScavenge/parallelScavengeHeap.hpp
+1
-0
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
.../gc_implementation/parallelScavenge/psParallelCompact.cpp
+4
-0
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
.../gc_implementation/parallelScavenge/psParallelCompact.hpp
+2
-0
src/share/vm/gc_interface/collectedHeap.hpp
src/share/vm/gc_interface/collectedHeap.hpp
+8
-0
src/share/vm/memory/genCollectedHeap.cpp
src/share/vm/memory/genCollectedHeap.cpp
+11
-0
src/share/vm/memory/genCollectedHeap.hpp
src/share/vm/memory/genCollectedHeap.hpp
+1
-0
src/share/vm/utilities/bitMap.cpp
src/share/vm/utilities/bitMap.cpp
+4
-0
src/share/vm/utilities/bitMap.hpp
src/share/vm/utilities/bitMap.hpp
+1
-0
src/share/vm/utilities/vmError.cpp
src/share/vm/utilities/vmError.cpp
+1
-7
未找到文件。
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
浏览文件 @
69240aab
...
...
@@ -2809,6 +2809,23 @@ bool CMSCollector::is_cms_reachable(HeapWord* addr) {
}
}
void
CMSCollector
::
print_on_error
(
outputStream
*
st
)
{
CMSCollector
*
collector
=
ConcurrentMarkSweepGeneration
::
_collector
;
if
(
collector
!=
NULL
)
{
CMSBitMap
*
bitmap
=
&
collector
->
_markBitMap
;
st
->
print_cr
(
"Marking Bits: (CMSBitMap*) "
PTR_FORMAT
,
bitmap
);
bitmap
->
print_on_error
(
st
,
" Bits: "
);
st
->
cr
();
CMSBitMap
*
mut_bitmap
=
&
collector
->
_modUnionTable
;
st
->
print_cr
(
"Mod Union Table: (CMSBitMap*) "
PTR_FORMAT
,
mut_bitmap
);
mut_bitmap
->
print_on_error
(
st
,
" Bits: "
);
}
}
////////////////////////////////////////////////////////
// CMS Verification Support
////////////////////////////////////////////////////////
...
...
@@ -6531,6 +6548,10 @@ void CMSBitMap::dirty_range_iterate_clear(MemRegion mr, MemRegionClosure* cl) {
}
}
void
CMSBitMap
::
print_on_error
(
outputStream
*
st
,
const
char
*
prefix
)
const
{
_bm
.
print_on_error
(
st
,
prefix
);
}
#ifndef PRODUCT
void
CMSBitMap
::
assert_locked
()
const
{
CMSLockVerifier
::
assert_locked
(
lock
());
...
...
src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp
浏览文件 @
69240aab
...
...
@@ -151,6 +151,8 @@ class CMSBitMap VALUE_OBJ_CLASS_SPEC {
size_t
heapWordToOffset
(
HeapWord
*
addr
)
const
;
size_t
heapWordDiffToOffsetDiff
(
size_t
diff
)
const
;
void
print_on_error
(
outputStream
*
st
,
const
char
*
prefix
)
const
;
// debugging
// is this address range covered by the bit-map?
NOT_PRODUCT
(
...
...
@@ -984,6 +986,8 @@ class CMSCollector: public CHeapObj<mtGC> {
CMSAdaptiveSizePolicy
*
size_policy
();
CMSGCAdaptivePolicyCounters
*
gc_adaptive_policy_counters
();
static
void
print_on_error
(
outputStream
*
st
);
// debugging
void
verify
();
bool
verify_after_remark
();
...
...
src/share/vm/gc_implementation/g1/concurrentMark.cpp
浏览文件 @
69240aab
...
...
@@ -101,6 +101,10 @@ bool CMBitMapRO::covers(ReservedSpace heap_rs) const {
}
#endif
void
CMBitMapRO
::
print_on_error
(
outputStream
*
st
,
const
char
*
prefix
)
const
{
_bm
.
print_on_error
(
st
,
prefix
);
}
bool
CMBitMap
::
allocate
(
ReservedSpace
heap_rs
)
{
_bmStartWord
=
(
HeapWord
*
)(
heap_rs
.
base
());
_bmWordSize
=
heap_rs
.
size
()
/
HeapWordSize
;
// heap_rs.size() is in bytes
...
...
@@ -3277,6 +3281,13 @@ void ConcurrentMark::print_worker_threads_on(outputStream* st) const {
}
}
void
ConcurrentMark
::
print_on_error
(
outputStream
*
st
)
const
{
st
->
print_cr
(
"Marking Bits (Prev, Next): (CMBitMap*) "
PTR_FORMAT
", (CMBitMap*) "
PTR_FORMAT
,
_prevMarkBitMap
,
_nextMarkBitMap
);
_prevMarkBitMap
->
print_on_error
(
st
,
" Prev Bits: "
);
_nextMarkBitMap
->
print_on_error
(
st
,
" Next Bits: "
);
}
// We take a break if someone is trying to stop the world.
bool
ConcurrentMark
::
do_yield_check
(
uint
worker_id
)
{
if
(
should_yield
())
{
...
...
src/share/vm/gc_implementation/g1/concurrentMark.hpp
浏览文件 @
69240aab
...
...
@@ -113,6 +113,8 @@ class CMBitMapRO VALUE_OBJ_CLASS_SPEC {
return
res
;
}
void
print_on_error
(
outputStream
*
st
,
const
char
*
prefix
)
const
;
// debugging
NOT_PRODUCT
(
bool
covers
(
ReservedSpace
rs
)
const
;)
};
...
...
@@ -829,6 +831,8 @@ public:
void
print_worker_threads_on
(
outputStream
*
st
)
const
;
void
print_on_error
(
outputStream
*
st
)
const
;
// The following indicate whether a given verbose level has been
// set. Notice that anything above stats is conditional to
// _MARKING_VERBOSE_ having been set to 1
...
...
src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
浏览文件 @
69240aab
...
...
@@ -3427,6 +3427,15 @@ void G1CollectedHeap::print_extended_on(outputStream* st) const {
heap_region_iterate
(
&
blk
);
}
void
G1CollectedHeap
::
print_on_error
(
outputStream
*
st
)
const
{
this
->
CollectedHeap
::
print_on_error
(
st
);
if
(
_cm
!=
NULL
)
{
st
->
cr
();
_cm
->
print_on_error
(
st
);
}
}
void
G1CollectedHeap
::
print_gc_threads_on
(
outputStream
*
st
)
const
{
if
(
G1CollectedHeap
::
use_parallel_gc_threads
())
{
workers
()
->
print_worker_threads_on
(
st
);
...
...
src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp
浏览文件 @
69240aab
...
...
@@ -1575,6 +1575,7 @@ public:
virtual
void
verify
(
bool
silent
);
virtual
void
print_on
(
outputStream
*
st
)
const
;
virtual
void
print_extended_on
(
outputStream
*
st
)
const
;
virtual
void
print_on_error
(
outputStream
*
st
)
const
;
virtual
void
print_gc_threads_on
(
outputStream
*
st
)
const
;
virtual
void
gc_threads_do
(
ThreadClosure
*
tc
)
const
;
...
...
src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp
浏览文件 @
69240aab
...
...
@@ -173,6 +173,12 @@ public:
void
reset_counters
();
#endif // #ifndef PRODUCT
void
print_on_error
(
outputStream
*
st
)
const
{
st
->
print_cr
(
"Marking Bits: (ParMarkBitMap*) "
PTR_FORMAT
,
this
);
_beg_bits
.
print_on_error
(
st
,
" Begin Bits: "
);
_end_bits
.
print_on_error
(
st
,
" End Bits: "
);
}
#ifdef ASSERT
void
verify_clear
()
const
;
inline
void
verify_bit
(
idx_t
bit
)
const
;
...
...
src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
浏览文件 @
69240aab
...
...
@@ -648,6 +648,15 @@ void ParallelScavengeHeap::print_on(outputStream* st) const {
MetaspaceAux
::
print_on
(
st
);
}
void
ParallelScavengeHeap
::
print_on_error
(
outputStream
*
st
)
const
{
this
->
CollectedHeap
::
print_on_error
(
st
);
if
(
UseParallelOldGC
)
{
st
->
cr
();
PSParallelCompact
::
print_on_error
(
st
);
}
}
void
ParallelScavengeHeap
::
gc_threads_do
(
ThreadClosure
*
tc
)
const
{
PSScavenge
::
gc_task_manager
()
->
threads_do
(
tc
);
}
...
...
src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.hpp
浏览文件 @
69240aab
...
...
@@ -220,6 +220,7 @@ class ParallelScavengeHeap : public CollectedHeap {
void
prepare_for_verify
();
virtual
void
print_on
(
outputStream
*
st
)
const
;
virtual
void
print_on_error
(
outputStream
*
st
)
const
;
virtual
void
print_gc_threads_on
(
outputStream
*
st
)
const
;
virtual
void
gc_threads_do
(
ThreadClosure
*
tc
)
const
;
virtual
void
print_tracing_info
()
const
;
...
...
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
浏览文件 @
69240aab
...
...
@@ -165,6 +165,10 @@ void SplitInfo::verify_clear()
#endif // #ifdef ASSERT
void
PSParallelCompact
::
print_on_error
(
outputStream
*
st
)
{
_mark_bitmap
.
print_on_error
(
st
);
}
#ifndef PRODUCT
const
char
*
PSParallelCompact
::
space_names
[]
=
{
"old "
,
"eden"
,
"from"
,
"to "
...
...
src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
浏览文件 @
69240aab
...
...
@@ -1163,6 +1163,8 @@ class PSParallelCompact : AllStatic {
// Time since last full gc (in milliseconds).
static
jlong
millis_since_last_gc
();
static
void
print_on_error
(
outputStream
*
st
);
#ifndef PRODUCT
// Debugging support.
static
const
char
*
space_names
[
last_space_id
];
...
...
src/share/vm/gc_interface/collectedHeap.hpp
浏览文件 @
69240aab
...
...
@@ -567,6 +567,14 @@ class CollectedHeap : public CHeapObj<mtInternal> {
print_on
(
st
);
}
virtual
void
print_on_error
(
outputStream
*
st
)
const
{
st
->
print_cr
(
"Heap:"
);
print_extended_on
(
st
);
st
->
cr
();
_barrier_set
->
print_on
(
st
);
}
// Print all GC threads (other than the VM thread)
// used by this heap.
virtual
void
print_gc_threads_on
(
outputStream
*
st
)
const
=
0
;
...
...
src/share/vm/memory/genCollectedHeap.cpp
浏览文件 @
69240aab
...
...
@@ -1133,6 +1133,17 @@ void GenCollectedHeap::print_gc_threads_on(outputStream* st) const {
#endif // INCLUDE_ALL_GCS
}
void
GenCollectedHeap
::
print_on_error
(
outputStream
*
st
)
const
{
this
->
CollectedHeap
::
print_on_error
(
st
);
#if INCLUDE_ALL_GCS
if
(
UseConcMarkSweepGC
)
{
st
->
cr
();
CMSCollector
::
print_on_error
(
st
);
}
#endif // INCLUDE_ALL_GCS
}
void
GenCollectedHeap
::
print_tracing_info
()
const
{
if
(
TraceGen0Time
)
{
get_gen
(
0
)
->
print_summary_info
();
...
...
src/share/vm/memory/genCollectedHeap.hpp
浏览文件 @
69240aab
...
...
@@ -344,6 +344,7 @@ public:
virtual
void
print_gc_threads_on
(
outputStream
*
st
)
const
;
virtual
void
gc_threads_do
(
ThreadClosure
*
tc
)
const
;
virtual
void
print_tracing_info
()
const
;
virtual
void
print_on_error
(
outputStream
*
st
)
const
;
// PrintGC, PrintGCDetails support
void
print_heap_change
(
size_t
prev_used
)
const
;
...
...
src/share/vm/utilities/bitMap.cpp
浏览文件 @
69240aab
...
...
@@ -516,6 +516,10 @@ BitMap::idx_t BitMap::count_one_bits() const {
return
sum
;
}
void
BitMap
::
print_on_error
(
outputStream
*
st
,
const
char
*
prefix
)
const
{
st
->
print_cr
(
"%s["
PTR_FORMAT
", "
PTR_FORMAT
")"
,
prefix
,
map
(),
(
char
*
)
map
()
+
(
size
()
>>
LogBitsPerByte
));
}
#ifndef PRODUCT
...
...
src/share/vm/utilities/bitMap.hpp
浏览文件 @
69240aab
...
...
@@ -262,6 +262,7 @@ class BitMap VALUE_OBJ_CLASS_SPEC {
bool
is_full
()
const
;
bool
is_empty
()
const
;
void
print_on_error
(
outputStream
*
st
,
const
char
*
prefix
)
const
;
#ifndef PRODUCT
public:
...
...
src/share/vm/utilities/vmError.cpp
浏览文件 @
69240aab
...
...
@@ -685,13 +685,7 @@ void VMError::report(outputStream* st) {
STEP
(
190
,
"(printing heap information)"
)
if
(
_verbose
&&
Universe
::
is_fully_initialized
())
{
// Print heap information before vm abort. As we'd like as much
// information as possible in the report we ask for the
// extended (i.e., more detailed) version.
Universe
::
print_on
(
st
,
true
/* extended */
);
st
->
cr
();
Universe
::
heap
()
->
barrier_set
()
->
print_on
(
st
);
Universe
::
heap
()
->
print_on_error
(
st
);
st
->
cr
();
st
->
print_cr
(
"Polling page: "
INTPTR_FORMAT
,
os
::
get_polling_page
());
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录