JNI - Failed to write core dump. Minidumps are not enabled by default on client versions of Windows

268
10 мая 2017, 07:11

Пишу приложение на Java, использующее dll-библиотеку методов, реализованных на С++ (технология JNI).
Оказалось, что для разной разрядности установленной на машине java нужно собирать dll-библиотеку соответствующей разрядности. Собираю библиотеку из консоли с помощью компилятора VS так:
cl methods.cpp -methods.dll -MD -LD -I "C:\Program Files\Java\jdk1.8.0_101\include" -I "C:\Program Files\Java\jdk1.8.0_101\include\win32" И таким образом, из командной строки VS2012 x64 Native Tools собираю x64 библиотеку; из командной строки VS2012 x86 Native Tools - x32 библиотеку.

У меня стоит java 64-bit и библиотека x64 работает корректно. Запустив приложение на машине х32, при вызове методов из библиотека происходит экстренное закрытие приложения и появляется файл логов.

Помогите, пожалуйста, не пойму, почему собранная х64 dll-библиотека работает как надо, а при вызове х32 dll-библиотеки это происходит.

Файл логов с след содержанием:

A fatal error has been detected by the Java Runtime Environment:

EXCEPTION_STACK_OVERFLOW (0xc00000fd) at pc=0x685f5ff7, pid=6084, tid=5052

JRE version: Java(TM) SE Runtime Environment (8.0_45-b15) (build 1.8.0_45-b15) Java VM: Java HotSpot(TM) Client VM (25.45-b02 mixed mode windows-x86 ) Problematic frame: C [methods32.dll+0x25ff7]

Failed to write core dump. Minidumps are not enabled by default on client ersions 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 (0x1475c000): JavaThread "JavaFX Application Thread" [_thread_in_native, id=5052, stack(0x14f50000,0x14fa0000)]

Register to memory mapping:

EAX=0x14f50000 is an unknown value EBX={method} {0x1a576884} 'normaT' '(Ljava/lang/String;)I' in 'my/frequencyMag/methodsFromC/Methods' ECX=0x14f1d774 is an unknown value EDX=0x00000000 is an unknown value ESP=0x14f9b190 is pointing into the stack for thread: 0x1475c000 EBP=0x14f9b198 is pointing into the stack for thread: 0x1475c000 ESI={method} {0x1a576884} 'normaT' '(Ljava/lang/String;)I' in 'my/frequencyMag/methodsFromC/Methods' EDI=0x1475c000 is a thread

Stack: [0x14f50000,0x14fa0000], sp=0x14f9b190, free space=300k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [methods32.dll+0x25ff7] j my.frequencyMag.methodsFromC.Methods.normaT(Ljava/lang/String;)I+0 j my.frequencyMag.controller.adminController.dialog.AddTextController.addText(Ljava/util/ArrayList;I)V+598 j my.frequencyMag.controller.adminController.dialog.AddTextController.srartStandart(Ljavafx/event/ActionEvent;)V+50 v ~StubRoutines::call_stub V [jvm.dll+0x155cb5] ...

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

Java Threads: ( => current thread ) 0x147ef000 JavaThread "Swing-Shell" daemon [_thread_blocked, id=4652, stack(0x19700000,0x19750000)] 0x147f0400 JavaThread "TimerQueue" daemon [_thread_blocked, id=2804, ...

Other Threads: 0x1426c000 VMThread [stack: 0x03ca0000,0x03cf0000] [id=2180] 0x142ccc00 WatcherThread [stack: 0x146f0000,0x14740000] [id=1016]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Internal exceptions (10 events): Event: 15.130 Thread 0x14aa4000 Exception (0x03eccba0) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u45\3627\hotspot\src\share\vm\prims\jni.cpp, line 709] Event: 17.657 Thread 0x1475c000 Exception (0x03e368f0) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u45\3627\hotspot\src\share\vm\runtime\sharedRuntime.cpp, line 605] ...

Answer 1

Возможно вы не коректно обрабатываете строки, и вроде ругается на NormalT, я не разбираюсь в JNI, поэтому код не могу привести

READ ALSO
Где писать проверку в паттерне PageObject?

Где писать проверку в паттерне PageObject?

Доброго времени сутокВопрос первый: Подскажите пожалуйста где правильно писать проверку на нахождение на нужной странице и нужно ли вообще...

164
Не работает removeView на android

Не работает removeView на android

При вызове removeViev() окно не закрывается на android 50 (возможно на других версиях тоже, не проверял)

304
Border у пустого span

Border у пустого span

Всем привет, подскажите пожалуйста нужно сделать вертикальный разделитель пунктирный без изображений с помощью border-left css, если есть содержимое...

203
Как привязать id к массиву?

Как привязать id к массиву?

ЗдравствуйтеУ меня на странице есть динамическое добавление полей input

272