SIGSEGV во время проверки Firebug Lite в WebView

В настоящее время я пытаюсь создать приложение JavaFX WebView, которое отображает карту Leaflet. Я также добавил новый слой для API FreeDraw. При инициализации карты я вызываю функцию JavaScript через:

callVoid("initializeMap");

CallVoid и помощники:

public void callVoid(String functionName, Object... args) {
    if(!functionExists(functionName)) {
        throw new NoSuchMethodError(functionName);
    }

    getWindow().call(functionName, args);
}

protected JSObject getWindow() {
    if(window == null) {
        window = (JSObject) getWebEngine().executeScript("window");
    }

    return window;
}

Теперь, когда приложение запускается, я могу переключать консоль Firebug Lite с помощью Shift + Enter, который выглядит следующим образом:

Как видите, я вошел в map Переменная в консоли, и он показывает объект карты из JavaScript. Тем не менее, когда я хочу осмотреть window объект в JavaScript, программа завершается со следующим сообщением о сбое в Eclipse:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fc8aecbb250, pid=1870, tid=0x00007fc8bd2e9700
#
# JRE version: OpenJDK Runtime Environment (8.0_151-b12) (build 1.8.0_151-8u151-b12-1~deb9u1-b12)
# Java VM: OpenJDK 64-Bit Server VM (25.151-b12 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libjfxwebkit.so+0x11b6250]
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/croemheld/Repositories/croemheld/hs_err_pid1870.log
Compiled method (c1)   86590  905       1       java.lang.reflect.Method::getModifiers (5 bytes)
 total in heap  [0x00007fc92d362f10,0x00007fc92d3631a8] = 664
 relocation     [0x00007fc92d363038,0x00007fc92d363060] = 40
 main code      [0x00007fc92d363060,0x00007fc92d3630e0] = 128
 stub code      [0x00007fc92d3630e0,0x00007fc92d363170] = 144
 metadata       [0x00007fc92d363170,0x00007fc92d363178] = 8
 scopes data    [0x00007fc92d363178,0x00007fc92d363180] = 8
 scopes pcs     [0x00007fc92d363180,0x00007fc92d3631a0] = 32
 dependencies   [0x00007fc92d3631a0,0x00007fc92d3631a8] = 8
#
# 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.
#

Я посмотрел на stackru, но получается команда ulimit -c -l на моей машине возвращается:

core file size          (blocks, -c) unlimited
max locked memory       (kbytes, -l) 64

Так что я довольно запутался, как SIGSEGV происходит только при попытке отладки переменных или объектов через window объект в JavaScript. Смысл, даже когда я установил член в обычай BrowserEngine, что только должно помочь при вызове методов Java из JavaScript, следующим образом:

getWindow().setMember("browserEngine", this);

Я не могу получить доступ к browserEngine объект через window.browserEngine или просто browserEngineпотому что как несуществующие объекты или переменные, так и объекты или переменные, доступ к которым осуществляется через объект окна, введенный в консоли, приводят к приведенному выше SIGSEGV ошибка.

Как это исправить?

Я использую версию Firebug Lite 1.2 для отладки в WebView приложение.

0 ответов

Другие вопросы по тегам