Cygwin编译错误问题帧:#C [cygwin1.dll + 0xd6d47]使用JNI [英] Cygwin compilation error Problematic frame: # C [cygwin1.dll+0xd6d47] using JNI

查看:180
本文介绍了Cygwin编译错误问题帧:#C [cygwin1.dll + 0xd6d47]使用JNI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用JNI制作了一个简单的hello world应用程序,即使为我的64位dll创建的dll都运行良好,但是运行该应用程序时显示以下错误:

I've made a simple hello world application using JNI everything works good even the dll for my 64 bit gets created but when i run the app it shows the following error :

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000180116d47, pid=2140, tid=0x0000000000001710
#
# JRE version: Java(TM) SE Runtime Environment (8.0_131-b11) (build 1.8.0_131-b11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [cygwin1.dll+0xd6d47]
#
# 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.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

这是完整的错误报告:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000180116d47, pid=2140, tid=0x0000000000001710
#
# JRE version: Java(TM) SE Runtime Environment (8.0_131-b11) (build 1.8.0_131-b11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C  [cygwin1.dll+0xd6d47]
#
# 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.java.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 (0x0000000002bd0800):  JavaThread "main" [_thread_in_native, id=5904, stack(0x0000000002a10000,0x0000000002b10000)]

siginfo: ExceptionCode=0xc0000005, writing address 0x0000000000000070

Registers:
RAX=0x0000000000000070, RBX=0x0000000017270278, RCX=0x00000004344a3030, RDX=0x0000000002b0f4f8
RSP=0x0000000002b0f430, RBP=0x0000000002b0f460, RSI=0x0000000020000021, RDI=0x00000000ffffffff
R8 =0x0000000000000004, R9 =0x0000000001217f70, R10=0x0000000002b10000, R11=0x00000004344a10ac
R12=0x0000000000000000, R13=0x0000000017270278, R14=0x0000000002b0f4f8, R15=0x0000000002bd0800
RIP=0x0000000180116d47, EFLAGS=0x0000000000010206

Top of Stack: (sp=0x0000000002b0f430)
0x0000000002b0f430:   000000018018c780 0000000180116d5b
0x0000000002b0f440:   0000000002b0f700 0000000002bd0800
0x0000000002b0f450:   0000000017270278 0000000020000021
0x0000000002b0f460:   0000000002b0f4d8 0000000002ce7f74
0x0000000002b0f470:   0000000002bd09f8 0000000002b0f4f8
0x0000000002b0f480:   0000000020000021 0000000002bd0800
0x0000000002b0f490:   0000000002ce7ca2 0000000002b0f498
0x0000000002b0f4a0:   0000000017270278 0000000002b0f4f8
0x0000000002b0f4b0:   0000000017270410 0000000000000000
0x0000000002b0f4c0:   0000000017270278 0000000000000000
0x0000000002b0f4d0:   0000000002b0f4f8 0000000002b0f540
0x0000000002b0f4e0:   0000000002cd835d 0000000000000000
0x0000000002b0f4f0:   0000000002ce19d8 00000000d5e6e2f0
0x0000000002b0f500:   0000000002b0f500 0000000017270317
0x0000000002b0f510:   0000000002b0f550 0000000017270410
0x0000000002b0f520:   0000000000000000 0000000017270320 

Instructions: (pc=0x0000000180116d47)
0x0000000180116d27:   04 f3 90 eb e3 48 c7 c0 08 00 00 00 49 0f c1 82
0x0000000180116d37:   50 e4 ff ff 4c 8d 1d 19 00 00 00 4c 87 5c 24 08
0x0000000180116d47:   4c 89 18 41 ff 82 44 e4 ff ff 41 ff 8a 4c e4 ff
0x0000000180116d57:   ff 58 ff e0 65 4c 8b 14 25 08 00 00 00 41 bb 01 


Register to memory mapping:

RAX=0x0000000000000070 is an unknown value
RBX={method} {0x0000000017270280} 'print' '()V' in 'javatoc'
RCX=0x00000004344a3030 is an unknown value
RDX=0x0000000002b0f4f8 is pointing into the stack for thread: 0x0000000002bd0800
RSP=0x0000000002b0f430 is pointing into the stack for thread: 0x0000000002bd0800
RBP=0x0000000002b0f460 is pointing into the stack for thread: 0x0000000002bd0800
RSI=0x0000000020000021 is an unknown value
RDI=0x00000000ffffffff is an unallocated location in the heap
R8 =0x0000000000000004 is an unknown value
R9 =0x0000000001217f70 is an unknown value
R10=0x0000000002b10000 is pointing into the stack for thread: 0x0000000002bd0800
R11=0x00000004344a10ac is an unknown value
R12=0x0000000000000000 is an unknown value
R13={method} {0x0000000017270280} 'print' '()V' in 'javatoc'
R14=0x0000000002b0f4f8 is pointing into the stack for thread: 0x0000000002bd0800
R15=0x0000000002bd0800 is a thread


