java调用dll文件,堆栈崩溃溢出的问题

老婆的ATM 2013-06-17 02:06:41
#
# An unexpected error has been detected by Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0b56b0d7, pid=3344, tid=2684
#
# Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixed mode windows-x86)
# Problematic frame:
# C [AntiVC.dll+0xb0d7]
#
# 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 (0x00849c00): JavaThread "main" [_thread_in_native, id=2684, stack(0x008f0000,0x00940000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000000

Registers:
EAX=0x00000001, EBX=0x00000000, ECX=0x00000001, EDX=0x000a0608
ESP=0x0093f518, EBP=0x0093f534, ESI=0x00000000, EDI=0x74389ff8
EIP=0x0b56b0d7, EFLAGS=0x00010202

Top of Stack: (sp=0x0093f518)
0x0093f518: 00000000 00000000 7436fc78 00000001
0x0093f528: 74369bc0 0b59220b 0b592268 0093f610
0x0093f538: 0b592332 00000000 76d1ffcc 0b566713
0x0093f548: 0000000c 4befefc0 00000001 74389ff8
0x0093f558: 76d1ffcc 74389ff0 74388d60 6c73c3ec
0x0093f568: 74388d58 00000026 74369370 756c61f4
0x0093f578: 743692c8 743696d0 602837e4 743696c8
0x0093f588: 7436fc78 67f7ff30 6d58f650 718a9e70

Instructions: (pc=0x0b56b0d7)
0x0b56b0c7: 8b c8 85 c9 0f 84 b0 01 00 00 51 53 8b 1b 53 53
0x0b56b0d7: 8b 1b 53 8b 0b 83 c3 04 85 c9 74 11 8b 03 83 c3


