HP-UX Programmer's Guide for Java 2
Table Of Contents
- Table of Contents
- 1 Introduction
- 2 HotSpot Technology Tools and Commands
- 3 Configuration for Java™ Support
- 4 Performance and Tuning
- 5 Measuring System Performance
- 6 Using Threads
- 7 Using Signals
- 8 Using Java™ 2 JNI on HP-UX
- 9 Expanding Memory
- Determine your requirements
- Memory layout under HP-UX 11.0 (PA-RISC only)
- Additional memory available under HP-UX 11i (PA-RISC only)
- Allocating physical memory and swap in the Java™ heap
- Useful key command-line options for allocating memory
- Application-dependent considerations using large heap size HP-UX 11i PA-RISC
- Expanding heap size in native applications on PA-RISC HP-UX 11.11 and later releases
- Expanding heap size in native applications on Integrity HP-UX 11.23 and later releases
- Expanding heap size in HP-UX PA-RISC
- Expanding heap size in HP-UX Integrity
- 10 Diagnosing Memory Leaks
- A JDK/JRE 6.0.n and 7.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collection
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- Upgrading from a previous Java Web Start version
- IPv6 support
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- JDK 6.0.04 flags
- GC log-rotation support
- NUMA collector enhancements
- ThreadDumpPath support
- Garbage-First garbage collector (-XX:+UseG1GC)
- jmap, jinfo, and jstack tools included in JDK 6.0.03
- Additional Java Web Start documentation
- B JDK/JRE 5.0.n Usage Notes
- Using Java 2 JNI on HP-UX
- Garbage collectors: Parallel and Concurrent Mark Sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket (PA-RISC only)
- Compatibility with previous releases
- Java Cryptography Extension (JCE) policy files
- Allocation Site Statistics and Zero Preparation -Xverbosegc
- IPv6 support on Java 5.0
- GC log-rotation support in 5.0
- ThreadDumpPath support in 5.0
- Dynamically loaded libraries in 5.0
- Performance improvement for String.intern()
- Configuring the Java Runtime Plug-In
- CLASSPATH environment variable
- Java Web Start technology usage
- C SDK/RTE 1.4.2.n Usage Notes
- Removing support for unwanted architectures in the JRE
- Support for dynamic thread local storage (TLS)
- Signal Chaining functionality
- Using Java 2 JNI on HP-UX
- HotSpot JVM options
- Garbage collectors: Parallel and Concurrent mark sweep
- Allocating physical memory and swap in the Java heap
- Asian TrueType fonts and Asian locales
- Date/Time methods defaults
- Profiling
- Closing a socket when accept or read is pending (PA-RISC) - new patch information!
- Compatibility with previous releases
- Runtime Plug-In usage and configuration
- GC log-rotation support
- ThreadDumpPath support
- D Additional Resources
- Index

10 Diagnosing Memory Leaks
Using WDB to examine backtraces in Java™ thread stacks
You can now use HP's debugger WDB 3.0.01 or later (the GNU Debugger GDB) to
examine backtraces containing mixed language frames (Java™ and C/C++) in Java™
thread stacks. This will simplify debugging the VM and Java™ mixed-language
applications. Set the environment variable GDB_JAVA_UNWINDLIB to the path name
of the Java™ Unwind Shared Library libjunwind, which is in the JDK.
The default location of the Java™ Unwind Library in the JDK is shown below. The
following examples are for JDK 6. If you are using JDK 5.0, substitute “java1.5” for
“java6”. If you are using SDK 1.4, substitute "java1.4" for "java6".
/opt/java6/jre/lib/PA_RISC/server/libjunwind.sl
/opt/java6/jre/lib/PA_RISC2.0/server/libjunwind.sl
/opt/java6/jre/lib/PA_RISC2.0W/server/libjunwind.sl
/opt/java6/jre/lib/IA64N/server/libjunwind.so
/opt/java6/jre/lib/IA64W/server/libjunwind.so
Here are a few examples. In ksh, you would set the environment variable like this:
For 64-bit PA2.0 machines:
export GDB_JAVA_UNWINDLIB=/opt/java6/jre/lib/PA_RISC2.0W/server/libjunwind.sl
For 64-bit Itanium 2 machines:
export GDB_JAVA_UNWINDLIB=/opt/java6/jre/lib/IA64W/server/libjunwind.so
If you installed the JDK in a location other than the default, you would substitute the
non-default location for "/opt/java6" in the above commands. Then use WDB as
usual to debug your Java™ applications or core files. For help on how to use the Java™
stack unwind functionality, see the tutorial slides Tools: Debugging Native and Java code
with WDB at:
http://h21007.www2.hp.com/portal/download/files/unprot/Java/
07_06Tools_NativeDebug.pdf.
Also see Oracle's Java HotSpot VM Options at: http://www.oracle.com/technetwork/
java/javase/tech/vmoptions-jsp-140102.html.
Launching the Java™ application VM manually when debugging
If you are running the version of jdb provided in this release, the application VM is
launched for you with the debugger loaded at the back end. However, in the following
cases, you will be launching your own application VM, either by hand or in your
implementation.
1. Remote debugging with the -attach or -listen jdb option.
2. You are implementing a debugger which uses the JDWP directly.
3. You are implementing a debugger back end which uses JVMDI.
Using WDB to examine backtraces in Java™ thread stacks 71