解决方案 »

  1.   

    刚才字数超了。完整错误日志
    错误日志 
      

    # An unexpected error has been detected by Java Runtime Environment: 

    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0b0e1c4b, pid=176, tid=4000 

    # Java VM: Java HotSpot(TM) Client VM (11.3-b02 mixed mode windows-x86) 
    # Problematic frame: 
    # C  [sm125_Comm_Dll.dll+0x1c4b] 

    # 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 (0x00857800):  JavaThread "main" [_thread_in_native, id=4000, stack(0x008f0000,0x00940000)] 
      
    siginfo: ExceptionCode=0xc0000005, writing address 0x00000064 
      
    Registers: 
    EAX=0x00000064, EBX=0x00000000, ECX=0x0000002c, EDX=0x00000000 
    ESP=0x0093f380, EBP=0x0093f3f8, ESI=0x0093f380, EDI=0x0093f3f8 
    EIP=0x0b0e1c4b, EFLAGS=0x00010202 
      
    Top of Stack: (sp=0x0093f380) 
    0x0093f380:   0093fb14 00000002 00000000 cccccccc 
    0x0093f390:   cccccccc cccccccc cccccccc cccccccc 
    0x0093f3a0:   cccccccc cccccccc cccccccc cccccccc 
    0x0093f3b0:   cccccccc cccccccc cccccccc cccccccc 
    0x0093f3c0:   cccccccc cccccccc cccccccc cccccccc 
    0x0093f3d0:   cccccccc 0000000a 30303030 30303030 
    0x0093f3e0:   cc003434 30303030 30303030 cccc3434 
    0x0093f3f0:   0000000a 0000002c 0093f408 1000dc25  
      
    Instructions: (pc=0x0b0e1c4b) 
    0x0b0e1c3b:   00 00 8b 45 f8 e9 34 01 00 00 8b 45 0c 8b 4d fc 
    0x0b0e1c4b:   89 08 8b 55 fc 52 e8 fa 02 00 00 83 c4 04 89 45  
      
      
    Stack: [0x008f0000,0x00940000],  sp=0x0093f380,  free space=316k 
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) 
    C  [sm125_Comm_Dll.dll+0x1c4b] 
    C  [jna4138342220634322716.dll+0xdc25] 
    C  [jna4138342220634322716.dll+0xd546] 
    C  [jna4138342220634322716.dll+0x2e5e] 
    C  [jna4138342220634322716.dll+0x54ce] 
    j  com.sun.jna.Native.invokeInt(JI[Ljava/lang/Object;)I+0 
    j  com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+333 
    j  com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+214 
    j  com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+341 
    j  $Proxy0.DataReadPD([BI)I+23 
    j  com.jxdl.dataConnect.Test.main([Ljava/lang/String;)V+83 
    v  ~StubRoutines::call_stub 
      
    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) 
    j  com.sun.jna.Native.invokeInt(JI[Ljava/lang/Object;)I+0 
    j  com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+333 
    j  com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+214 
    j  com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+341 
    j  $Proxy0.DataReadPD([BI)I+23 
    j  com.jxdl.dataConnect.Test.main([Ljava/lang/String;)V+83 
    v  ~StubRoutines::call_stub 
      
    ---------------  P R O C E S S  --------------- 
      
    Java Threads: ( => current thread ) 
       0x0ab29000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=1904, stack(0x0ad70000,0x0adc0000)] 
       0x0ab24400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=212, stack(0x0ad20000,0x0ad70000)] 
       0x0ab1f800 JavaThread "Attach Listener" daemon [_thread_blocked, id=1340, stack(0x0acd0000,0x0ad20000)] 
       0x0ab4a400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=4052, stack(0x0ac80000,0x0acd0000)] 
       0x0ab0d400 JavaThread "Finalizer" daemon [_thread_blocked, id=1760, stack(0x0ac30000,0x0ac80000)] 
       0x0ab08c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=1496, stack(0x0abe0000,0x0ac30000)] 
    =>0x00857800 JavaThread "main" [_thread_in_native, id=4000, stack(0x008f0000,0x00940000)] 
      
    Other Threads: 
       0x0ab05400 VMThread [stack: 0x0ab90000,0x0abe0000] [id=1908] 
       0x0ab34000 WatcherThread [stack: 0x0adc0000,0x0ae10000] [id=884] 
      
    VM state:not at safepoint (normal execution) 
      
    VM Mutex/Monitor currently owned by a thread: None 
      
    Heap 
      def new generation   total 960K, used 810K [0x029f0000, 0x02af0000, 0x02ed0000) 
       eden space 896K,  83% used [0x029f0000, 0x02aaa920, 0x02ad0000) 
       from space 64K, 100% used [0x02ae0000, 0x02af0000, 0x02af0000) 
       to   space 64K,   0% used [0x02ad0000, 0x02ad0000, 0x02ae0000) 
      tenured generation   total 4096K, used 166K [0x02ed0000, 0x032d0000, 0x069f0000) 
        the space 4096K,   4% used [0x02ed0000, 0x02ef9998, 0x02ef9a00, 0x032d0000) 
      compacting perm gen  total 12288K, used 3244K [0x069f0000, 0x075f0000, 0x0a9f0000) 
        the space 12288K,  26% used [0x069f0000, 0x06d1b128, 0x06d1b200, 0x075f0000) 
    No shared spaces configured. 
      
    Dynamic libraries: 
    0x00400000 - 0x00424000     d:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\bin\javaw.exe 
    0x7c920000 - 0x7c9b6000     C:\WINDOWS\system32\ntdll.dll 
    0x7c800000 - 0x7c91e000     C:\WINDOWS\system32\kernel32.dll 
    0x77da0000 - 0x77e49000     C:\WINDOWS\system32\ADVAPI32.dll 
    0x77e50000 - 0x77ee3000     C:\WINDOWS\system32\RPCRT4.dll 
    0x77fc0000 - 0x77fd1000     C:\WINDOWS\system32\Secur32.dll 
    0x77d10000 - 0x77da0000     C:\WINDOWS\system32\USER32.dll 
    0x77ef0000 - 0x77f39000     C:\WINDOWS\system32\GDI32.dll 
    0x76300000 - 0x7631d000     C:\WINDOWS\system32\IMM32.DLL 
    0x62c20000 - 0x62c29000     C:\WINDOWS\system32\LPK.DLL 
    0x73fa0000 - 0x7400b000     C:\WINDOWS\system32\USP10.dll 
    0x7c340000 - 0x7c396000     d:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\msvcr71.dll 
    0x6d8b0000 - 0x6db06000     d:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\client\jvm.dll 
    0x76b10000 - 0x76b3a000     C:\WINDOWS\system32\WINMM.dll 
    0x6d340000 - 0x6d348000     d:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\hpi.dll 
    0x76bc0000 - 0x76bcb000     C:\WINDOWS\system32\PSAPI.DLL 
    0x6d860000 - 0x6d86c000     d:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\verify.dll 
    0x6d3e0000 - 0x6d3ff000     d:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\java.dll 
    0x6d8a0000 - 0x6d8af000     d:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\zip.dll 
    0x68000000 - 0x68036000     C:\WINDOWS\system32\rsaenh.dll 
    0x77be0000 - 0x77c38000     C:\WINDOWS\system32\msvcrt.dll 
    0x759d0000 - 0x75a7f000     C:\WINDOWS\system32\USERENV.dll 
    0x5fdd0000 - 0x5fe25000     C:\WINDOWS\system32\netapi32.dll 
    0x6d6c0000 - 0x6d6d3000     D:\Program Files\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_1.6.0.013\jre\bin\net.dll 
    0x71a20000 - 0x71a37000     C:\WINDOWS\system32\WS2_32.dll 
    0x71a10000 - 0x71a18000     C:\WINDOWS\system32\WS2HELP.dll 
    0x719c0000 - 0x719fe000     C:\WINDOWS\system32\mswsock.dll 
    0x60fd0000 - 0x61025000     C:\WINDOWS\system32\hnetcfg.dll 
    0x58a00000 - 0x58a07000     C:\WINDOWS\System32\wship6.dll 
    0x76ef0000 - 0x76f17000     C:\WINDOWS\system32\DNSAPI.dll 
    0x76f80000 - 0x76f88000     C:\WINDOWS\System32\winrnr.dll 
    0x76f30000 - 0x76f5c000     C:\WINDOWS\system32\WLDAP32.dll 
    0x64000000 - 0x64021000     C:\Program Files\Bonjour\mdnsNSP.dll 
    0x76d30000 - 0x76d48000     C:\WINDOWS\system32\Iphlpapi.dll 
    0x76f90000 - 0x76f96000     C:\WINDOWS\system32\rasadhlp.dll 
    0x10000000 - 0x1003d000     C:\Documents and Settings\Administrator\Local Settings\Temp\jna-Administrator\jna4138342220634322716.dll 
    0x0b0e0000 - 0x0b114000     C:\WINDOWS\system32\sm125_Comm_Dll.dll 
    0x71a00000 - 0x71a08000     C:\WINDOWS\System32\wshtcpip.dll 
      
    VM Arguments: 
    jvm_args: -Dfile.encoding=GBK  
    java_command: com.jxdl.dataConnect.Test 
    Launcher Type: SUN_STANDARD 
      
    Environment Variables: 
    PATH=d:/Program Files/MyEclipse/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client;d:/Program Files/MyEclipse/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin;d:/Program Files/MyEclipse/Common/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/lib/i386;C:\Program Files\Network General\Sniffer Portable\Program;C:\Program Files\Network General\Sniffer Portable\Program\isniffer;C:\Program Files\Network General\Sniffer Portable\ApperaCollector\bin;C:\Program Files\Network General\Sniffer Portable\SupportComponents\bin;C:\Program Files\Network General\Sniffer Portable\CoreComponents\bin;C:\Program Files\Network General\SnifferProtocols\Decode\1.0;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\ThinkPad Wireless LAN Adapter Software;C:\Program Files\Rational\common;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\WINDOWS\system32\WindowsPowerShell\v1.0;D:\Program Files\Java\jdk1.7.0_17\bin;D:\apache-ant-1.9.0\bin;C:\Program Files\MySQL\MySQL Server 5.6\bin 
    USERNAME=Administrator 
    OS=Windows_NT 
    PROCESSOR_IDENTIFIER=x86 Family 6 Model 42 Stepping 7, GenuineIntel 
      
      
      
    ---------------  S Y S T E M  --------------- 
      
    OS: Windows XP Build 2600 Service Pack 3 
      
    CPU:total 2 (8 cores per cpu, 2 threads per core) family 6 model 10 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, ht 
      
    Memory: 4k page, physical 2097151k(1152544k free), swap 4194303k(3057944k 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: Sun May 26 10:47:48 2013 
    elapsed time: 0 seconds 
      
    --
      

  2.   

    有问题的代码段:# Problematic frame: 
    # C  [sm125_Comm_Dll.dll+0x1c4b] native本地代码出现了问题,sm125_Comm_Dll.dll出了错误
    猜测应该是public int DataReadPD(ByteBuffer ArrayOfData , int NumberOfBytes);
    传递的参数导致底层计算的时候对内存产生了非法的读写
    不知道为什么你把参数byte[]改成了ByteBuffer类型,而且分配了10000个字节,传递进去的numberOfBytes却只有100,你先看一下这块
      

  3.   

    关于用ByteBuffer的问题,是我在用byte[]崩溃后,有朋友让我试着用它,可是依然崩溃。
    关于字节大小的问题,arrayOfData是用来存数据的数组吧,numberOfBytes是每次传进来的字节数,我觉得这两个大小不会导致崩溃吧。而且我也调节了下,还是crash 的。这个程序本来是一个师兄用MFC写的,老师让改成B/S模型,我的数据大小是按之前师兄的设置来的
      

  4.   

    如果有DataReadPD(byte ArrayOfData[], int NumberOfBytes)这个函数的源码的话就好跟踪了,如果有的话就贴出来让大家看看啊
      

  5.   


    厂家不提供源码,那要想解决问题,有什么思路?
    把所有可用的数据类型试一遍?刚才已经试了char[],String,String[]了
    还能有什么办法呢?
      

  6.   


    The function returns a pointer to an array of bytes, ArrayOfData[], containing the data returned, and an integer, NumberOfBytes, which indicates the size of the data array.
    文档是这样描述这个函数的,您帮忙看看我的程序有没有理解错?