< prev index next >
src/share/vm/services/heapDumper.cpp
Print this page
rev 12854 : [mq]: gcinterface.patch
*** 43,55 ****
#include "runtime/vm_operations.hpp"
#include "services/heapDumper.hpp"
#include "services/threadService.hpp"
#include "utilities/macros.hpp"
#include "utilities/ostream.hpp"
- #if INCLUDE_ALL_GCS
- #include "gc/parallel/parallelScavengeHeap.hpp"
- #endif // INCLUDE_ALL_GCS
/*
* HPROF binary format - description copied from:
* src/share/demo/jvmti/hprof/hprof_io.c
*
--- 43,52 ----
*** 1750,1760 ****
// roots.
void VM_HeapDumper::doit() {
HandleMark hm;
! CollectedHeap* ch = Universe::heap();
ch->ensure_parsability(false); // must happen, even if collection does
// not happen (e.g. due to GCLocker)
if (_gc_before_heap_dump) {
--- 1747,1757 ----
// roots.
void VM_HeapDumper::doit() {
HandleMark hm;
! CollectedHeap* ch = GC::gc()->heap();
ch->ensure_parsability(false); // must happen, even if collection does
// not happen (e.g. due to GCLocker)
if (_gc_before_heap_dump) {
*** 1805,1815 ****
// to check if the current segment exceeds a threshold. If so, a new
// segment is started.
// The HPROF_GC_CLASS_DUMP and HPROF_GC_INSTANCE_DUMP are the vast bulk
// of the heap dump.
HeapObjectDumper obj_dumper(this, writer());
! Universe::heap()->safe_object_iterate(&obj_dumper);
// HPROF_GC_ROOT_THREAD_OBJ + frames + jni locals
do_threads();
check_segment_length();
--- 1802,1812 ----
// to check if the current segment exceeds a threshold. If so, a new
// segment is started.
// The HPROF_GC_CLASS_DUMP and HPROF_GC_INSTANCE_DUMP are the vast bulk
// of the heap dump.
HeapObjectDumper obj_dumper(this, writer());
! GC::gc()->heap()->safe_object_iterate(&obj_dumper);
// HPROF_GC_ROOT_THREAD_OBJ + frames + jni locals
do_threads();
check_segment_length();
< prev index next >