Stack: [0x0000000002a10000,0x0000000002b10000],  sp=0x0000000002b0f430,  free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [cygwin1.dll+0xd6d47]
C  [cygwin1.dll+0x14c77f]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  javatoc.print()V+0
j  javatoc.main([Ljava/lang/String;)V+7
v  ~StubRoutines::call_stub

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

Java Threads: ( => current thread )
  0x0000000019428800 JavaThread "Service Thread" daemon [_thread_blocked, id=1096, stack(0x0000000019800000,0x0000000019900000)]
  0x000000001781f000 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=4500, stack(0x0000000019300000,0x0000000019400000)]
  0x000000001781a000 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=5164, stack(0x0000000019200000,0x0000000019300000)]
  0x0000000017816800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=3924, stack(0x0000000019100000,0x0000000019200000)]
  0x0000000017815000 JavaThread "Attach Listener" daemon [_thread_blocked, id=1188, stack(0x0000000019000000,0x0000000019100000)]
  0x0000000017812000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3188, stack(0x0000000018f00000,0x0000000019000000)]
  0x0000000002cca800 JavaThread "Finalizer" daemon [_thread_blocked, id=3732, stack(0x0000000018a60000,0x0000000018b60000)]
  0x0000000002cbf800 JavaThread "Reference Handler" daemon [_thread_blocked, id=192, stack(0x0000000018960000,0x0000000018a60000)]
=>0x0000000002bd0800 JavaThread "main" [_thread_in_native, id=5904, stack(0x0000000002a10000,0x0000000002b10000)]

Other Threads:
  0x00000000177d8000 VMThread [stack: 0x0000000018860000,0x0000000018960000] [id=5348]
  0x0000000019452800 WatcherThread [stack: 0x0000000019900000,0x0000000019a00000] [id=5728]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap:
 PSYoungGen      total 38400K, used 1331K [0x00000000d5e00000, 0x00000000d8880000, 0x0000000100000000)
  eden space 33280K, 4% used [0x00000000d5e00000,0x00000000d5f4cce8,0x00000000d7e80000)
  from space 5120K, 0% used [0x00000000d8380000,0x00000000d8380000,0x00000000d8880000)
  to   space 5120K, 0% used [0x00000000d7e80000,0x00000000d7e80000,0x00000000d8380000)
 ParOldGen       total 87552K, used 0K [0x0000000081a00000, 0x0000000086f80000, 0x00000000d5e00000)
  object space 87552K, 0% used [0x0000000081a00000,0x0000000081a00000,0x0000000086f80000)
 Metaspace       used 2598K, capacity 4486K, committed 4864K, reserved 1056768K
  class space    used 283K, capacity 386K, committed 512K, reserved 1048576K

Card table byte_map: [0x0000000012090000,0x0000000012490000] byte_map_base: 0x0000000011c83000

Marking Bits: (ParMarkBitMap*) 0x0000000060a0c720
 Begin Bits: [0x0000000012b40000, 0x0000000014ad8000)
 End Bits:   [0x0000000014ad8000, 0x0000000016a70000)

Polling page: 0x0000000001040000

CodeCache: size=245760Kb used=1106Kb max_used=1115Kb free=244653Kb
 bounds [0x0000000002cd0000, 0x0000000002f40000, 0x0000000011cd0000]
 total_blobs=257 nmethods=26 adapters=145
 compilation: enabled

Compilation events (10 events):
Event: 0.059 Thread 0x000000001781f000   21       3       java.io.WinNTFileSystem::isSlash (18 bytes)
Event: 0.059 Thread 0x000000001781f000 nmethod 21 0x0000000002de2910 code [0x0000000002de2a60, 0x0000000002de2c50]
Event: 0.059 Thread 0x000000001781f000   23       3       java.lang.AbstractStringBuilder::append (50 bytes)
Event: 0.059 Thread 0x000000001781a000   24       4       java.lang.String::charAt (29 bytes)
Event: 0.060 Thread 0x000000001781f000 nmethod 23 0x0000000002de2cd0 code [0x0000000002de2ea0, 0x0000000002de35f8]
Event: 0.060 Thread 0x000000001781f000   25       3       java.lang.String::indexOf (7 bytes)
Event: 0.060 Thread 0x000000001781f000 nmethod 25 0x0000000002de3910 code [0x0000000002de3a80, 0x0000000002de3c88]
Event: 0.060 Thread 0x000000001781a000 nmethod 24 0x0000000002de69d0 code [0x0000000002de6b20, 0x0000000002de6bd8]
Event: 0.063 Thread 0x000000001781f000   26       3       java.lang.StringBuilder::append (8 bytes)
Event: 0.063 Thread 0x000000001781f000 nmethod 26 0x0000000002de5e50 code [0x0000000002de5fc0, 0x0000000002de6148]

