PUBLIC COMMENTS
From 6722157:
I re-discovered this recently on a JDK5 derived product. Building and installing the 64/libjvm_db library was easy enough to do, but having done so it still did not function correctly for me. The Java stack frames were reported as "Interpreter" rather than just a hex value as previously, but the actual java method information is not present.
|
EVALUATION
For solaris-amd64, it looks like the Hotspot library is correctly exported; it is present at <java_home>/jre/lib/amd64/server/libjvm_db.so. This is where it should be. We only use the '64/' directory on sparc -- on x86 the cpu arch is used to determine 32/64 bits (i386 vs. amd64).
> file $JAVA_HOME/jre/lib/amd64/server/libjvm_db.so
/java/east/jdk/7/latest/solaris-amd64/jre/lib/amd64/server/libjvm_db.so: ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped, no debugging information available
And, it appears that this is where pstack expects to find it (used dtrace to watch what files pstack opened):
> dtrace -q -i 'syscall::open:entry { printf("%s\n", copyinstr(arg0)); }' -c "pstack 13897"
...
/proc/13897/lwp/14/lwpstatus
/net/cocoa/export/jdk/mirror/solaris-amd64/jre/lib/amd64/server/libjvm_db.so
/proc/13897/object/nfs.284.36.23206
/proc/13897/psinfo
/proc/13897/lstatus
/proc/13897/lpsinfo
...
So the library is in the right place, and pstack does find it. But as the synopsis says -- it's broken! Needs more investigation to determine where the problem is.
|