2

OS XLionのコマンドラインからOpenJDK7を使用jdbして、JNIネイティブコードが原因で32ビットJVMでの実行が必要なアプリケーションをデバッグするにはどうすればよいですか?

javaasを呼び出すjava -d32ことができ、32ビットJVMを使用することはわかっています。-d32エラーなしでそのフラグを渡すこともできjdbますが、効果がないようです。アプリケーションがネイティブコードをリンクしようとすると、同じエラーメッセージが表示されます。合格-J-d32は同じ動作を示します。

4

1 に答える 1

1

上記は、2つの異なるターミナルウィンドウから別々のプロセスとしてjava開始することで実現できます。jdbしたがって、これらのコマンドをそれぞれ独自のウィンドウで実行します。

java -d32 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=127.0.0.1:5463 -classpath . MainClass
jdb -attach 127.0.0.1:5463

1つ目は、アプリケーションのJVMを起動しますが、作成後すぐに一時停止します。2つ目は、デバッガーを起動し、作成したばかりのJVmにアタッチします。次にrun、その2番目のウィンドウに入力して、アプリケーションを起動できます。追加のボーナスとして、アプリケーションとデバッガーからの出力は、それぞれに独自のウィンドウがあるため、混合されません。

参考資料:jdbヘルプには可能なコマンドライン引数がリストされており、 JPDAにはトランスポートに関するセクションがあります。

上記は私にとってはうまくいきますが、より簡単な解決策を提供する他の回答を歓迎します。できれば単一のコマンドとして、および/または任意の方法でポート番号を選択する必要はありません。共有メモリコネクタがJVMで機能しないようです。

于 2012-10-11T16:32:51.117 に答える