MyEclipse中寫一個java程式,嘗試調用已經封裝好的dll,控制台出現如下錯誤:
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x10005301, pid=708, tid=3224
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_13-b05 mixed mode, sharing)
# Problematic frame:
# C [KDCCAvayaComm.dll+0x5301]
#
# An error report file with more information is saved as hs_err_pid708.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
hs_err_pid708.log記錄檔中有一堆log,也看不出什麼東東,反正是JVM出錯了,記得DLL拋出的異常是無法被JVM捕獲的,因此JVM就被強行停了下來。。崩潰
既然是DLL有異常,看來C++程式或JNI部分出錯,jni要調用的c++程式可以肯定是沒有問題的,那問題肯定出在jni的調用上,同時發現如果無參的介面則正常,調用帶了參數的方法就出現了問題,使用了try{}catch(...){}發現果然是jni代碼出錯,暈頭,問題還是出在一開始就感覺會出錯的地方!檢查下自己jni裡的方法調用或參數傳遞有沒有問題!搞了幾年java,突然要弄C++還真頭大,估計類似的出了問題也都很頭大吧!
不過一開始在網上搜尋了半天
EXCEPTION_ACCESS_VIOLATION (0xc0000005) 既然沒有可取的答案,只找到這句話(DLL拋出的異常是無法被JVM捕獲的,因此JVM就被強行停了下來。。)感覺最有用,所以有第一次使用JNI的如果遇到這個問題可以直接看自己的JNI部分的代碼是否正確,當然還有更權威的資料,如果你想查閱的話!
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d90df57, pid=3104, tid=3820
#
# Java VM: Java HotSpot(TM) Client VM (11.0-b15 mixed mode windows-x86)
# Problematic frame:
# V [jvm.dll+0x5df57]
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x01b36c00): VMThread [stack: 0x019e0000,0x01a30000] [id=3820]
siginfo: ExceptionCode=0xc0000005, reading address 0x0000000c
Registers:
EAX=0x01abfd40, EBX=0x01abfd7c, ECX=0x00000000, EDX=0x6da8c108
ESP=0x01a2f7ac, EBP=0x01abfcf0, ESI=0x09849a88, EDI=0x09849a88
EIP=0x6d90df57, EFLAGS=0x00010283
Top of Stack: (sp=0x01a2f7ac)
0x01a2f7ac: 09849a88 09849a88 6da2ecc0 6d8ce6eb
0x01a2f7bc: 09849a88 01a2f804 01a2f804 00000002
0x01a2f7cc: 01a9dca8 6d95f8b1 09849c98 01abfb48
0x01a2f7dc: 6d95f681 01abfd40 6d92e9e3 01a2f804
0x01a2f7ec: 00000000 01a9dd00 09849c98 6d95f497
0x01a2f7fc: 01a2f804 00000000 6da948c8 09849c98
0x01a2f80c: 00000000 6d95a123 09849c98 09849c98
0x01a2f81c: 00000000 01a2f934 00000000 6d9ef6a3
Instructions: (pc=0x6d90df57)
0x6d90df47: cc cc cc cc cc cc cc cc cc 51 56 8b f1 8b 4e 04
0x6d90df57: 8b 51 0c 83 c1 08 8b c2 c1 f8 02 85 d2 89 54 24
Stack: [0x019e0000,0x01a30000], sp=0x01a2f7ac, free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [jvm.dll+0x5df57]
VM_Operation (0x0d99f56c): GenCollectFull, mode: safepoint, requested by thread 0x0c82c000
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x0c6a8000 JavaThread "紘 紘紘紘絀€啶忓祼蘚鑼ㄠ紘紘紘紘紘紘紘紘紘紘紘紘钂樴宓愞虹爯啖偫€紘鐐樴紘!膧紘紘紘紘紘紘紘紘紘紘紘鍒犩絝€啶忚嫲啶忕﹢啶忕﹢啶忕啶忕攼啶徖€紘紘紘紘紘瑾班爜紘紘钃膏紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘膧紘1紘紘榘€譬紘紘紘紘紘紘紘紘紘紘紘紘惘堗不紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘 紘灝ㄞ虹緺啶忓煚蘚緙堗鑱犩緔ㄠ綣堗綞膏紘紘紘紘淼盎隊叚淼盎隊叚鋟儈倍屺般祾紘鐝冟鐚犧昏尐啶忓垹啶捓€紘紘紘紘紘鐞ㄠ毹樥徖€紘毹剛忞諒氅剛徖€紘紘紘氌樥徖€紘紘紘紘紘雽樢む爤袐紘紘紘紘紘紘鐞`唳€蘚紘Z紘紘紘紘鐞穢醼堔?紘鐢愢r紘鑼ㄠ艕紘紘錉€s紘鑼ㄠ濃紘紘t霒磋尐啶?紘鐮€u霒磋尐啶?紘鐮€v霒磋尐啶?紘鐮€w紘紘紘紘紘紘紘x路鍞稗豪€紘鑲€y霕€紘紘隉ㄞ?悴€z紘紘紘紘紘紘紘{紘紘紘紘紘紘紘|紘紘紘紘紘紘紘}霕€紘紘楣稗?嗖€~紘紘紘紘紘紘紘紘紘紘紘紘紘紘聙紘紘紘紘紘紘紘聛路陾斑埨€紘琚€聜霕€紘紘氤愡?綺€聝霕€紘紘輳樳?綺€聞賂楠高偫€紘紕€聟路綈堗紘紘鑲€聠路錡班紘紘琚€鐤涏嗷堔?紘銍€啶忚啶忚(啶徖€紘紘紘璜ㄠ悌稗恒槳蘚猢樲橫瘈蘚岫樲橫異蘚岑ㄞ橫蘚銍班夂€蘚釒ㄞ橫巿蘚甓ㄟ傜爯啖傜啶忊瓙蘚宓愞衡厛藜甓ㄟ傜爯啖傜啶忎亐蘚
瑾班爜鐦酄稗?紘酄€膩膩膩膩膩膩膩膩車鎽づむ皩啜?紘紘紘鐧涏蓸蘚9娼b弓鐣斥鞏嫻糕宮鎱暛鐏蟲崱夤ヤ箲嫻♀攻鐛典崶嫻叞妤存雹鍗ョ墺鎱╁櫖鐗ユコ婀D紘紘鐨`釃愞?紘曇高傜毘啶忇蘚紘紘紘紘鐩冟釃愞?紘錡班琚€啶徖€紘鐩涏嚳樲號溊€紘紘錡班紘紘釋稗?紘強紘紘紘紘霚€錁鱉垁紘紘紘紘鐪涏嗟犧鴻灠啶忚櫚啶徖€紘紘紘紘紘錕撅靠紘紘紘 紘紘旒€坪鈷犉躊▎萍紘紘旒€坪紘紘鐫嚳樲號樌€紘紘琚€啶徖€紘釋稗?紘強紘紘紘膾聘雬€每忙紘紘紘鐬嗟犧鴻啶忚櫚啶徖€紘紘紘紘錕撅靠紘紘紘
紘紘旒€坪鈷犉躊▎萍紘紘旒€坪紘紘鐭穢喃愞?紘紘紘紘紘紘鐮撪濃蘚璿€娑?紘 紘紘紘銛膏宓愞鴻(啶徖€紘紘紘紘紘紘紘紘紘紘紘瑭€啶忓祼蘚紺樴紘紘鑼ㄠ紘0鈥€紘紘紘紘紘紘紘紘紘紘紘紘紘鋙樴瑁愢銛膏銛膏鋙堗鉶班紘紘紘紘紘紘瑾班爜紘紘瑾犩紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘膧紘1紘紘榘€譬紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘灝ㄞ哄泙蘚鍩犧哄潣蘚澧樲豪€紘曇高偱惱€?daemon [_thread_blocked, id=9752, stack(0x0e2c0000,0x0e310000)]
0x0c830c00 JavaThread "Unknown thread" [_thread_blocked, id=6888, stack(0x0dea0000,0x0def0000)]
0x0c6a7c00 JavaThread "喟傝€?紘紘紘鏅犨佸祼蘚灝高佹敔邅紘紘紘紘紘紘紘紘紘紘鏆堖佸案邅鋱犧豪€紘紘紘袘紘紘鑰€紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘鑽愞葷尃槁鐚犧煥€紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘灝ㄞ哄泙蘚鍩犧哄潣蘚澧樲豪€紘紘釃愞?紘钀皋葷皚蘚鎺€邅鎲高佸繝邅甯樳伬€紘聟紘鐚犧繪敔邅紘紘紘紘紘紘紘紘悌班紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘陮愞祭€紘憬愋嬂€紘紘紘紘陮愞祭€紘憬ㄐ嬂€紘紘紘紘陮愞祭€紘憔€袐紘紘紘紘紘陮愞祭€紘憔樞嬂€紘紘紘紘嗷堔?紘鏋ㄟ佹獱邠妤愡伬€紘紘紘悌稗恒鞍蘚猢樲橫瘈蘚岑ㄞ橫蘚鈨犧衡噲蘚鈨犧轟綈藜
鏌堖伬€紘紘酄稗?紘膧膩膩膩鎼佮皣啜屇娎€紘紘蓸蘚鐣庢爆娼愭供鏁翠暡鎹哥仴妤存汞妯櫋a紘紘紘唳€蘚紘紘紘紘紘釃愞?紘妗樳佹(邅紘紘紘嚳樲號溊€紘紘妗樳伬€紘釋稗?紘強紘紘紘紘霚€錁變爛!紘紘紘紘嗟犧烘牁邅鏉堖伬€紘紘紘紘錕撅靠紘紘紘 紘紘旒€坪鈷犉躊▎萍紘紘旒€坪紘紘紘嚳樲橫敿紘紘紘媯ㄟ伬€紘釋稗?紘強紘紘紘蝟馮剙每猊溊€紘紘紘嗟犧烘ⅷ邅鏉堖伬€紘紘紘紘錕撅靠紘紘紘紘紘旒€坪鈷鈣躊萍紘紘旒€坪紘紘紘喃愞?紘紘紘紘紘紘紘濃蘚璿€娑?紘,紘紘紘猸€藜宓愞恒藜洄ㄞ間綈藜妤愡伬€紘紘紘紘紘婭犨佷綈藜鈨犧豪€紘戡堔?紘!紘紘紘紘紘紘紘紘紘紘紘紘紘紘鏍€邅妞高佱崁蘚猸€藜鏌斑佹潏邅紘紘紘紘紘紘鏌堖伬€紘釋犧豪€紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘膧紘1紘紘榘€譬紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘灝ㄞ哄泙蘚鍩犧哄潣蘚銌堔箋枑藜銓稗箋垬藜銤樲箋€樲箋儛藜饣稗尖線藜銢樲箋懜藜銦皋箋⒏藜悝愞箋◥藜悛樲箋藜紘紘紘紘紘紘紘紘聟紘鐚犧繪邅紘紘紘紘紘紘紘紘牖堗6紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘紘妤愡伬€紘紘紘紘紘紘紘紘嗷堔?紘孌高佹邠嫻犨伬€紘紘紘悌稗恒鞍蘚猢樲橫瘈蘚岑ㄞ橫蘚岫皋衡噲蘚岫皋衡噲蘚
姣樳伬€紘紘酄稗?紘膧膩膩膩鎼佮堡啜屇娎€紘紘蓸蘚鐗佺懇嫻ㄧ懃鎹╃鏁g懓娼┾鞏鎱叾紘紘紘紘唳€蘚紘紘紘紘紘釃愞?紘姹ㄟ佹掣邅紘紘紘嚳樲號溊€紘紘姹ㄟ伬€紘釋稗?紘強紘紘紘紘霚€錁便悁!紘紘紘紘嗟犧烘皚邅姝樳伬€紘紘紘紘錕撅靠紘?[_thread_blocked, id=6972, stack(0x0e270000,0x0e2c0000)]
0x0c6a7400 JavaThread "Unknown thread" daemon [_thread_blocked, id=6684, stack(0x0e220000,0x0e270000)]
0x0c6a7000
[error occurred during error reporting (printing all threads), id 0xc0000005]
VM state:at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x01a97af0] UNKNOWN - owner thread: 0x01b36c00
[0x01a97f50] UNKNOWN - owner thread: 0x0c82c000
Heap
def new generation total 2816K, used 1313K [0x03ba0000, 0x03ea0000, 0x04080000)
eden space 2560K, 41% used [0x03ba0000, 0x03ca85e0, 0x03e20000)
from space 256K, 100% used [0x03e60000, 0x03ea0000, 0x03ea0000)
to space 256K, 0% used [0x03e20000, 0x03e20000, 0x03e60000)
tenured generation total 36360K, used 33780K [0x04080000, 0x06402000, 0x07ba0000)
the space 36360K, 92% used [0x04080000, 0x0617d1d8, 0x05677c00, 0x06402000)
compacting perm gen total 45056K, used 45055K [0x07ba0000, 0x0a7a0000, 0x0bba0000)
the space 45056K, 99% used [0x07ba0000, 0x0a79fff0, 0x0a700400, 0x0a7a0000)
No shared spaces configured.
Dynamic libraries:
0x00400000 - 0x00424000 C:\Program Files\Java\jdk1.6.0_10\bin\javaw.exe
0x77250000 - 0x7738c000 C:\Windows\SYSTEM32\ntdll.dll
0x76510000 - 0x765e4000 C:\Windows\system32\kernel32.dll
0x75660000 - 0x756aa000 C:\Windows\system32\KERNELBASE.dll
0x76c90000 - 0x76d30000 C:\Windows\system32\ADVAPI32.dll
0x76f60000 - 0x7700c000 C:\Windows\system32\msvcrt.dll
0x76a10000 - 0x76a29000 C:\Windows\SYSTEM32\sechost.dll
0x767b0000 - 0x76851000 C:\Windows\system32\RPCRT4.dll
0x77180000 - 0x77249000 C:\Windows\system32\USER32.dll
0x77430000 - 0x7747e000 C:\Windows\system32\GDI32.dll
0x77390000 - 0x7739a000 C:\Windows\system32\LPK.dll
0x770e0000 - 0x7717d000 C:\Windows\system32\USP10.dll
0x768d0000 - 0x768ef000 C:\Windows\system32\IMM32.DLL
0x77010000 - 0x770dc000 C:\Windows\system32\MSCTF.dll
0x7c340000 - 0x7c396000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\msvcr71.dll
0x6d8b0000 - 0x6db06000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\client\jvm.dll
0x73f20000 - 0x73f52000 C:\Windows\system32\WINMM.dll
0x752e0000 - 0x7532b000 C:\Windows\system32\apphelp.dll
0x6d330000 - 0x6d338000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\hpi.dll
0x76860000 - 0x76865000 C:\Windows\system32\PSAPI.DLL
0x6d420000 - 0x6d449000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\jdwp.dll
0x6d750000 - 0x6d756000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\npt.dll
0x6d860000 - 0x6d86c000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\verify.dll
0x6d3d0000 - 0x6d3ef000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\java.dll
0x6d8a0000 - 0x6d8af000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\zip.dll
0x6d2a0000 - 0x6d2a7000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\dt_socket.dll
0x773a0000 - 0x773d5000 C:\Windows\system32\WS2_32.dll
0x77410000 - 0x77416000 C:\Windows\system32\NSI.dll
0x73cd0000 - 0x73ce0000 C:\Windows\system32\NLAapi.dll
0x74e20000 - 0x74e5c000 C:\Windows\System32\mswsock.dll
0x74ce0000 - 0x74d24000 C:\Windows\system32\DNSAPI.dll
0x70fe0000 - 0x70fe8000 C:\Windows\System32\winrnr.dll
0x70fd0000 - 0x70fe0000 C:\Windows\system32\napinsp.dll
0x709e0000 - 0x709f2000 C:\Windows\system32\pnrpnsp.dll
0x74730000 - 0x7474c000 C:\Windows\system32\IPHLPAPI.DLL
0x746e0000 - 0x746e7000 C:\Windows\system32\WINNSI.DLL
0x72c70000 - 0x72ca8000 C:\Windows\System32\fwpuclnt.dll
0x70e50000 - 0x70e56000 C:\Windows\system32\rasadhlp.dll
0x10000000 - 0x1003a000 e:\Program Files\YouKu\common\ikutm.dll
0x75760000 - 0x758bc000 C:\Windows\system32\ole32.dll
0x746f0000 - 0x74711000 C:\Windows\system32\ntmarta.dll
0x76a30000 - 0x76a75000 C:\Windows\system32\WLDAP32.dll
0x746a0000 - 0x746a5000 C:\Windows\System32\wshtcpip.dll
0x6d610000 - 0x6d619000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\management.dll
0x0ca20000 - 0x0caf2000 E:\apache-tomcat-6.0.30\bin\tcnative-1.dll
0x76c30000 - 0x76c87000 C:\Windows\system32\SHLWAPI.dll
0x6d840000 - 0x6d848000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\sunmscapi.dll
0x75540000 - 0x7565c000 C:\Windows\system32\CRYPT32.dll
0x75450000 - 0x7545c000 C:\Windows\system32\MSASN1.dll
0x6d6c0000 - 0x6d6d3000 C:\Program Files\Java\jdk1.6.0_10\jre\bin\net.dll
0x74e10000 - 0x74e16000 C:\Windows\System32\wship6.dll
0x74e60000 - 0x74e76000 C:\Windows\system32\CRYPTSP.dll
0x74c00000 - 0x74c3b000 C:\Windows\system32\rsaenh.dll
0x75330000 - 0x7533c000 C:\Windows\system32\CRYPTBASE.dll
0x74a40000 - 0x74a57000 C:\Windows\system32\USERENV.dll
0x753e0000 - 0x753eb000 C:\Windows\system32\profapi.dll
VM Arguments:
jvm_args: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:58682 -Dcatalina.base=E:\J2EEWorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0 -Dcatalina.home=E:\apache-tomcat-6.0.30 -Dwtp.deploy=E:\J2EEWorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
-Djava.endorsed.dirs=E:\apache-tomcat-6.0.30\endorsed -Dfile.encoding=GBK
java_command: org.apache.catalina.startup.Bootstrap start
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10
CLASSPATH=.;C:\Program Files\Java\jdk1.6.0_10\lib;C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar
PATH=C:\Program Files\Java\jdk1.6.0_10\jre\bin;C:/Program Files/Java/jdk1.6.0_10/bin/../jre/bin/client;C:/Program Files/Java/jdk1.6.0_10/bin/../jre/bin;E:\apache-tomcat-6.0.30\bin;C:\Program Files\Java\jdk1.6.0_10\bin;c:\olite\deploy\Bin;C:\olite\bin;C:\Program
Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;c:\olite\deploy\bin;E:\Program Files\MySQL\MySQL
Server 5.1\bin;E:\Program Files\Rational\Common;E:\Program Files\TortoiseSVN\bin;C:\Users\who\AppData\Local\Temp
USERNAME=who
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 37 Stepping 5, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows NT 6.1 Build 7600
CPU:total 4 (8 cores per cpu, 2 threads per core) family 6 model 5 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, ht
Memory: 4k page, physical 1956544k(162336k free), swap 3913088k(708756k free)
vm_info: Java HotSpot(TM) Client VM (11.0-b15) for windows-x86 JRE (1.6.0_10-rc2-b32), built on Sep 12 2008 00:52:11 by "java_re" with MS VC++ 7.1
time: Thu May 03 16:58:03 2012
elapsed time: 209 seconds