GC Heap History (0 events):
No events

Deoptimization events (0 events):
No events

Internal exceptions (2 events):
Event: 0.023 Thread 0x0000000002bd0800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; name or signature does not match> (0x00000000d5e07ca8) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u131\8869\hotspot\
Event: 0.023 Thread 0x0000000002bd0800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.prefetchRead(Ljava/lang/Object;J)V name or signature does not match> (0x00000000d5e07f90) thrown at [C:\re\workspace\8-2-build-windows-amd64-cygwin\jdk8u131\8869\hotspot\src\share\vm\prims

Events (10 events):
Event: 0.063 loading class java/security/BasicPermissionCollection
Event: 0.063 loading class java/security/BasicPermissionCollection done
Event: 0.063 loading class sun/launcher/LauncherHelper$FXHelper
Event: 0.063 loading class sun/launcher/LauncherHelper$FXHelper done
Event: 0.063 loading class java/lang/Class$MethodArray
Event: 0.063 loading class java/lang/Class$MethodArray done
Event: 0.064 loading class java/lang/Void
Event: 0.064 loading class java/lang/Void done
Event: 0.064 loading class java/lang/ClassLoaderHelper
Event: 0.064 loading class java/lang/ClassLoaderHelper done


Dynamic libraries:
0x00007ff690580000 - 0x00007ff6905b7000     C:\Program Files\Java\jdk1.8.0_131\bin\java.exe
0x00007ffc37930000 - 0x00007ffc37ada000     C:\WINDOWS\SYSTEM32\ntdll.dll
0x00007ffc37230000 - 0x00007ffc3736a000     C:\WINDOWS\system32\KERNEL32.DLL
0x00007ffc350a0000 - 0x00007ffc351af000     C:\WINDOWS\system32\KERNELBASE.dll
0x00007ffc33620000 - 0x00007ffc336a8000     C:\WINDOWS\system32\apphelp.dll
0x00007ffc1cea0000 - 0x00007ffc1ceef000     C:\WINDOWS\AppPatch\AppPatch64\AcGenral.DLL
0x00007ffc35280000 - 0x00007ffc35327000     C:\WINDOWS\system32\msvcrt.dll
0x00007ffc34a70000 - 0x00007ffc34a9b000     C:\WINDOWS\SYSTEM32\SspiCli.dll
0x00007ffc376c0000 - 0x00007ffc37711000     C:\WINDOWS\system32\SHLWAPI.dll
0x00007ffc37540000 - 0x00007ffc376b1000     C:\WINDOWS\system32\USER32.dll
0x00007ffc35a90000 - 0x00007ffc35c08000     C:\WINDOWS\system32\ole32.dll
0x00007ffc35e10000 - 0x00007ffc37227000     C:\WINDOWS\system32\SHELL32.dll
0x00007ffc342b0000 - 0x00007ffc342ce000     C:\WINDOWS\SYSTEM32\USERENV.dll
0x00007ffc351b0000 - 0x00007ffc35255000     C:\WINDOWS\system32\ADVAPI32.dll
0x00007ffc2f320000 - 0x00007ffc2f33b000     C:\WINDOWS\SYSTEM32\MPR.dll
0x00007ffc35760000 - 0x00007ffc35896000     C:\WINDOWS\system32\RPCRT4.dll
0x00007ffc35db0000 - 0x00007ffc35e07000     C:\WINDOWS\SYSTEM32\sechost.dll
0x00007ffc35520000 - 0x00007ffc356f6000     C:\WINDOWS\SYSTEM32\combase.dll
0x00007ffc37370000 - 0x00007ffc374b5000     C:\WINDOWS\system32\GDI32.dll
0x00007ffc34ca0000 - 0x00007ffc34cb4000     C:\WINDOWS\SYSTEM32\profapi.dll
0x00007ffc33140000 - 0x00007ffc331df000     C:\WINDOWS\SYSTEM32\SHCORE.dll
0x00007ffc378e0000 - 0x00007ffc37914000     C:\WINDOWS\system32\IMM32.DLL
0x00007ffc35950000 - 0x00007ffc35a89000     C:\WINDOWS\system32\MSCTF.dll
0x00007ffc32350000 - 0x00007ffc325aa000     C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.17031_none_6242a4b3ecbb55a1\COMCTL32.dll
0x0000000060a90000 - 0x0000000060b62000     C:\Program Files\Java\jdk1.8.0_131\jre\bin\msvcr100.dll
0x00000000601f0000 - 0x0000000060a8c000     C:\Program Files\Java\jdk1.8.0_131\jre\bin\server\jvm.dll
0x00007ffc32070000 - 0x00007ffc32079000     C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x00007ffc22da0000 - 0x00007ffc22dbf000     C:\WINDOWS\SYSTEM32\WINMM.dll
0x00007ffc2e7c0000 - 0x00007ffc2e7ca000     C:\WINDOWS\SYSTEM32\VERSION.dll
0x00007ffc374d0000 - 0x00007ffc374d7000     C:\WINDOWS\system32\PSAPI.DLL
0x00007ffc35700000 - 0x00007ffc35758000     C:\WINDOWS\system32\WS2_32.dll
0x00007ffc22d70000 - 0x00007ffc22d9a000     C:\WINDOWS\SYSTEM32\WINMMBASE.dll
0x00007ffc35330000 - 0x00007ffc35339000     C:\WINDOWS\system32\NSI.dll
0x00007ffc34d70000 - 0x00007ffc34dba000     C:\WINDOWS\SYSTEM32\cfgmgr32.dll
0x00007ffc33b30000 - 0x00007ffc33b56000     C:\WINDOWS\SYSTEM32\DEVOBJ.dll
0x00000000601e0000 - 0x00000000601ef000     C:\Program Files\Java\jdk1.8.0_131\jre\bin\verify.dll
0x00000000601b0000 - 0x00000000601d9000     C:\Program Files\Java\jdk1.8.0_131\jre\bin\java.dll
0x0000000060190000 - 0x00000000601a6000     C:\Program Files\Java\jdk1.8.0_131\jre\bin\zip.dll
0x00000004344a0000 - 0x00000004344b8000     C:\Program Files\Java\jdk1.8.0_131\bin\javatoc.dll
0x0000000180040000 - 0x0000000180610000     C:\cygwin64\bin\cygwin1.dll
0x00007ffc0b5a0000 - 0x00007ffc0b728000     C:\WINDOWS\SYSTEM32\dbghelp.dll

VM Arguments:
java_command: javatoc
java_class_path (initial): .
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131\bin;
PATH=C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files\nodejs\;C:\Program Files\Java\jre7\bin;C:\swigwin-3.0.12;C:\Program Files\Java\jdk1.8.0_131\bin;;C:\Program Files\Java\jdk1.8.0_131\lib;C:\Program Files\Java\jdk1.8.0_131\include\win32;C:\Program Files\Java\jdk1.8.0_131\include;;C:\Python27;;C:\Program Files\Java\jdk1.8.0_131\bin;C:\cygwin64\bin;C:\Users\User\AppData\Roaming\npm;C:\Users\User\AppData\Local\atom\bin
USERNAME=User
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel



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

OS: Windows 8.1 , 64 bit Build 9600 (6.3.9600.17056)

CPU:total 4 (initial active 4) (4 cores per cpu, 1 threads per core) family 6 model 58 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, aes, clmul, erms, tsc, tscinvbit, tscinv

Memory: 4k page, physical 8279416k(5777792k free), swap 9655672k(6364908k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (25.131-b11) for windows-amd64 JRE (1.8.0_131-b11), built on Mar 15 2017 01:23:53 by "java_re" with MS VC++ 10.0 (VS2010)

time: Sat May 20 16:25:17 2017
elapsed time: 0 seconds (0d 0h 0m 0s)

我正在使用CYGWIN 64位版本,但无法获得确切的错误. 以下是javatoc.java文件代码

I'm using CYGWIN 64 bit version, but unable to get what the exact error is. Following is the javatoc.java file code

import java.io.*;
public class javatoc
{
    public native void print();

    static{
        System.loadLibrary("javatoc");
    }

    public static void main(String args[])
    {
        new javatoc().print();
    }
}

这是javatoc.c的文件代码

Here is the javatoc.c file code

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

JNIEXPORT void JNICALL Java_javatoc_print
  (JNIEnv *evn, jobject obj)
  {
    printf("Hello World");
  }

用于执行的命令:

javac javatoc.java

javah -jni javatoc

gcc -I"C:/Program Files/Java/jdk1.8.0_131/include" -I"C:/Program Files/Java/jdk1.8.0_131/include/win32" -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -shared javatoc.c -o javatoc.dll

任何人都可以帮我解决这个问题,让我知道此错误的原因.

Can anyone please help me out with this and let me know what this error is about.

推荐答案

我无法让JNI与Cygwin的g++一起使用-导致对cygwin1.dll的依赖,这与JNI机制冲突,导致碰撞.但是使用/bin/x86_64-w64-mingw32-g++.exe可以解决我的问题.

I couldn't get JNI to work with Cygwin's g++ -- that induces a dependency on cygwin1.dll, which clashes with the JNI mechanism, causing a crash. But using /bin/x86_64-w64-mingw32-g++.exe fixed the problem for me.

这篇关于Cygwin编译错误问题帧:#C [cygwin1.dll + 0xd6d47]使用JNI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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