Ask Question. Asked 12 years, 1 month ago. Active 9 years, 8 months ago. Viewed 29k times. Is it possible to specify different location for those "crash dump" files? Joonas Pulakka. Joonas Pulakka Joonas Pulakka Btw, using everything voidtools.
Add a comment. Active Oldest Votes. Joonas, Although the HeapDumpPath works for the heap dump it is not the answer for your question.
The first line displays the timestamp of dump generation, while the second line shows the diagnostic information about the JVM. Following that, the thread dump lists down all the running threads and the stack trace dump of what each thread was executing when the dump was generated. There are just two threads shown in this extract, and there can be hundreds or even thousands of simultaneous threads being executed. In such a case, the thread dump can be way lengthier and highly complicated to analyze for finding a cause of a problem.
It is more suited to start the analysis with stack traces that contain your code. This section will also be more understandable as you can quickly identify which part of your code was executing when the dump was collected. This will be easier for you to identify if anything is abnormal in the execution. If everything seems fine in your code, you should start looking at the other parts of the stack traces containing libraries, servers, and JDK code to understand the problem.
There is some information that you can skip in the thread dump. It will save you a lot of time and make the analyzing process easier. In the extract mentioned above, you can find a statement in the first thread:. The LockSupport. It means you can skip such threads as they would not affect the performance of the process. Other than parked threads, threads with the waiting state can also be ignored for the same reason. Blocked threads are one of the primary reasons behind the degrading performance.
It is very easy to identify from the status of a thread. To enable local saving of crash dumps on Windows Vista, 7, or later , download this file , extract the. The App Data directory is hidden by default; the easiest way to open the CrashDumps folder is to open a Command Prompt and type. Note that crash dump files can get quite large especially if the application is using a lot of memory.
Find a Workaround. Examples that demonstrate how the error log can be used to find the cause of the crash, and suggests some tips for troubleshooting the problem depending on the cause. The error log header indicates the type of error and the problematic frame, while the thread stack indicates the current thread and stack trace.
See Header Format. Crash the Native Code. Crash in the Compiled Code. Crash in the HotSpot Compiler Thread. Crash in the VM Thread. Crash Due to Stack Overflow. Analyze the crash dump file or core file to identify if the crash occurred in the native code or the Java Native Interface JNI library code. If the fatal error log indicates the problematic frame to be a native library, then there might be a bug in the native code or the Java Native Interface JNI library code.
The crash could be caused by something else, but analysis of the library and any core file or crash dump is a good starting place. Consider the extract in the following example from the header of a fatal error log. In some cases a bug in a native library manifests itself as a crash in Java VM code.
In this case, although the problematic frame is a VM frame, the thread stack shows that a native routine in App. The first step to solving a crash in a native library is to investigate the source of the native library where the crash occurred.
If the native library is provided by your application, then investigate the source code of your native library. A significant number of issues with JNI code can be identified by running the application with the -Xcheck:jni option added to the command line. See The -Xcheck:jni Option.
If the native library has been provided by another vendor and is used by your application, then file a bug report against this third-party application and provide the fatal error log information. If the native library where the crash occurred is part of the JDK for example awt. If so, gather as much data as possible, and submit a bug or report, indicating the library name.
See Submit a Bug Report. You can troubleshoot a crash in a native application library by attaching the native debugger to the core file or crash dump, if it is available.
Depending on the OS, the native debugger is dbx , gdb , or windbg. See Native Operating System Tools. If the fatal error log indicates that the crash occurred in compiled code, then it is possible that you encountered a compiler bug that resulted in incorrect code generation. You can recognize a crash in compiled code if the type of the problematic frame is J meaning a compiled Java frame. The following example shows such a crash.
It might be possible to temporarily work around the issue by switching the compiler or by excluding from compilation the method that provoked the crash.
0コメント