JNI 异常访问冲突 [英] JNI exception access violation

查看:39
本文介绍了JNI 异常访问冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前我正在尝试使用 JNI.

at the moment i´m trying to play around with JNI.

我的 Java 代码:

My Java-Code :

public class test{
static{

    System.loadLibrary("wakeup64");

}

public static native boolean setWakeupTime(Date date);

public static void set(){
    Date d = new Date();
    setWakeupTime(d);

}

}

C 代码:

#include <jni.h>
#include "cpp_interface.h"
#include <stdio.h>

JNIEXPORT void JNICALL Java_test_setWakeupTime
  (JNIEnv *env, jclass cl, jobject date){

    printf("test");

  }

  int main(){

  }

代码编译得很好,但如果我运行我的 java 类,我会收到一个 exception_access_violation:

The code compiles fine but if I run my java Class i´m getting an exception_access_violation:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000000000c038, pid=7456, tid=4640
#
# JRE version: 7.0_03-b05
# Java VM: Java HotSpot(TM) 64-Bit Server VM (22.1-b02 mixed mode windows-amd64     compressed oops)
# Problematic frame:
# C  0x000000000000c038
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of     Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/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 (0x000000000211b000):  JavaThread "main" [_thread_in_native, id=4640,     stack(0x0000000002290000,0x0000000002390000)]

siginfo: ExceptionCode=0xc0000005, ExceptionInformation=0x0000000000000008 0x000000000000c038

Registers:
RAX=0x0000000000000000, RBX=0x0000000000000015, RCX=0x00000000fffffff4,     RDX=0x000000014000d040
RSP=0x000000000238f668, RBP=0x000000000238f858, RSI=0x0000000000000001, RDI=0x00000000000000fc
R8 =0x000000000238f878, R9 =0x00000000065cc490, R10=0x00000000023a21bc, R11=0x000000005b958940
R12=0x0000000000000000, R13=0x000000073b0739e0, R14=0x000000014000d570, R15=0x000000000211b000
RIP=0x000000000000c038, EFLAGS=0x0000000000010246

Top of Stack: (sp=0x000000000238f668)
0x000000000238f668:   0000000140002cd9 000000000238f7c0
0x000000000238f678:   000000005b922181 000000000211bd88
0x000000000238f688:   000000000211b000 0000000000000003
0x000000000238f698:   000000000211ba90 000000000238f878
0x000000000238f6a8:   0000000140002d60 0000000000000011
0x000000000238f6b8:   000000000211b000 000000014000d750
0x000000000238f6c8:   000000073b0739e0 000000000211b990
0x000000000238f6d8:   0000000140004374 000000000211bd88
0x000000000238f6e8:   0000000000000004 000000000238f7c0
0x000000000238f6f8:   00000000023ad623 000000073b0739e0
0x000000000238f708:   0000000140004453 0000000000000022
0x000000000238f718:   000000073b073730 000000014000d750
0x000000000238f728:   000000000211b000 000000000238f7c8
0x000000000238f738:   00000001400015e2 000000014000d040
0x000000000238f748:   0000000140001000 000000000238f858
0x000000000238f758:   0000000000000000 000000073b0739e0 

Instructions: (pc=0x000000000000c038)
0x000000000000c018:   
[error occurred during error reporting (printing registers, top of stack, instructions near pc), id 0xc0000005]

Register to memory mapping:

RAX=0x0000000000000000 is an unknown value
RBX=0x0000000000000015 is an unknown value
RCX=0x00000000fffffff4 is an unknown value
RDX=0x000000014000d040 is an unknown value
RSP=0x000000000238f668 is pointing into the stack for thread: 0x000000000211b000
RBP=0x000000000238f858 is pointing into the stack for thread: 0x000000000211b000
RSI=0x0000000000000001 is an unknown value
RDI=0x00000000000000fc is an unknown value
R8 =0x000000000238f878 is pointing into the stack for thread: 0x000000000211b000
R9 =0x00000000065cc490 is an unknown value
R10=0x00000000023a21bc is an Interpreter codelet
method entry point (kind = native)  [0x00000000023a1f40, 0x00000000023a27c0]  2176     bytes
R11=0x000000005b958940 is an unknown value
R12=0x0000000000000000 is an unknown value
R13=0x000000073b0739e0 is an oop
{method} 
 - klass: {other class}
