Присоединение отладчика к JVM, созданному JNI_CreateJavaVM

Это на Ubuntu 12.04/Java 7, 64bit

Работаю над проектом по созданию Java-привязок для WebkitGtk Version 2. Мой основной интерес в WebkitGTK — это доступ к DOM и манипулирование им, а не просто отображение веб-страниц. Для V2 команда WebkitGtk изменила архитектуру, которая позволяет доступ к DOM через расширения. Расширения загружаются WebKitWebProcess, который является отдельным процессом, запускаемым при запуске webkit.

У меня большая часть под контролем. Мое расширение загружается, и JVM запускается, а мои классы Java загружаются и в основном работают так, как ожидалось. Прямо сейчас мой метод отладки в основном состоит из операторов println и/или операторов журнала.

Интересно, могу ли я подключить отладчик Java, чтобы мне было легче отлаживать код Java. Если я запускаю команду jps, отображается PID WebKitWebProcess. Так что кто-то в курсе, что у этого процесса есть JVM. Предпочтительным отладчиком будет eclipse.

В основном все сводится к тому, как подключить java-отладчик, где виртуальная машина просматривается с помощью JNI_CreateJavaVM, а процесс уже запущен.


person user871199    schedule 08.01.2014    source источник


Ответы (1)


Оказалось очень просто. Когда вы создаете виртуальную машину, просто передайте параметр отладчика следующим образом. Подключите отладчик к порту 9836 и вы в отладчике.

JavaVMOption options[3];
options[0].optionString = <your classpath>;
options[1].optionString = "-Xdebug";
options[2].optionString = "-agentlib:jdwp=transport=dt_socket,server=y,address=9836,suspend=n";  
person user871199    schedule 08.01.2014