Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get symbol files for Java.exe/jvm.dll to analyse crash core dump files?

I have a Java application running on a Websphere application server. When I analyse the system crash core dump file, I get some info like this:

ERROR: Symbol file could not be found.  Defaulted to export symbols for J9THR23.dll 

How can I get symbol files for Java?

Thanks in advance.

More details are here:

*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for J9THR23.dll - 
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: ntdll!_PEB                                    ***
***                                                                   ***
*************************************************************************
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for j9jit23.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for java.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for j9gc23.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for jvm.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for jclscar_23.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for j9ute23.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for J9PRT23.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for j9vm23.dll - 
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for DBGHELP.DLL - 

Alice Gong

like image 418
Alice Gong Avatar asked Jan 08 '09 15:01

Alice Gong


2 Answers

You can get a DEBUG build of the JDK at this site.

http://download.java.net/jdk6/

Look for jdk-6u12-ea-bin-b03-windows-i586-debug-22dec2008.jar, 91.47 MB

It includes .pdb files

like image 122
Dean Avatar answered Oct 20 '22 01:10

Dean


It looks like the debugger is looking for PDB files, and as far as I can tell debug information for java application doesn't come as PDB files. PDB files are generated by VisualStudio when creating Windows native applications, so it seems the debugger is looking for the application server's debug symbols. Don't know if WebSphere comes with its own debug version. On the other hand, if you want debug symbols for a java app you only need to recompile it with the -g option.

like image 40
agnul Avatar answered Oct 20 '22 00:10

agnul