Stack: [0x008f0000,0x00940000], sp=0x0093f518, free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [AntiVC.dll+0xb0d7]
C [AntiVC.dll+0x32332]
C [AntiVC.dll+0xa290]
C [AntiVC.dll+0xaf07]
C [jna1114295989977602099.dll+0xc7d9]
C [jna1114295989977602099.dll+0x4561]
C [jna1114295989977602099.dll+0x4d2e]
j com.sun.jna.Function.invokeInt(I[Ljava/lang/Object;)I+0
j com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+315
J com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
j com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+341
j $Proxy0.LoadCdsFromFile(Ljava/lang/String;Ljava/lang/String;)I+20
j duowei.test.DuoWeiDriver.loadCdsFromFile(Ljava/lang/String;)I+6
j source.app.TicketPriceCrawller.getCode([Ljava/lang/String;)I+18
j source.app.TicketPriceCrawller.crawlTicketPrice(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/lang/String;+2
j source.util.CrawlImpl.crawlTicketPrice(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;+10
j source.main.DataCrawller.crawlAndStoreTicketPrice()V+435
j source.main.DataCrawller.main([Ljava/lang/String;)V+103
v ~StubRoutines::call_stub

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.sun.jna.Function.invokeInt(I[Ljava/lang/Object;)I+0
j com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+315
J com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;
j com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+341
j $Proxy0.LoadCdsFromFile(Ljava/lang/String;Ljava/lang/String;)I+20
j duowei.test.DuoWeiDriver.loadCdsFromFile(Ljava/lang/String;)I+6
j source.app.TicketPriceCrawller.getCode([Ljava/lang/String;)I+18
j source.app.TicketPriceCrawller.crawlTicketPrice(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Z)Ljava/lang/String;+2
j source.util.CrawlImpl.crawlTicketPrice(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;+10
j source.main.DataCrawller.crawlAndStoreTicketPrice()V+435
j source.main.DataCrawller.main([Ljava/lang/String;)V+103
v ~StubRoutines::call_stub

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x0b1a6400 JavaThread "MySQL Statement Cancellation Timer" daemon [_thread_blocked, id=692, stack(0x0b420000,0x0b470000)]
0x0ab2f000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=2972, stack(0x0ad70000,0x0adc0000)]
0x0ab29800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=368, stack(0x0ad20000,0x0ad70000)]
0x0ab27400 JavaThread "Attach Listener" daemon [_thread_blocked, id=988, stack(0x0acd0000,0x0ad20000)]
0x0ab21000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3752, stack(0x0ac80000,0x0acd0000)]
0x0ab0f800 JavaThread "Finalizer" daemon [_thread_blocked, id=3592, stack(0x0ac30000,0x0ac80000)]
0x0ab0ac00 JavaThread "Reference Handler" daemon [_thread_blocked, id=2732, stack(0x0abe0000,0x0ac30000)]
=>0x00849c00 JavaThread "main" [_thread_in_native, id=2684, stack(0x008f0000,0x00940000)]

Heap
def new generation total 2176K, used 1698K [0x029f0000, 0x02c40000, 0x02ed0000)
eden space 1984K, 76% used [0x029f0000, 0x02b6bda0, 0x02be0000)
from space 192K, 93% used [0x02be0000, 0x02c0cd68, 0x02c10000)
to space 192K, 0% used [0x02c10000, 0x02c10000, 0x02c40000)
tenured generation total 28304K, used 16475K [0x02ed0000, 0x04a74000, 0x069f0000)
the space 28304K, 58% used [0x02ed0000, 0x03ee6d38, 0x03ee6e00, 0x04a74000)
compacting perm gen total 12800K, used 12707K [0x069f0000, 0x07670000, 0x0a9f0000)
the space 12800K, 99% used [0x069f0000, 0x07658f90, 0x07659000, 0x07670000)
No shared spaces configured.

Dynamic libraries:
0x00400000 - 0x00424000 D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin\javaw.exe
0x7c930000 - 0x7ca03000 C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c92b000 C:\WINDOWS\system32\kernel32.dll
0x77f30000 - 0x77fdc000 C:\WINDOWS\system32\ADVAPI32.dll
0x77c20000 - 0x77cc0000 C:\WINDOWS\system32\RPCRT4.dll
0x76eb0000 - 0x76ec3000 C:\WINDOWS\system32\Secur32.dll
0x77e10000 - 0x77ea0000 C:\WINDOWS\system32\USER32.dll
0x77bd0000 - 0x77c19000 C:\WINDOWS\system32\GDI32.dll
0x76180000 - 0x7619d000 C:\WINDOWS\system32\IMM32.DLL
0x7f000000 - 0x7f009000 C:\WINDOWS\system32\LPK.DLL
0x74ae0000 - 0x74b45000 C:\WINDOWS\system32\USP10.dll
0x7c340000 - 0x7c396000 D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\msvcr71.dll
0x6d8b0000 - 0x6db06000 D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\client\jvm.dll
0x769e0000 - 0x76a0a000 C:\WINDOWS\system32\WINMM.dll
0x71b20000 - 0x71b28000 C:\WINDOWS\system32\rdpsnd.dll
0x77f10000 - 0x77f21000 C:\WINDOWS\system32\WINSTA.dll
0x77b70000 - 0x77bca000 C:\WINDOWS\system32\msvcrt.dll
0x71ba0000 - 0x71bf7000 C:\WINDOWS\system32\NETAPI32.dll
0x76ab0000 - 0x76abb000 C:\WINDOWS\system32\PSAPI.DLL
0x6d340000 - 0x6d348000 D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\hpi.dll
0x6d860000 - 0x6d86c000 D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\verify.dll
0x6d3e0000 - 0x6d3ff000 D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\java.dll
0x6d8a0000 - 0x6d8af000 D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\zip.dll
0x6d6c0000 - 0x6d6d3000 D:\Program Files\Genuitec\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\net.dll
0x71b60000 - 0x71b77000 C:\WINDOWS\system32\WS2_32.dll
0x71b50000 - 0x71b58000 C:\WINDOWS\system32\WS2HELP.dll
0x71a80000 - 0x71ac0000 C:\WINDOWS\system32\mswsock.dll
0x69660000 - 0x696b7000 C:\WINDOWS\system32\hnetcfg.dll
0x71a40000 - 0x71a48000 C:\WINDOWS\System32\wshtcpip.dll
0x68000000 - 0x68035000 C:\WINDOWS\system32\rsaenh.dll
0x75870000 - 0x7592d000 C:\WINDOWS\system32\USERENV.dll
0x76e30000 - 0x76e5b000 C:\WINDOWS\system32\DNSAPI.dll
0x76ed0000 - 0x76ed7000 C:\WINDOWS\System32\winrnr.dll
0x76e70000 - 0x76e9e000 C:\WINDOWS\system32\WLDAP32.dll
0x76ee0000 - 0x76ee5000 C:\WINDOWS\system32\rasadhlp.dll
0x10000000 - 0x10054000 C:\Documents and Settings\Administrator\Local Settings\Temp\1\jna1114295989977602099.dll
0x0b560000 - 0x0b5b2000 d:\AntiVC.dll
0x4c620000 - 0x4c7cb000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.6002.22791_x-ww_C8DFF154\gdiplus.dll
0x774b0000 - 0x775e9000 C:\WINDOWS\system32\ole32.dll
0x7ca10000 - 0x7d1ec000 C:\WINDOWS\system32\SHELL32.dll
0x77eb0000 - 0x77f02000 C:\WINDOWS\system32\SHLWAPI.dll
0x40270000 - 0x40357000 C:\WINDOWS\system32\WININET.dll
0x0b5c0000 - 0x0b5c9000 C:\WINDOWS\system32\Normaliz.dll
0x439b0000 - 0x43ae4000 C:\WINDOWS\system32\urlmon.dll
0x775f0000 - 0x7767b000 C:\WINDOWS\system32\OLEAUT32.dll
0x40910000 - 0x40afc000 C:\WINDOWS\system32\iertutil.dll
0x77cd0000 - 0x77dd3000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.3790.4770_x-ww_05FDF087\comctl32.dll
0x74430000 - 0x74480000 C:\WINDOWS\system32\MSCTF.dll
0x75d60000 - 0x75d87000 C:\WINDOWS\system32\apphelp.dll
0x4c510000 - 0x4c53e000 C:\WINDOWS\system32\msctfime.ime

VM Arguments:
jvm_args: -Dfile.encoding=GBK
java_command: source.main.DataCrawller 4
Launcher Type: SUN_STANDARD

--------------- S Y S T E M ---------------

OS: Windows Server 2003 family Build 3790 Service Pack 2

CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 14 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 2097151k(2097151k free), swap 4194303k(4194303k free)

vm_info: Java HotSpot(TM) Client VM (11.3-b02) for windows-x86 JRE (1.6.0_13-b03), built on Mar 9 2009 01:15:24 by "java_re" with MS VC++ 7.1

time: Mon Jun 17 04:55:42 2013
elapsed time: 43957 seconds
在csdn论坛上也看到了,出现同样的问题,有已经解决了这类问题的前辈们给解决的方向。
问题是调用这个dll是能成功运行的,但是运行大概不到24小时左右就会出现这个情况,导致java程序异常退出。
...全文
965 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanjiangIT 2014-11-07
  • 打赏
  • 举报
回复
引用 3 楼 liunianchao 的回复:
非常感谢shnulaa和shadowsick两位老大,就是长时间运行占用内存资源一直没有释放造成的,后来调用该dll的内存释放函数,定期的对其所在的内存资源进行释放后在重启加载该资源,至少到目前该程序运行稳定没有再出现这个的问题。
我使用java调用AntiVC.dll时,无法成功,希望得到楼主的指点!
老婆的ATM 2013-06-18
  • 打赏
  • 举报
回复
非常感谢shnulaa和shadowsick两位老大,就是长时间运行占用内存资源一直没有释放造成的,后来调用该dll的内存释放函数,定期的对其所在的内存资源进行释放后在重启加载该资源,至少到目前该程序运行稳定没有再出现这个的问题。
小丑哥_V5 2013-06-17
  • 打赏
  • 举报
回复
来个dll内存泄漏检查器...一般都是代码没注意没释放资源咯,你用下Visual Leak Detector这个工具
晓风吹雾 2013-06-17
  • 打赏
  • 举报
回复
只能提供一点思路 长时间调用后出问题,可能是dll的程序 memory方面的问题,也可能是资源没有释放的问题。你可以用c 写个main函数调用dll,然后长时间运行, 有dll的源代码的话,也就可以调式了。然后再分析原因。 希望对你有帮助

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