Can't attach core image through SA tools
Yasumasa Suenaga
suenaga.yasumasa at oss.ntt.co.jp
Tue Jan 31 02:32:05 PST 2012
Hi,
I've tried attach a corefile with jstack. However, I couldn't.
I guess that this problem is caused by incorrect address mapping of libsaproc.so .
I've made a patch which is attached this email. And I've been able to get correct thread stack with jstack.
So, I'd like to contribute this patch, and I'd like to backport to JDK6/7 .
Could you help me?
------ details ------
I got these messages then I ran jstack with LIBSAPROC_DEBUG environment variable:
/*************************/
:
libsaproc DEBUG: reading library /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.1.x86_64/jre/lib/amd64/server/libjvm.so @ 0x7f53b455a000 [ 0x7f53b455a000 ]
libsaproc DEBUG: ---- sorted virtual address map ----
:
libsaproc DEBUG: base = 0x7f53b455a000 size = 9993772
libsaproc DEBUG: base = 0x7f53b455a000 size = 4096
:
libsaproc DEBUG: can't locate map_info at 0x7f53b4dbe000
libsaproc DEBUG: core read failed for 4096 byte(s) @ 0x7f53b4dbe000 (4096 more bytes)
:
/*************************/
libsaproc.so tries to read libjvm.so library address, and it is duplicated.
I read Linux kernel source code of function of core dump, and I found these comment:
source code: kernel-3.2.1-3.fc16.src.rpm (Fedora16 x86_64)
in fs/binfmt_elf.c: static unsigned long vma_dump_size(struct vm_area_struct *vma, unsigned long mm_flags)
----------------------
/*
* If this looks like the beginning of a DSO or executable mapping,
* check for an ELF header. If we find one, dump the first page to
* aid in determining what was mapped here.
*/
----------------------
In fact, core image has executable load section which size is 1 page(0x1000)
----------------------
LOAD 0x0000000005173000 0x00007f53b455a000 0x0000000000000000
0x0000000000001000 0x0000000000988000 R E 1000
----------------------
So, we must think these case when we attach core image.
I modified "read_lib_segments()" in hotspot/agent/src/os/linux/ps_core.c to overwrite
correct address in shared library .
Please check it.
Thanks,
Yasumasa
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: address_mapping.patch
Url: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20120131/aad38568/address_mapping.patch
More information about the serviceability-dev
mailing list