jfx: build-jar работает нормально jfx: native некоторые функции не работают, как отлаживать exe? - PullRequest
0 голосов
/ 10 июля 2019

Я создаю приложение с javafx на основе: zulu8.38.0.13-ca-fx-jdk8.0.212-win_x64

Когда я собираю jfx: нативный и запускаю программу из exe-файла, некоторые функции не работают и происходит сбой приложения.

Когда я просто запускаю его с помощью jar и команды pompt, все в порядке.

Как я могу отладить исполняемый файл для обнаружения ошибки?

Я нашел файл журнала в папке времени выполнения:

Текущий поток (0x000001881a27d800): JavaThread "Thread-16" [_thread_in_native, id = 5508, стек (0x0000004a95900000,0x0000004a95a00000)]

siginfo: ExceptionCode = 0xc0000005, адрес чтения 0x0000000019d6c1a8

Регистры: RAX = 0x0000000019d6c1a8, RBX = 0x0000004a959feeb0, RCX = 0x00007ffb7f5fab84, RDX = 0x0000000000000000 RSP = 0x0000004a959fee40, RBP = 0x0000004a959fefc0, RSI = 0x000001881a27da50, RDI = 0x00000000000008dc R8 = 0x0000004a959fed38, R9 = 0x0000004a959fee30, R10 = 0x0000000000000000, R11 = 0x0000000000000246 R12 = 0x0000004a959ff070, R13 = 0x000001881a614090, R14 = 0x0000004a959fef70, R15 = 0x000001881a27d800 RIP = 0x000000007110b5db, EFLAGS = 0x0000000000010202

Верх стека: (sp = 0x0000004a959fee40) 0x0000004a959fee40:
0000004a959fee68 0000000000000000 0x0000004a959fee50:
000000007110b230 0000004a959fef70 0x0000004a959fee60:
000001881a614090 0000000000000004 0x0000004a959fee70:
000001881a27da50 00000000000008dc 0x0000004a959fee80:
0000004a959fefc0 0000000071112590 0x0000004a959fee90:
000001881a27d800 0000004a959fef70 0x0000004a959feea0:
000001881a614090 000001881a27da50 0x0000004a959feeb0:
0000004a959ff070 00000000000008dc 0x0000004a959feec0:
0000004a959fefc0 0000000063358d94 0x0000004a959feed0:
000001881a614090 0000000000000000 0x0000004a959feee0:
0000000071113500 0000000071113be8 0x0000004a959feef0:
0000004a959fef20 0000000071112641 0x0000004a959fef00:
0000004a959fee90 0000000040000000 0x0000004a959fef10:
0000000000000000 0000000000000000 0x0000004a959fef20:
0000004a959fefc0 0000000071101595 0x0000004a959fef30:
000000000000001c 000001881a27da50

Инструкции: (pc = 0x000000007110b5db) 0x000000007110b5bb: c5 0f 1f 40 00 55 57 56 53 48 83 ec 28 48 8b 05 0x000000007110b5cb: 39 33 01 00 48 89 cb 48 85 c0 0f 84 c5 00 00 00 0x000000007110b5db: 8b 38 85 ff 0f 88 ab 00 00 00 48 8b 05 1c 33 01 0x000000007110b5eb: 00 48 85 c0 0f 84 bc 00 00 00 8b 30 85 f6 74 57

Регистрация в отображении памяти:

RAX = 0x0000000019d6c1a8 - неизвестное значение. RBX = 0x0000004a959feeb0 - указывая на стек для потока: 0x000001881a27d800 RCX = 0x00007ffb7f5fab84 является неизвестным значением RDX = 0x0000000000000000 является неизвестное значение RSP = 0x0000004a959fee40 указывает в стек для нить: 0x000001881a27d800 RBP = 0x0000004a959fefc0 указывает на стек для потока: 0x000001881a27d800 RSI = 0x000001881a27da50 является неизвестное значение RDI = 0x00000000000008dc является неизвестным значением R8 = 0x0000004a959fed38 указывает в стек для потока: 0x000001881a27d800 R9 = 0x0000004a959fee30 указывает в стек для потока: 0x000001881a27d800 R10 = 0x0000000000000000 - неизвестно значение R11 = 0x0000000000000246 является неизвестным значением R12 = 0x0000004a959ff070 указывает на стек для потока: 0x000001881a27d800 R13 = 0x000001881a614090 - неизвестное значение R14 = 0x0000004a959fef70 указывает в стек для потока: 0x000001881a27d800 R15 = 0x000001881a27d800 - это поток

Стек: [0x0000004a95900000,0x0000004a95a00000], sp = 0x0000004a959fee40, свободное пространство = 1019k Собственные кадры: (J = скомпилировано Код Java, j = интерпретированный, Vv = код VM, C = собственный код) C 0x000000007110b5db C 0x0000000071112590 C 0x0000000071101595 C 0x00000188023a9c6e

Java-фреймы: (J = скомпилированный Java-код, j = интерпретированный, Vv = VM-код) j jssc.SerialNativeInterface.openPort (Ljava / lang / String; Z) J + 0 jjssc.SerialPort.openPort () Z + 65 j scheduling.services.communication.Communication $ 2.call () Lscheduling / Услуги / Связь / Связь $ ConnectionState; +98 J scheduling.services.communication.Communication $ 2.call () Ljava / языки / объекта; +1 j javafx.concurrent.Task $ TaskCallable.call () Ljava / lang / Object; +26 j java.util.concurrent.FutureTask.run () V + 42 j java.lang.Thread.run () V + 11 v ~ StubRoutines :: call_stub

1 Ответ

0 голосов
/ 10 июля 2019

попробуйте запустить ваше приложение из командной строки, оно покажет такие ошибки, как jar

...