大家好,请教大家一个问题:
在项目中需要将用C语言写的dll封装成Java可以调用的接口,封装好之后,在测试其中一个函数时出现了与JVM相关的异常。
在那个dll中的函数(用C语言写的)调用了用Java实现的函数,加载了jvm.dll。日志信息为:
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d8b1115, pid=3684, tid=4464
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_15-b04 interpreted mode)
# Problematic frame:
# C [jvm.dll+0x1115]
#--------------- T H R E A D ---------------Current thread (0x05005e80): JavaThread [_thread_in_native, id=4464]siginfo: ExceptionCode=0xc0000005, writing address 0x00000144Registers:
EAX=0x00000000, EBX=0x4856d998, ECX=0x05005e2c, EDX=0x00000000
ESP=0x028dda64, EBP=0x028ddcfc, ESI=0x00000000, EDI=0x05005e80
EIP=0x6d8b1115, EFLAGS=0x00010246Top of Stack: (sp=0x028dda64)
0x028dda64: 00000000 6d9ae967 00000000 00000006
0x028dda74: 05005e80 4856d998 4856d998 000a4018
0x028dda84: 000a0000 00000001 6d310000 6d3100d8
0x028dda94: 028dda84 00000001 0001dabc 0000000d
0x028ddaa4: 028dda00 00000000 028ddb68 7c92e920
0x028ddab4: 7c930060 ffffffff 7c93005d 7c95e4ff
0x028ddac4: 000a0000 7c937e5f 7c99e178 7c937e09
0x028ddad4: 3c1a1bf0 05005e80 0000ffff 7ffde000  Instructions: (pc=0x6d8b1115)
0x6d8b1105: 96 44 01 00 00 5e c3 cc cc cc cc 56 8b 74 24 08
0x6d8b1115: c7 86 44 01 00 00 05 00 00 00 83 3d a4 08 ad 6d  
Stack: [0x008e0000,0x028e0000), sp=0x028dda64, free space=32758k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [jvm.dll+0x1115]
j java.io.ObjectStreamClass.<clinit>()V+20
v ~StubRoutines::call_stub
V [jvm.dll+0x873ed]
V [jvm.dll+0xdfb96]
V [jvm.dll+0x872be]
V [jvm.dll+0x799c2]
V [jvm.dll+0x7889d]
V [jvm.dll+0xcacac]
V [jvm.dll+0xcaaed]
V [jvm.dll+0x824d0]
j java.lang.Class.<clinit>()V+7
v ~StubRoutines::call_stub
V [jvm.dll+0x873ed]
V [jvm.dll+0xdfb96]
V [jvm.dll+0x872be]
V [jvm.dll+0x799c2]
V [jvm.dll+0x7889d]
V [jvm.dll+0xcae58]
V [jvm.dll+0xcbaf5]
V [jvm.dll+0xcb9db]
V [jvm.dll+0x82a8b]
j java.lang.Float.<clinit>()V+2
v ~StubRoutines::call_stub
V [jvm.dll+0x873ed]
V [jvm.dll+0xdfb96]
V [jvm.dll+0x872be]
V [jvm.dll+0x799c2]
V [jvm.dll+0x7889d]
V [jvm.dll+0xcae58]
V [jvm.dll+0xcbaf5]
V [jvm.dll+0xcb9db]
V [jvm.dll+0x82a8b]
j java.util.HashMap.<init>(IF)V+56
j java.util.HashMap.<init>(I)V+4
j sun.misc.SoftCache.<init>(I)V+26
j java.lang.Thread.<clinit>()V+28
v ~StubRoutines::call_stub
V [jvm.dll+0x873ed]
V [jvm.dll+0xdfb96]
V [jvm.dll+0x872be]
V [jvm.dll+0x799c2]
V [jvm.dll+0x7889d]
V [jvm.dll+0x113065]
V [jvm.dll+0x91e28]
C [Search.dll+0x1353]
C [SemanticAnalyzer.dll+0x6a67]
C [SemanticAnalyzer.dll+0x3e4d]
C [SemanticAnalyzer.dll+0x2066]
C [jna48229.dll+0xcbe7]
C [jna48229.dll+0xc7d9]
C [jna48229.dll+0x4561]
C [jna48229.dll+0x4d2e]
C 0x02919d11
C 0x02912ec5
C 0x02912f07
C 0x02912f07
C 0x029133e3
C 0x029133a1
C 0x02912ec5
C 0x029102caJava frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;)Ljava/lang/Object;+0
j java.io.ObjectStreamClass.<clinit>()V+20
v ~StubRoutines::call_stub
j java.lang.Class.<clinit>()V+7
v ~StubRoutines::call_stub
j java.lang.Float.<clinit>()V+2
v ~StubRoutines::call_stub
j java.util.HashMap.<init>(IF)V+56
j java.util.HashMap.<init>(I)V+4
j sun.misc.SoftCache.<init>(I)V+26
j java.lang.Thread.<clinit>()V+28
v ~StubRoutines::call_stub--------------- P R O C E S S ---------------Java Threads: ( => current thread )
=>0x05005e80 JavaThread [_thread_in_native, id=4464]Other Threads:
  0x3c1c4498 VMThread [id=3244]VM state:not at safepoint (normal execution)VM Mutex/Monitor currently owned by a thread: NoneHeap
 def new generation total 576K, used 10K [0x444f0000, 0x44590000, 0x449d0000)
  eden space 512K, 2% used [0x444f0000, 0x444f2908, 0x44570000)
  from space 64K, 0% used [0x44570000, 0x44570000, 0x44580000)
  to space 64K, 0% used [0x44580000, 0x44580000, 0x44590000)
 tenured generation total 1408K, used 0K [0x449d0000, 0x44b30000, 0x484f0000)
  the space 1408K, 0% used [0x449d0000, 0x449d0000, 0x449d0200, 0x44b30000)
 compacting perm gen total 8192K, used 507K [0x484f0000, 0x48cf0000, 0x4c4f0000)
  the space 8192K, 6% used [0x484f0000, 0x4856eef8, 0x4856f000, 0x48cf0000)