R14=0x000000014000d570 is an unknown value
R15=0x000000000211b000 is a thread


Stack: [0x0000000002290000,0x0000000002390000],  sp=0x000000000238f668,  free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  0x000000000000c038
j  test.print()V+9
j  Main.main([Ljava/lang/String;)V+10
v  ~StubRoutines::call_stub

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  wecker.setWakeupTime(Ljava/util/Date;)Z+0
j  wecker.print()V+9
j  Main.main([Ljava/lang/String;)V+10
v  ~StubRoutines::call_stub

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

Java Threads: ( => current thread )
  0x00000000065a9000 JavaThread "Service Thread" daemon [_thread_blocked, id=5300,     stack(0x0000000007840000,0x0000000007940000)]
  0x00000000065a7800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=7416,     stack(0x0000000007690000,0x0000000007790000)]
  0x0000000006594000 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=4656, stack(0x00000000074d0000,0x00000000075d0000)]
  0x0000000006591000 JavaThread "Attach Listener" daemon [_thread_blocked, id=5864, stack(0x00000000073b0000,0x00000000074b0000)]
  0x000000000658c000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=7252, stack(0x0000000007260000,0x0000000007360000)]
  0x0000000002067000 JavaThread "Finalizer" daemon [_thread_blocked, id=2840, stack(0x0000000007060000,0x0000000007160000)]
  0x000000000205e800 JavaThread "Reference Handler" daemon [_thread_blocked, id=8056,     stack(0x0000000006e30000,0x0000000006f30000)]
=>0x000000000211b000 JavaThread "main" [_thread_in_native, id=4640,     stack(0x0000000002290000,0x0000000002390000)]

Other Threads:
  0x0000000002055000 VMThread [stack: 0x0000000006c00000,0x0000000006d00000] [id=8016]
  0x00000000065c2000 WatcherThread [stack: 0x0000000007a70000,0x0000000007b70000] [id=6884]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 PSYoungGen      total 57344K, used 983K [0x00000007c0000000, 0x00000007c4000000,     0x0000000800000000)
  eden space 49152K, 2% used [0x00000007c0000000,0x00000007c00f5c98,0x00000007c3000000)
  from space 8192K, 0% used [0x00000007c3800000,0x00000007c3800000,0x00000007c4000000)
  to   space 8192K, 0% used [0x00000007c3000000,0x00000007c3000000,0x00000007c3800000)
 PSOldGen        total 131072K, used 0K [0x0000000740000000, 0x0000000748000000, 0x00000007c0000000)
  object space 131072K, 0% used [0x0000000740000000,0x0000000740000000,0x0000000748000000)
 PSPermGen       total 21248K, used 2569K [0x000000073ae00000, 0x000000073c2c0000, 0x0000000740000000)
  object space 21248K, 12% used [0x000000073ae00000,0x000000073b0827c8,0x000000073c2c0000)

Code Cache  [0x0000000002390000, 0x0000000002600000, 0x0000000005390000)
 total_blobs=169 nmethods=0 adapters=136 free_code_cache=48773Kb     largest_free_block=49943680

