我们的一些客户(约占4个)存在以下问题:尝试使用我们的软件打印某些文档(pdf)时,应用程序毫无例外地崩溃。该问题仅发生在Windows上,我找不到任何连贯性。
总而言之,这是一个非常奇怪的错误。
这是启用了转储的崩溃日志的一部分:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7729fe05, pid=6768, tid=0x00002270
#
# JRE version: OpenJDK Runtime Environment (8.0_212-b04) (build 1.8.0_212-1-ojdkbuild-debug-b04)
# Java VM: OpenJDK Server VM (25.212-b04-debug mixed mode windows-x86 )
# Problematic frame:
# C [ntdll.dll+0x4fe05]
#
# Failed to write core dump. Failed to create file for dumping
#
# If you would like to submit a bug report, please visit:
#
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (0x565ea000): JavaThread "Java2D Disposer" daemon [_thread_in_native, id=8816, stack(0x011c0000,0x01210000)]
siginfo: ExceptionCode=0xc0000005, writing address 0x00570068
Registers:
EAX=0x00570068, EBX=0x013cdba0, ECX=0x00570064, EDX=0x00eb6000
ESP=0x0120f1e0, EBP=0x0120f1e4, ESI=0x00570064, EDI=0x014095f0
EIP=0x7729fe05, EFLAGS=0x00010202
Top of Stack: (sp=0x0120f1e0)
0x0120f1e0: 00000001 0120f210 753af30c 00570064
0x0120f1f0: dd5fb2cd 06211b9e 00210000 013cdba0
0x0120f200: 0057005c 0120f2ec 753df687 ffffffff
0x0120f210: 0120f2a0 76b86cbe 014095f0 013b5f7c
0x0120f220: 06211b9e 0000000a 00000000 00000000
0x0120f230: 00000000 00000000 565ea000 06211b9e
0x0120f240: 5f44fbc0 00000080 038a0029 00000000
0x0120f250: ff061b9e ffffffff 00001a70 00010621
Instructions: (pc=0x7729fe05)
0x7729fde5: cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec
0x7729fdf5: 83 e4 f8 8b 4d 08 64 8b 15 18 00 00 00 8d 41 04
0x7729fe05: f0 0f ba 30 00 73 15 8b 42 24 89 41 0c 33 c0 c7
0x7729fe15: 41 08 01 00 00 00 8b e5 5d c2 04 00 8b 41 0c 3b
Register to memory mapping:
EAX=0x00570068 is an unknown value
EBX=0x013cdba0 is an unknown value
ECX=0x00570064 is an unknown value
EDX=0x00eb6000 is an unknown value
ESP=0x0120f1e0 is pointing into the stack for thread: 0x565ea000
EBP=0x0120f1e4 is pointing into the stack for thread: 0x565ea000
ESI=0x00570064 is an unknown value
EDI=0x014095f0 is an unknown value
Stack: [0x011c0000,0x01210000], sp=0x0120f1e0, free space=316k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [ntdll.dll+0x4fe05]
C [gdi32full.dll+0x8f30c]
C [GDI32.dll+0x6cbe]
C [GDI32.dll+0x6984]
C [awt.dll+0x10422a] DeletePrintDC+0x8a
C [awt.dll+0x10412e] Java_sun_awt_windows_WPrinterJob_deleteDC+0x3e
j sun.awt.windows.WPrinterJob.deleteDC(JJJ)V+0
j sun.awt.windows.WPrinterJob.access$000(JJJ)V+4
j sun.awt.windows.WPrinterJob$HandleRecord.dispose()V+12
j sun.java2d.Disposer.run()V+26
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
V [jvm.dll+0x2b75bb] JavaCalls::call_helper+0x48b
V [jvm.dll+0x4058fc] os::os_exception_wrapper+0xac
V [jvm.dll+0x2b7122] JavaCalls::call+0x52
V [jvm.dll+0x2b6ad1] JavaCalls::call_virtual+0x111
V [jvm.dll+0x2b6b53] JavaCalls::call_virtual+0x43
V [jvm.dll+0x22f892] thread_entry+0x62
V [jvm.dll+0x2f0d8b] JavaThread::thread_main_inner+0xcb
V [jvm.dll+0x2f0ca7] JavaThread::run+0x117
V [jvm.dll+0x3709cc] java_start+0xdc
C [MSVCR100.dll+0x5c556]
C [MSVCR100.dll+0x5c600]
C [KERNEL32.DLL+0x20419]
C [ntdll.dll+0x6662d]
C [ntdll.dll+0x665fd]
[error occurred during error reporting (printing native stack), id 0xe0000000]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.awt.windows.WPrinterJob.deleteDC(JJJ)V+0
j sun.awt.windows.WPrinterJob.access$000(JJJ)V+4
j sun.awt.windows.WPrinterJob$HandleRecord.dispose()V+12
j sun.java2d.Disposer.run()V+26
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
这是已分析的故障转储的一部分:
FAULTING_IP:
ntdll!RtlEnterCriticalSection+15
7729fe05 f00fba3000 lock btr dword ptr [eax],0
EXCEPTION_RECORD: 0120eeac -- (.exr 0x120eeac)
ExceptionAddress: 7729fe05 (ntdll!RtlEnterCriticalSection+0x00000015)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000001
Parameter[1]: 00570068
Attempt to write to address 00570068
FAULTING_THREAD: 00002270
DEFAULT_BUCKET_ID: INVALID_POINTER_WRITE
PROCESS_NAME: app.exe
ERROR_CODE: (NTSTATUS) 0x80000003 - {AUSNAHME} Haltepunkt Im Quellprogramm wurde ein Haltepunkt erreicht.
EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - Mindestens ein Argument ist ung ltig.
EXCEPTION_CODE_STR: 80000003
WATSON_BKT_PROCSTAMP: 5c6fb37d
WATSON_BKT_PROCVER: 1.6.2.0
PROCESS_VER_PRODUCT: App
WATSON_BKT_MODULE: ntdll.dll
WATSON_BKT_MODSTAMP: 1ddde673
WATSON_BKT_MODOFFSET: 7076c
WATSON_BKT_MODVER: 10.0.17763.475
MODULE_VER_PRODUCT: Microsoft® Windows® Operating System
BUILD_VERSION_STRING: 10.0.17763.475 (WinBuild.160101.0800)
ANALYSIS_SESSION_HOST: DESKTOP-GNESREK
ANALYSIS_SESSION_TIME: 05-28-2019 10:00:20.0923
ANALYSIS_VERSION: 10.0.18869.1002 amd64fre
CONTEXT: 0120eefc -- (.cxr 0x120eefc)
eax=00570068 ebx=013cdba0 ecx=00570064 edx=00eb6000 esi=00570064 edi=014095f0
eip=7729fe05 esp=0120f1e0 ebp=0120f1e4 iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202
ntdll!RtlEnterCriticalSection+0x15:
7729fe05 f00fba3000 lock btr dword ptr [eax],0 ds:002b:00570068=????????
Resetting default scope
FOLLOWUP_IP:
gdi32full!DocumentEventEx+3c
753af30c ff7524 push dword ptr [ebp+24h]
WRITE_ADDRESS: 00570068
THREAD_ATTRIBUTES:
LAST_CONTROL_TRANSFER: from 753af30c to 7729fe05
THREAD_SHA1_HASH_MOD_FUNC: e10796f1c19359a1b26a09ff8272ad85c58be40e
THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 393c326dee17d593e2102a54d7e9713f31e3e91d
OS_LOCALE: DEU
BUGCHECK_STR: APPLICATION_FAULT_INVALID_POINTER_WRITE_STRING_DEREFERENCE
PRIMARY_PROBLEM_CLASS: APPLICATION_FAULT
PROBLEM_CLASSES:
ID: [0n313]
Type: [@ACCESS_VIOLATION]
Class: Addendum
Scope: BUCKET_ID
Name: Omit
Data: Omit
PID: [0x1a70]
TID: [0x2270]
Frame: [0] : ntdll!NtTerminateProcess
ID: [0n286]
Type: [INVALID_POINTER_WRITE]
Class: Primary
Scope: DEFAULT_BUCKET_ID (Failure Bucket ID prefix)
BUCKET_ID
Name: Add
Data: Omit
PID: [0x1a70]
TID: [0x2270]
Frame: [0] : ntdll!NtTerminateProcess
ID: [0n184]
Type: [STRING_DEREFERENCE]
Class: Primary
Scope: BUCKET_ID
Name: Add
Data: Omit
PID: [0x1a70]
TID: [0x2270]
Frame: [0] : ntdll!NtTerminateProcess
ID: [0n97]
Type: [@SHUTDOWN]
Class: Addendum
Scope: DEFAULT_BUCKET_ID (Failure Bucket ID prefix)
BUCKET_ID
Name: Omit
Data: Omit
PID: [0x1a70]
TID: [0x2270]
Frame: [0] : ntdll!NtTerminateProcess
STACK_TEXT:
0120f1e0 7729fe05 ntdll!RtlEnterCriticalSection+0x15
0120f1ec 753af30c gdi32full!DocumentEventEx+0x3c
0120f218 76b86cbe GDI32!InternalDeleteDC+0x30e
0120f2a8 76b86984 GDI32!DeleteDC+0x14
0120f2bc 6ff6422a awt!DeletePrintDC+0x8a
0120f2d4 6ff6412e awt!Java_sun_awt_windows_WPrinterJob_deleteDC+0x3e
0120f300 02e2263d unknown!unknown+0x0
0120f430 02e104fa unknown!unknown+0x0
0120f438 716173f8 jvm!methodHandle::~methodHandle+0x18
1489d1b8 54bddd78 unknown!unknown+0x0
1489d1bc 565ea000 unknown!unknown+0x0
以下是一些其他未启用崩溃转储的崩溃日志:
我可以根据需要添加更多内容。