No shared spaces configured.Dynamic libraries:
0x00400000 - 0x00424000 D:\Program Files\Java\jdk1.6.0_10\bin\javaw.exe
0x7c920000 - 0x7c9b6000 D:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c91e000 D:\WINDOWS\system32\kernel32.dll
0x77da0000 - 0x77e49000 D:\WINDOWS\system32\ADVAPI32.dll
0x77e50000 - 0x77ee2000 D:\WINDOWS\system32\RPCRT4.dll
0x77fc0000 - 0x77fd1000 D:\WINDOWS\system32\Secur32.dll
0x77d10000 - 0x77da0000 D:\WINDOWS\system32\USER32.dll
0x77ef0000 - 0x77f39000 D:\WINDOWS\system32\GDI32.dll
0x76300000 - 0x7631d000 D:\WINDOWS\system32\IMM32.DLL
0x62c20000 - 0x62c29000 D:\WINDOWS\system32\LPK.DLL
0x73fa0000 - 0x7400b000 D:\WINDOWS\system32\USP10.dll
0x7c340000 - 0x7c396000 D:\Program Files\Java\jdk1.6.0_10\jre\bin\msvcr71.dll
0x6d8b0000 - 0x6db06000 D:\Program Files\Java\jdk1.6.0_10\jre\bin\client\jvm.dll
0x76b10000 - 0x76b3a000 D:\WINDOWS\system32\WINMM.dll
0x6d330000 - 0x6d338000 D:\Program Files\Java\jdk1.6.0_10\jre\bin\hpi.dll
0x76bc0000 - 0x76bcb000 D:\WINDOWS\system32\PSAPI.DLL
0x6d860000 - 0x6d86c000 D:\Program Files\Java\jdk1.6.0_10\jre\bin\verify.dll
0x6d3d0000 - 0x6d3ef000 D:\Program Files\Java\jdk1.6.0_10\jre\bin\java.dll
0x6d8a0000 - 0x6d8af000 D:\Program Files\Java\jdk1.6.0_10\jre\bin\zip.dll
0x6d6c0000 - 0x6d6d3000 D:\Program Files\Java\jdk1.6.0_10\jre\bin\net.dll
0x71a20000 - 0x71a37000 D:\WINDOWS\system32\WS2_32.dll
0x77be0000 - 0x77c38000 D:\WINDOWS\system32\msvcrt.dll
0x71a10000 - 0x71a18000 D:\WINDOWS\system32\WS2HELP.dll
0x719c0000 - 0x719fe000 D:\WINDOWS\system32\mswsock.dll
0x60fd0000 - 0x61025000 D:\WINDOWS\system32\hnetcfg.dll
0x71a00000 - 0x71a08000 D:\WINDOWS\System32\wshtcpip.dll
0x05090000 - 0x050e5000 D:\Documents and Settings\Administrator\Local Settings\Temp\jna48229.dll
0x050f0000 - 0x051eb000 D:\Documents and Settings\Administrator\workspace\DllInterface_4\dll\SemanticAnalyzer.dll
0x051f0000 - 0x052c9000 D:\Documents and Settings\Administrator\workspace\DllInterface_4\dll\iconv.dll
0x052d0000 - 0x0538d000 D:\Documents and Settings\Administrator\workspace\DllInterface_4\dll\Search.dll
0x05390000 - 0x06529000 D:\Documents and Settings\Administrator\workspace\DllInterface_4\dll\KeywordsWeight.dll
0x06530000 - 0x0661e000 D:\Documents and Settings\Administrator\workspace\DllInterface_4\dll\WordSegment.dll
0x06620000 - 0x0665f000 D:\Documents and Settings\Administrator\workspace\DllInterface_4\dll\SaveSAM.dll
0x76990000 - 0x76acd000 D:\WINDOWS\system32\ole32.dll
0x770f0000 - 0x7717b000 D:\WINDOWS\system32\OLEAUT32.dll
0x422d0000 - 0x4246e000 D:\Program Files\Java\jre1.5.0_15\bin\client\jvm.dll
0x6d290000 - 0x6d298000 D:\Program Files\Java\jre1.5.0_15\bin\hpi.dll
0x6d610000 - 0x6d61c000 D:\Program Files\Java\jre1.5.0_15\bin\verify.dll
0x6d310000 - 0x6d32d000 D:\Program Files\Java\jre1.5.0_15\bin\java.dll
0x6d630000 - 0x6d63f000 D:\Program Files\Java\jre1.5.0_15\bin\zip.dllVM Arguments:
jvm_args: -Djava.compiler=NONE -verbose:NONE
java_command: <unknown>
Launcher Type: genericEnvironment Variables:
JAVA_HOME=D:\Program Files\Java\jdk1.5.0_15
CLASSPATH=.;D:\PROGRA~1\JMF21~1.1E\lib\sound.jar;D:\PROGRA~1\JMF21~1.1E\lib\jmf.jar;D:\PROGRA~1\JMF21~1.1E\lib;.
PATH=D:/Program Files/Java/jdk1.5.0_15/bin/../jre/bin/client;D:/Program Files/Java/jdk1.5.0_15/bin/../jre/bin;D:/Program Files/Java/jdk1.5.0_15/bin/../jre/lib/i386;D:\Program Files\Java\jdk1.5.0_15\bin;d:\oracle\product\10.1.0\Db_1\bin;d:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin\client;d:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin;D:\WINDOWS\system32;D:\WINDOWS;D:\WINDOWS\System32\Wbem;D:\Program Files\Common Files\Thunder Network\KanKan\Codecs;d:\Program Files\ATI Technologies\ATI.ACE\Core-Static;D:\Program Files\Common Files\Lenovo;D:\Program Files\Intel\WiFi\bin\;D:\Program Files\TortoiseSVN\bin;D:\Program Files\Java\jre6\bin\client;D:\Program Files\Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\Microsoft Visual Studio\VC98\bin
USERNAME=Administrator
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 10, GenuineIntel--------------- S Y S T E M ---------------OS: Windows XP Build 2600 Service Pack 3CPU:total 2 (cores per cpu 2, threads per core 1) family 6 model 7 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2Memory: 4k page, physical 2091812k(616760k free), swap 4028652k(2154808k free)vm_info: Java HotSpot(TM) Client VM (1.5.0_15-b04) for windows-x86, built on Feb 9 2008 01:07:28 by "java_re" with MS VC++ 6.0