2009-05-26 14 views
8

Java JNIを使​​用してCライブラリの関数を呼び出すシステムがここにあります。すべてがSolaris上で動作しています。JNI/Cライブラリのデバッグ方法は?

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

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

答えて

3

dbxデバッガ(Sun Studioの一部)は、JVMプロセスにアタッチすることができ、Javaコードとネイティブコードを1ステップで処理できます。この機能はコード名 "jdbx"になりましたが、dbxのすべての機能です。それは大きく促進されていないので、バグがある可能性があります。 IDEに2つのデバッグエンジンがあり、どちらもJavaを処理していたが、コマンドラインdbxを使用してこれらの問題を回避すると問題が発生しました。

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

2

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

How to Use Eclipse to Debug JNI code (Java & C/C++)

+1

JNIを利用した通常のJavaアプリケーションのデバッグが含まれていますか? –

0

ADTバンドルは今、これを直接サポートしています。デバッグAs-> Androidネイティブアプリケーションをクリックする以外の何かをするよう指示するコードは、2013年5月12日現在では古く、古い開発システムを使用している場合を除き、頭痛を引き起こします。そのような場合は、最新のADTバンドルをダウンロードしてインストールすると、多くのトラブルを回避できます。

関連する問題