最近我开始帮助一位同事调试她的Java Swing应用程序中出现的视频崩溃问题。该应用程序调用fobs4jmf.dll来播放.avi文件。有时候,但并不总是,native代码会导致应用程序崩溃。我没有编写原始应用程序,而且已经离开的工程师也没有留下任何线索; 有人能提供一些见解吗?错误文件如下:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6b1d7994, pid=4716, tid=3572
#
# JRE version: 6.0_24-b07
# Java VM: Java HotSpot(TM) Client VM (19.1-b02 mixed mode windows-x86 )
# Problematic frame:
# C [fobs4jmf.dll+0x257994]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# 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 (0x1f0ca400): JavaThread "Loop thread: com.omnividea.media.parser.video.VideoTrack@19a403a" [_thread_in_native, id=3572, stack(0x20670000,0x206c0000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x1d961000
Registers:
EAX=0x00000268, EBX=0x0000004d, ECX=0x00000268, EDX=0x1d960fb0
ESP=0x206bf7b0, EBP=0x206bf8f8, ESI=0x0000002a, EDI=0x206bf980
EIP=0x6b1d7994, EFLAGS=0x00210216
Register to memory mapping:
EAX=0x00000268
0x00000268 is pointing to unknown location
EBX=0x0000004d
0x0000004d is pointing to unknown location
ECX=0x00000268
0x00000268 is pointing to unknown location
EDX=0x1d960fb0
0x1d960fb0 is pointing to unknown location
ESP=0x206bf7b0
0x206bf7b0 is pointing into the stack for thread: 0x1f0ca400
"Loop thread: com.omnividea.media.parser.video.VideoTrack@19a403a" prio=4 tid=0x1f0ca400 nid=0xdf4 runnable [0x206bf000]
java.lang.Thread.State: RUNNABLE
EBP=0x206bf8f8
0x206bf8f8 is pointing into the stack for thread: 0x1f0ca400
"Loop thread: com.omnividea.media.parser.video.VideoTrack@19a403a" prio=4 tid=0x1f0ca400 nid=0xdf4 runnable [0x206bf000]
java.lang.Thread.State: RUNNABLE
ESI=0x0000002a
0x0000002a is pointing to unknown location
EDI=0x206bf980
0x206bf980 is pointing into the stack for thread: 0x1f0ca400
"Loop thread: com.omnividea.media.parser.video.VideoTrack@19a403a" prio=4 tid=0x1f0ca400 nid=0xdf4 runnable [0x206bf000]
java.lang.Thread.State: RUNNABLE
Top of Stack: (sp=0x206bf7b0)
0x206bf7b0: 1d90c0d0 1d90c0d0 1d90c0cb 00000268
0x206bf7c0: 00000001 001d0000 1d960fb0 206bf714
0x206bf7d0: 001dfe80 206bfdf8 77631ecd 052d84dc
0x206bf7e0: 44697658 36343030 b8b7b6b4 5a01abb8
0x206bf7f0: 13570500 a95fe803 90dfe81d 8400381d
0x206bf800: 90dff01d 9610001d 775f001d 00000111
0x206bf810: 00000120 001dfe7a 001dfe78 000004d0
0x206bf820: 00000111 775ee026 1f0ca518 206bf898
Instructions: (pc=0x6b1d7994)
0x6b1d7984: 95 d0 fe ff ff 89 c3 89 85 c4 fe ff ff c1 fb 03
0x6b1d7994: 8b 04 13 8b 9d c4 fe ff ff 83 e3 07 89 c2 88 d9
Stack: [0x20670000,0x206c0000], sp=0x206bf7b0, free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [fobs4jmf.dll+0x257994]
C [fobs4jmf.dll+0x251bbc]
C [fobs4jmf.dll+0x19c44a]
C [fobs4jmf.dll+0x54b4a]
C [fobs4jmf.dll+0x59b6]
C [fobs4jmf.dll+0x5d4d]
C [fobs4jmf.dll+0x1483]
j com.omnividea.media.parser.video.Parser.avProcess(ILjava/lang/Object;JJZI)Z+0
j com.omnividea.media.parser.video.Parser.getNextFrame(Ljava/lang/Object;JJ)Z+15
j com.omnividea.media.parser.video.VideoTrack.readFrame(Ljavax/media/Buffer;)V+170
j com.sun.media.SourceThread.process()Z+206
j com.sun.media.util.LoopThread.run()V+14
v ~StubRoutines::call_stub
V [jvm.dll+0xf0ab9]
V [jvm.dll+0x1837d1]
V [jvm.dll+0xf0c61]
V [jvm.dll+0xf0cbb]
V [jvm.dll+0x11b4b9]
V [jvm.dll+0x1e4624]
V [jvm.dll+0x18317c]
C [msvcr71.dll+0x9565]
C [kernel32.dll+0x1339a]
C [ntdll.dll+0x39ed2]
C [ntdll.dll+0x39ea5]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.omnividea.media.parser.video.Parser.avProcess(ILjava/lang/Object;JJZI)Z+0
j com.omnividea.media.parser.video.Parser.getNextFrame(Ljava/lang/Object;JJ)Z+15
j com.omnividea.media.parser.video.VideoTrack.readFrame(Ljavax/media/Buffer;)V+170
j com.sun.media.SourceThread.process()Z+206
j com.sun.media.util.LoopThread.run()V+14
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x1f0cac00 JavaThread "Loop thread: com.omnividea.media.parser.video.AudioTrack@1eed80d" [_thread_blocked, id=4472, stack(0x20700000,0x20750000)]
=>0x1f0ca400 JavaThread "Loop thread: com.omnividea.media.parser.video.VideoTrack@19a403a" [_thread_in_native, id=3572, stack(0x20670000,0x206c0000)]
0x1f0ca000 JavaThread "Loop thread: com.sun.media.renderer.audio.JavaSoundRenderer@df2acf" [_thread_blocked, id=1248, stack(0x205e0000,0x20630000)]
0x1f0c9800 JavaThread "Java Sound Event Dispatcher" daemon [_thread_blocked, id=3876, stack(0x20130000,0x20180000)]
0x1f0c9400 JavaThread "Loop thread: com.omnividea.media.renderer.video.Java2DRenderer@75460" [_thread_blocked, id=4848, stack(0x1f770000,0x1f7c0000)]
0x1f0c8c00 JavaThread "JMF thread: com.sun.media.PlaybackEngine@1c84697 ( prefetchThread)" [_thread_blocked, id=2516, stack(0x1f6e0000,0x1f730000)]
0x1f0c8800 JavaThread "JMF thread: com.sun.media.content.unknown.Handler@6c0227 ( prefetchThread)" [_thread_blocked, id=1392, stack(0x1f650000,0x1f6a0000)]
0x1f0c8000 JavaThread "JMF thread (PlayThread)" [_thread_blocked, id=4136, stack(0x1f5c0000,0x1f610000)]
0x1f0c7c00 JavaThread "Image Fetcher 1" daemon [_thread_blocked, id=4552, stack(0x1f530000,0x1f580000)]
0x1f0c7400 JavaThread "Image Fetcher 0" daemon [_thread_blocked, id=3700, stack(0x1de80000,0x1ded0000)]
0x1f0c7000 JavaThread "Loop thread" [_thread_blocked, id=4980, stack(0x1f4a0000,0x1f4f0000)]
0x1f0a7400 JavaThread "JMF thread: SendEventQueue: com.sun.media.PlaybackEngine" [_thread_blocked, id=4832, stack(0x1d7d0000,0x1d820000)]
0x18b10800 JavaThread "JMF thread: SendEventQueue: com.sun.media.content.unknown.Handler" [_thread_blocked, id=3480, stack(0x1d740000,0x1d790000)]
0x18c22000 JavaThread "TimerQueue" daemon [_thread_blocked, id=4992, stack(0x1fae0000,0x1fb30000)]
0x18c14000 JavaThread "D3D Screen Updater" daemon [_thread_blocked, id=3612, stack(0x1cb60000,0x1cbb0000)]
0x00609400 JavaThread "DestroyJavaVM" [_thread_blocked, id=2620, stack(0x00250000,0x002a0000)]
0x18c0c000 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=1912, stack(0x1cad0000,0x1cb20000)]
0x18b63400 JavaThread "AWT-Windows" daemon [_thread_in_native, id=2740, stack(0x19020000,0x19070000)]
0x18b18000 JavaThread "AWT-Shutdown" [_thread_blocked, id=1584, stack(0x18f30000,0x18f80000)]
0x18b17800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=4588, stack(0x18ea0000,0x18ef0000)]
0x02530400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=2596, stack(0x189b0000,0x18a00000)]
0x0252c000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=2984, stack(0x18920000,0x18970000)]
0x0252b000 JavaThread "Attach Listener" daemon [_thread_blocked, id=2932, stack(0x18890000,0x188e0000)]
0x02528000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=932, stack(0x18800000,0x18850000)]
0x024f9800 JavaThread "Finalizer" daemon [_thread_blocked, id=4872, stack(0x18770000,0x187c0000)]
0x024f8400 JavaThread "Reference Handler" daemon [_thread_blocked, id=700, stack(0x186e0000,0x18730000)]
Other Threads:
0x024f3400 VMThread [stack: 0x18690000,0x186e0000] [id=4380]
0x0253ac00 WatcherThread [stack: 0x18a40000,0x18a90000] [id=4388]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap
def new generation total 4928K, used 1445K [0x045e0000, 0x04b30000, 0x09b30000)
eden space 4416K, 29% used [0x045e0000, 0x04720710, 0x04a30000)
from space 512K, 32% used [0x04a30000, 0x04a590b0, 0x04ab0000)
to space 512K, 0% used [0x04ab0000, 0x04ab0000, 0x04b30000)
tenured generation total 10944K, used 3317K [0x09b30000, 0x0a5e0000, 0x145e0000)
the space 10944K, 30% used [0x09b30000, 0x09e6d4d8, 0x09e6d600, 0x0a5e0000)
compacting perm gen total 12288K, used 10958K [0x145e0000, 0x151e0000, 0x185e0000)
the space 12288K, 89% used [0x145e0000, 0x15093a00, 0x15093a00, 0x151e0000)
No shared spaces configured.
Dynamic libraries:
0x00400000 - 0x00424000 C:\Java\jre6\bin\java.exe
0x775c0000 - 0x77740000 C:\Windows\SysWOW64\ntdll.dll
0x764d0000 - 0x765e0000 C:\Windows\syswow64\kernel32.dll
0x76400000 - 0x76446000 C:\Windows\syswow64\KERNELBASE.dll
0x76920000 - 0x769c0000 C:\Windows\syswow64\ADVAPI32.dll
0x76a60000 - 0x76b0c000 C:\Windows\syswow64\msvcrt.dll
0x762a0000 - 0x762b9000 C:\Windows\SysWOW64\sechost.dll
0x761a0000 - 0x76290000 C:\Windows\syswow64\RPCRT4.dll
0x75120000 - 0x75180000 C:\Windows\syswow64\SspiCli.dll
0x75110000 - 0x7511c000 C:\Windows\syswow64\CRYPTBASE.dll
0x7c340000 - 0x7c396000 C:\Java\jre6\bin\msvcr71.dll
0x6d7f0000 - 0x6da96000 C:\Java\jre6\bin\client\jvm.dll
0x76e20000 - 0x76f20000 C:\Windows\syswow64\USER32.dll
0x765e0000 - 0x76670000 C:\Windows\syswow64\GDI32.dll
0x76290000 - 0x7629a000 C:\Windows\syswow64\LPK.dll
0x76d10000 - 0x76dad000 C:\Windows\syswow64\USP10.dll
0x734c0000 - 0x734f2000 C:\Windows\system32\WINMM.dll
0x76db0000 - 0x76e10000 C:\Windows\system32\IMM32.DLL
0x760d0000 - 0x7619c000 C:\Windows\syswow64\MSCTF.dll
0x74d10000 - 0x74d5c000 C:\Windows\system32\apphelp.dll
0x6d7a0000 - 0x6d7ac000 C:\Java\jre6\bin\verify.dll
0x6d320000 - 0x6d33f000 C:\Java\jre6\bin\java.dll
0x6d280000 - 0x6d288000 C:\Java\jre6\bin\hpi.dll
0x77590000 - 0x77595000 C:\Windows\syswow64\PSAPI.DLL
0x6d7e0000 - 0x6d7ef000 C:\Java\jre6\bin\zip.dll
0x6d000000 - 0x6d14a000 C:\Java\jre6\bin\awt.dll
0x74fe0000 - 0x75031000 C:\Windows\system32\WINSPOOL.DRV
0x75f70000 - 0x760cc000 C:\Windows\syswow64\ole32.dll
0x71830000 - 0x719ce000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll
0x763a0000 - 0x763f7000 C:\Windows\syswow64\SHLWAPI.dll
0x74590000 - 0x745a3000 C:\Windows\system32\DWMAPI.DLL
0x747b0000 - 0x74830000 C:\Windows\system32\uxtheme.dll
0x6d230000 - 0x6d27f000 C:\Java\jre6\bin\fontmanager.dll
0x74370000 - 0x74533000 C:\Windows\system32\d3d9.dll
0x75040000 - 0x75049000 C:\Windows\system32\VERSION.dll
0x74360000 - 0x74366000 C:\Windows\system32\d3d8thk.dll
0x70420000 - 0x70f9f000 C:\Windows\system32\nvd3dum.dll
0x72420000 - 0x72445000 C:\Windows\system32\powrprof.dll
0x76f20000 - 0x770bd000 C:\Windows\syswow64\SETUPAPI.dll
0x75180000 - 0x751a7000 C:\Windows\syswow64\CFGMGR32.dll
0x767b0000 - 0x7683f000 C:\Windows\syswow64\OLEAUT32.dll
0x762f0000 - 0x76302000 C:\Windows\syswow64\DEVOBJ.dll
0x75320000 - 0x75f6a000 C:\Windows\syswow64\shell32.dll
0x6d600000 - 0x6d613000 C:\Java\jre6\bin\net.dll
0x768d0000 - 0x76905000 C:\Windows\syswow64\WS2_32.dll
0x76910000 - 0x76916000 C:\Windows\syswow64\NSI.dll
0x72530000 - 0x7256c000 C:\Windows\system32\mswsock.dll
0x723b0000 - 0x723b6000 C:\Windows\System32\wship6.dll
0x6d620000 - 0x6d629000 C:\Java\jre6\bin\nio.dll
0x6af80000 - 0x6b671000 C:\Users\Nightshade\Desktop\UNCG\lib\fobs4jmf.dll
0x6d510000 - 0x6d534000 C:\Java\jre6\bin\jsound.dll
0x6d540000 - 0x6d548000 C:\Java\jre6\bin\jsoundds.dll
0x1fbc0000 - 0x1fc32000 C:\Windows\system32\DSOUND.dll
0x71020000 - 0x71059000 C:\Windows\system32\MMDevAPI.DLL
0x74010000 - 0x74105000 C:\Windows\system32\PROPSYS.dll
0x6ef90000 - 0x6efc0000 C:\Windows\system32\wdmaud.drv
0x6efd0000 - 0x6efd4000 C:\Windows\system32\ksuser.dll
0x6efc0000 - 0x6efc7000 C:\Windows\system32\AVRT.dll
0x6ed30000 - 0x6ed66000 C:\Windows\system32\AUDIOSES.DLL
0x6ef80000 - 0x6ef88000 C:\Windows\system32\msacm32.drv
0x74340000 - 0x74354000 C:\Windows\system32\MSACM32.dll
0x6ef70000 - 0x6ef77000 C:\Windows\system32\midimap.dll
0x76310000 - 0x76393000 C:\Windows\syswow64\CLBCatQ.DLL
VM Arguments:
jvm_args: -Dconf.path=conf/ -Djava.library.path=lib
java_command: util.Main
Launcher Type: SUN_STANDARD
Environment Variables:
CLASSPATH=C:\Java\jdk1.6.0_24\bin
PATH=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\Nightshade\bin;C:\Python27;C:\Program Files (x86)\Mercurial\bin;C:\Java\jre6\bin;C:Java\jdk1.6.0_24\bin;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Users\Nightshade\android-sdk-windows;C:\apache-ant-1.8.2\bin
USERNAME=Nightshade
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 23 Stepping 7, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows 7 Build 7601 Service Pack 1
CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 23 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1
Memory: 4k page, physical 4192824k(2803136k free), swap 8383800k(6544444k free)
vm_info: Java HotSpot(TM) Client VM (19.1-b02) for windows-x86 JRE (1.6.0_24-b07), built on Feb 2 2011 17:44:41 by "java_re" with MS VC++ 7.1 (VS2003)
time: Sat Nov 05 18:25:20 2011
elapsed time: 156 seconds
这个错误似乎是在系统从Windows XP迁移到Windows 7时首次出现的(你可能开始在心里默默咒骂IT部门),但将机器恢复到Windows XP并没有解决问题。
值得再次强调的是,这个错误并不总是发生!有时应用程序运行良好,有时在启动本地JMF代码时崩溃。
感谢您的任何帮助!