8

ここでは、Java JNI を使用して C ライブラリ内の関数を呼び出すシステムがあります。すべてが Solaris 上で実行されます。

文字列エンコーディングのどこかに問題があります。C で記述された関数ではアラビア文字が返されますが、JNI メソッドは別のエンコーディングの文字列を受け取ります。私はすでに $NLS_LANG を設定し、同じ方法でエンコードするための vm パラメータを設定しようとしましたが、何も機能しませんでした。そのため、C コードと Java JNI を一緒にデバッグできる必要があります。

それをデバッグする最良の方法は何ですか?

4

3 に答える 3

3

dbx デバッガー (Sun Studio の一部) を JVM プロセスに接続して、Java コードとネイティブ コードの間をシングル ステップで移動できます。この機能は、すべて dbx の一部ですが、コード名は「jdbx」でした。あまり宣伝されていないため、バグがある可能性があります。IDE に 2 つのデバッグ エンジンがあり、両方とも Java を処理する場合に問題がありましたが、コマンド ライン dbx を使用すると、これらの問題を回避できます。

もちろん、Java と C のコードを混在させることができるソース レベルのデバッグを必ずしも使用せずに、特定の問題をデバッグする従来の方法はおそらくたくさんあります。

于 2009-05-26T15:13:00.397 に答える
2

最新の Android プラグインを使用した Eclipse Juno リリースは、デバッグをサポートしています。

Eclipse を使用して JNI コードをデバッグする方法 (Java & C/C++)

于 2012-07-24T17:47:50.187 に答える