1

これはUbuntu 12.04 / Java 7、64ビットにあります

WebkitGtk バージョン 2 の Java バインディングを作成するプロジェクトに取り組んでいます。WebkitGTK に対する主な関心は、Web ページを表示するだけではなく、DOM アクセスと操作です。V2 では、WebkitGtk チームは、拡張機能を介して DOM アクセスを許可するアーキテクチャを変更しました。拡張機能は、Webkit の開始時に起動される別のプロセスである WebKitWebProcess によって読み込まれます。

私はそれのほとんどを管理下に置きました。拡張機能がロードされ、JVM が開始され、Java クラスがロードされ、ほとんど期待どおりに動作しています。現在、私のデバッグ手法は基本的に println ステートメントおよび/または log ステートメントです。

Javaコードをより簡単にデバッグできるように、Javaデバッガーを接続できるかどうか疑問に思っています。jps コマンドを実行すると、WebKitWebProcess の PID が表示されます。そのため、誰かがこのプロセスに JVM があることを認識しています。推奨されるデバッガーは eclipse です。

基本的には、VM が JNI_CreateJavaVM を使用して起動され、プロセスが既に実行されている Java デバッガーをアタッチする方法に要約されます。

4

1 に答える 1

3

非常にシンプルであることが判明しました。VM を作成するときは、次のようにデバッガー オプションを渡すだけです。デバッガーをポート 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";  
于 2014-01-08T19:32:35.530 に答える