Java Troubleshooting Guide for HP-UX Systems
4 Core File Analysis
The previous chapter described how to collect necessary information before opening a call to
HP Support to get help troubleshooting Java applications. Sometimes it is possible to at least
attempt the core file analysis on your own. This chapter walks through an example core file
analysis step by step. By studying this example, you will learn some skills needed to analyze
your own core file.
HP-UX writes a file containing a core image of a process when certain signals are received. The
most common reasons a core file is generated are:
• Memory violations
• Illegal instructions
• Floating-point exceptions
• Bus errors
• User-generated quit signals
• User-requested core generation
Generally, the core image file is named core and is written in the current working directory.
A core file is a dump of the process state at the time of the problem. The file contains sufficient
information to determine what the process was doing when it failed. This information includes:
• Threads
• Register values
• Contents of attached data memory regions
• Kernel version
• Command name
4.1 Sample Java Application
This sample application contains native code (C) and Java code. This particular application aborts
in native code because this code contains a defect. The defect causes a runtime failure, which
results in a core dump.
The example consists of three files for an application named StackTrace:
• StackTraceJob — the script to create the core file
• StackTrace.java — the Java source code
• stacktrace.c — the C source code
These three files should be placed in a directory named StackTrace.
The following subsections contain listings of each of these three files. This example is run on a
PA-RISC system. However, it can be tested on any PA-RISC or Integrity system though, if some
changes are made to the StackTraceJob script.
4.1.1 StackTraceJob
#!/bin/ksh
# set JAVA_HOME
export JAVA_HOME=/opt/java1.4
# set PATH
export PATH=$JAVA_HOME/bin:$PATH
# Compile java bytecode
/usr/bin/echo "Compile java code"
javac StackTrace.java
4.1 Sample Java Application 65