Check PerfCounter in core image through JSnap

Yasumasa Suenaga yasuenag at gmail.com
Sat Jan 30 14:08:42 UTC 2016


Hi all,

I want to check PerfCounter in core image to analyze state of crashed JVM.
When I use JSnap tool, I encountered NPE on Fedora 23 x86_64.

I checked core image, and I found PerfMemory::_start, _top, etc are set to NULL,
however, PerfMemory::_initialized is set to 1.

PerfMemory::_start is set to NULL in PerfMemory::destroy(), and this function
is called at before aborting VM.

I fixed as below, and it works fine with JSnap:
-------------------
diff -r edfc9e2316e3 src/share/vm/runtime/perfMemory.cpp
--- a/src/share/vm/runtime/perfMemory.cpp       Sun Jan 24 23:20:12 2016 +0900
+++ b/src/share/vm/runtime/perfMemory.cpp       Sat Jan 30 22:41:05 2016 +0900
@@ -196,12 +196,6 @@
     //
     delete_memory_region();
   }
-
-  _start = NULL;
-  _end = NULL;
-  _top = NULL;
-  _prologue = NULL;
-  _capacity = 0;
 }

 // allocate an aligned block of memory from the PerfData memory
-------------------

I found JDK-6224040: enhance jstat to extract counter information from core files .
At least, we can control shared memory through coredump_filter in modern Linux kernel.

Should I work this fix in JDK-6224040 ? or another issue ?
Please cooperate.


Thanks,

Yasumasa




More information about the serviceability-dev mailing list