Dynamic libraries:
0x000000013f530000 - 0x000000013f563000     C:Windowssystem32java.exe
0x0000000077730000 - 0x00000000778d9000     C:WindowsSYSTEM32
tdll.dll
0x0000000077610000 - 0x000000007772f000     C:Windowssystem32kernel32.dll
0x000007fefde10000 - 0x000007fefde7c000     C:Windowssystem32KERNELBASE.dll
0x00000000707d0000 - 0x000000007081a000     D:Program FilesAVAST     SoftwareAvastsnxhk64.dll
0x000007feff7f0000 - 0x000007feff8cb000     C:Windowssystem32ADVAPI32.dll
0x000007fefe7b0000 - 0x000007fefe84f000     C:Windowssystem32msvcrt.dll
0x000007feff970000 - 0x000007feff98f000     C:WindowsSYSTEM32sechost.dll
0x000007fefe3e0000 - 0x000007fefe50d000     C:Windowssystem32RPCRT4.dll
0x0000000077510000 - 0x000000007760a000     C:Windowssystem32USER32.dll
0x000007fefe360000 - 0x000007fefe3c7000     C:Windowssystem32GDI32.dll
0x000007fefe3d0000 - 0x000007fefe3de000     C:Windowssystem32LPK.dll
0x000007fefe900000 - 0x000007fefe9c9000     C:Windowssystem32USP10.dll
0x000007fefc360000 - 0x000007fefc554000         C:WindowsWinSxSamd64_microsoft.windows.common-    controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9acCOMCTL32.dll
0x000007fefe9d0000 - 0x000007fefea41000     C:Windowssystem32SHLWAPI.dll
0x000007feffa10000 - 0x000007feffa3e000     C:Windowssystem32IMM32.DLL
0x000007fefe250000 - 0x000007fefe359000     C:Windowssystem32MSCTF.dll
0x0000000062860000 - 0x0000000062931000     D:Program FilesJavajre7inmsvcr100.dll
0x000000005b7a0000 - 0x000000005be7a000     D:Program     FilesJavajre7inserverjvm.dll
0x000007fefabf0000 - 0x000007fefabf9000     C:Windowssystem32WSOCK32.dll
0x000007fefe850000 - 0x000007fefe89d000     C:Windowssystem32WS2_32.dll
0x000007feff7e0000 - 0x000007feff7e8000     C:Windowssystem32NSI.dll
0x000007fefbc40000 - 0x000007fefbc7b000     C:Windowssystem32WINMM.dll
0x0000000077900000 - 0x0000000077907000     C:Windowssystem32PSAPI.DLL
0x0000000062a10000 - 0x0000000062a1f000     D:Program FilesJavajre7inverify.dll
0x00000000629e0000 - 0x0000000062a08000     D:Program FilesJavajre7injava.dll
0x00000000629c0000 - 0x00000000629d5000     D:Program FilesJavajre7inzip.dll
0x0000000140000000 - 0x0000000140012000             C:Usersxxworkspace	estsrcwakeup64.dll

VM Arguments:
java_command: Main
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:Program Files (x86)AMD APPinx86_64;C:Program Files (x86)AMD     APPinx86;D:Program FilesCommon FilesMicrosoft SharedWindows Live;D:Program Files     (x86)Common FilesMicrosoft SharedWindows     Live;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPow    erShellv1.0;C:Program Files (x86)ATI TechnologiesATI.ACECore-Static;C:Program     Files (x86)Windows LiveShared;D:Program Files(x86)Androidandroid-sdkplatform-    tools;C:Program FilesATI TechnologiesATI.ACECore-Static;D:Program     FilesJavajdk1.7.0_02in;D:MinGWin;D:Program Files (x86)Microsoft Visual Studio     9.0VCin
USERNAME=xx
OS=Windows_NT
PROCESSOR_IDENTIFIER=AMD64 Family 16 Model 5 Stepping 2, AuthenticAMD



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

OS: Windows 7 , 64 bit Build 7601 Service Pack 1

CPU:total 4 (4 cores per cpu, 1 threads per core) family 16 model 5 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, popcnt, mmxext, 3dnowpref, lzcnt, sse4a

Memory: 4k page, physical 12581048k(7862816k free), swap 25160244k(19112368k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (22.1-b02) for windows-amd64 JRE (1.7.0_03-b05), built on Feb  3 2012 20:43:56 by "java_re" with unknown MS VC++:1600

time: Sun Jul 29 01:02:23 2012
elapsed time: 0 seconds

有人遇到过这种情况吗?

Anyone allready encountered this?

推荐答案

@technomage:我将它编译为 .dll 而不是 exe

@technomage: i compiled it as a .dll not as an exe

通过使用来自 Visual Studio 2012 的预配置 shell 而不是普通的 cmd 半解决了我的问题.似乎是我的 env 配置中的错误

semi-solved my problem by using the preconfigured shell from visual studio 2012 instead of normal cmd. seems to be an error in my env config

谢谢大家

这篇关于JNI 异常访问冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