Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2173029 | 7 | Coleen Phillimore | P4 | Closed | Fixed | b47 |
JDK-2180470 | 6u18 | Coleen Phillimore | P4 | Closed | Fixed | b01 |
Java on Windows will only generate a crash dump, when running with
-XX:+ShowMessageErrorOnBox. Any other windows application however, will
create a crash dump upon each and every crash.
Running Java with -XX:+ShowMessageErrorOnBox does yield a windows dump
file, however it suppresses the creation of an hs_err_pid.log file. On
Unix (Solaris and Linux), both a crash dump (core file) and an hs_err_pid.log
file are generated at one time.
So, the proposal is:
Is it possible to get both crash dump and hs_err_pid.log file on Windows
platforms at one time (possibly without using -XX:+ShowMessageErrorOnBox).
The crash dump file will be generated depending on Dr Watson being installed.
Here is an example: Please find attached a complete example.
It is supposed than Dr Watson is installed.
1. native testcase
------------------
1.1 Testcase
------------
% more Hello.c
#include <stdio.h>
int main() {
char str1[]="Sample string";
char * str2= NULL;
strcpy(str2, str1);
return;
}
%
1.2. run native testcase
------------------------
It will crash and generate a crash dump.
Compile with Borland's bcc32 (for example):
C:> C:\bcc32 -IC:\bcc55\include -LC:\bcc55\include -ehello.exe hello.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Hello.c:
Warning W8065 Hello.c 10: Call to function 'strcpy' with no prototype in function main
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
C:>
C:>hello
[ hello.exe has generated errors and will be closed by Windows.
You will need to restart the program.
An error log is being created.
[OK]
]
drwtsn32.log and user.dmp has been created.
C:>more drwtsn32.log
Microsoft (R) Windows 2000 (TM) Version 5.00 DrWtsn32
Copyright (C) 1985-1999 Microsoft Corp. All rights reserved.
Application exception occurred:
App: (pid=856)
When: 2/20/2004 @ 13:37:44.542
Exception number: c0000005 (access violation)
*----> System Information <----*
Computer Name: SUN-DE9D5C19522
User Name: Administrator
Number of Processors: 1
Processor Type: x86 Family 15 Model 2 Stepping 7
Windows 2000 Version: 5.0
Current Build: 2195
Service Pack: 3
Current Type: Uniprocessor Free
Registered Organization: Sun Microsystems
Registered Owner: Sun Microsystems
*----> Task List <----*
[ ... ]
856 hello.exe
C:>
3. Try a JNI testcase based on the above example
------------------------------------------------
3.1 Compile
-----------
C:>make
C:>set JAVA_HOME=C:\j2sdk1.4.2
C:>set PATH=C:\bcc55\bin;C:\bcc55\bin;C:\bcc55\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
C:>set INCLUDES=-IC:\bcc55\include -IC:\j2sdk1.4.2\include -IC:\j2sdk1.4.2\include\win32
C:>C:\j2sdk1.4.2\bin\javac HelloWorld.java
C:>C:\j2sdk1.4.2\bin\javah -jni HelloWorld
C:>bcc32 -tWD -IC:\bcc55\include -IC:\j2sdk1.4.2\include -IC:\j2sdk1.4.2\include\win32 -LC:\bcc55\lib HelloWorldImp.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
HelloWorldImp.c:
Warning W8065 HelloWorldImp.c 13: Call to function 'strcpy' with no prototype in function Java_HelloWorld_displayHelloWorld
Warning W8057 HelloWorldImp.c 15: Parameter 'env' is never used in function Java_HelloWorld_displayHelloWorld
Warning W8057 HelloWorldImp.c 15: Parameter 'obj' is never used in function Java_HelloWorld_displayHelloWorld
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
C:>
3.2 Run without -XX:+ShowMessageBoxOnError
------------------------------------------
C:>c:\j2sdk1.4.2\bin\java HelloWorld
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x182
722BA
Function=Java_HelloWorld_displayHelloWorld+0x1082
Library=C:\test\HelloWorldImp.dll
[ ... ]
Please note that *no* crash dump file is be created.
3.3 Run with -XX:+ShowMessageBoxOnError
---------------------------------------
C:>c:\j2sdk1.4.2\bin\java -XX:+ShowMessageBoxOnError HelloWorld
[ An error has occurred. Do you want to debug the problem ?
[Yes] [No]
]
Choose "No" and you will get an hs_err_pid.log file.
Choose "Yes" and you will get:
[ java.exe has generated errors and will be closed by Windows.
You will need to restart the program.
An error log is being created.
[OK]
]
Both a crash dump file and a drwtsn32.log file will be generated, but *no*
hs_err_pid.log file.
-XX:+ShowMessageErrorOnBox. Any other windows application however, will
create a crash dump upon each and every crash.
Running Java with -XX:+ShowMessageErrorOnBox does yield a windows dump
file, however it suppresses the creation of an hs_err_pid.log file. On
Unix (Solaris and Linux), both a crash dump (core file) and an hs_err_pid.log
file are generated at one time.
So, the proposal is:
Is it possible to get both crash dump and hs_err_pid.log file on Windows
platforms at one time (possibly without using -XX:+ShowMessageErrorOnBox).
The crash dump file will be generated depending on Dr Watson being installed.
Here is an example: Please find attached a complete example.
It is supposed than Dr Watson is installed.
1. native testcase
------------------
1.1 Testcase
------------
% more Hello.c
#include <stdio.h>
int main() {
char str1[]="Sample string";
char * str2= NULL;
strcpy(str2, str1);
return;
}
%
1.2. run native testcase
------------------------
It will crash and generate a crash dump.
Compile with Borland's bcc32 (for example):
C:> C:\bcc32 -IC:\bcc55\include -LC:\bcc55\include -ehello.exe hello.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Hello.c:
Warning W8065 Hello.c 10: Call to function 'strcpy' with no prototype in function main
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
C:>
C:>hello
[ hello.exe has generated errors and will be closed by Windows.
You will need to restart the program.
An error log is being created.
[OK]
]
drwtsn32.log and user.dmp has been created.
C:>more drwtsn32.log
Microsoft (R) Windows 2000 (TM) Version 5.00 DrWtsn32
Copyright (C) 1985-1999 Microsoft Corp. All rights reserved.
Application exception occurred:
App: (pid=856)
When: 2/20/2004 @ 13:37:44.542
Exception number: c0000005 (access violation)
*----> System Information <----*
Computer Name: SUN-DE9D5C19522
User Name: Administrator
Number of Processors: 1
Processor Type: x86 Family 15 Model 2 Stepping 7
Windows 2000 Version: 5.0
Current Build: 2195
Service Pack: 3
Current Type: Uniprocessor Free
Registered Organization: Sun Microsystems
Registered Owner: Sun Microsystems
*----> Task List <----*
[ ... ]
856 hello.exe
C:>
3. Try a JNI testcase based on the above example
------------------------------------------------
3.1 Compile
-----------
C:>make
C:>set JAVA_HOME=C:\j2sdk1.4.2
C:>set PATH=C:\bcc55\bin;C:\bcc55\bin;C:\bcc55\bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem
C:>set INCLUDES=-IC:\bcc55\include -IC:\j2sdk1.4.2\include -IC:\j2sdk1.4.2\include\win32
C:>C:\j2sdk1.4.2\bin\javac HelloWorld.java
C:>C:\j2sdk1.4.2\bin\javah -jni HelloWorld
C:>bcc32 -tWD -IC:\bcc55\include -IC:\j2sdk1.4.2\include -IC:\j2sdk1.4.2\include\win32 -LC:\bcc55\lib HelloWorldImp.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
HelloWorldImp.c:
Warning W8065 HelloWorldImp.c 13: Call to function 'strcpy' with no prototype in function Java_HelloWorld_displayHelloWorld
Warning W8057 HelloWorldImp.c 15: Parameter 'env' is never used in function Java_HelloWorld_displayHelloWorld
Warning W8057 HelloWorldImp.c 15: Parameter 'obj' is never used in function Java_HelloWorld_displayHelloWorld
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
C:>
3.2 Run without -XX:+ShowMessageBoxOnError
------------------------------------------
C:>c:\j2sdk1.4.2\bin\java HelloWorld
An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0x182
722BA
Function=Java_HelloWorld_displayHelloWorld+0x1082
Library=C:\test\HelloWorldImp.dll
[ ... ]
Please note that *no* crash dump file is be created.
3.3 Run with -XX:+ShowMessageBoxOnError
---------------------------------------
C:>c:\j2sdk1.4.2\bin\java -XX:+ShowMessageBoxOnError HelloWorld
[ An error has occurred. Do you want to debug the problem ?
[Yes] [No]
]
Choose "No" and you will get an hs_err_pid.log file.
Choose "Yes" and you will get:
[ java.exe has generated errors and will be closed by Windows.
You will need to restart the program.
An error log is being created.
[OK]
]
Both a crash dump file and a drwtsn32.log file will be generated, but *no*
hs_err_pid.log file.
- backported by
-
JDK-2173029 RFE: crash dump will only be created when running w/ -XX:+ShowMessageBoxOnError
-
- Closed
-
-
JDK-2180470 RFE: crash dump will only be created when running w/ -XX:+ShowMessageBoxOnError
-
- Closed
-
- duplicates
-
JDK-6794885 Improve Windows unhandled structured exception reporting - UseOSErrorReporting
-
- Closed
-
- relates to
-
JDK-8250637 UseOSErrorReporting times out (on Mac and Linux)
-
- Resolved
-
-
JDK-8250782 UseOSErrorReporting causes stack space exception (Win)
-
- Closed
-