Wie debugge ich die JNI / C-Bibliothek?

8

Wir haben hier ein System, das Java JNI verwendet, um eine Funktion in einer C-Bibliothek aufzurufen. Alles läuft auf Solaris.

Ich habe irgendwo ein Problem mit der String-Codierung. Ein arabisches Zeichen wird von der in C geschriebenen Funktion zurückgegeben, aber die JNI-Methoden erhalten eine Zeichenfolge mit einer anderen Codierung. Ich habe bereits versucht, $ NLS_LANG und den vm-Parameter für die Codierung auf die gleiche Weise zu setzen, aber nichts hat funktioniert. Also muss ich in der Lage sein, den C-Code und das Java JNI zusammen zu debuggen.

Was ist der beste Weg, um es zu debuggen?

    
hooray 26.05.2009, 14:35
quelle

3 Antworten

3

Der dbx-Debugger (Bestandteil von Sun Studio) kann an einen JVM-Prozess angehängt werden und Sie können zwischen Java-Code und nativem Code wählen. Die Funktionalität ging unter dem Codenamen "jdbx", obwohl es alles Teil von dbx ist. Es wurde nicht stark beworben, also könnte es Bugs haben. Es gab Probleme, wenn die IDE zwei Debug-Engines hatte, die beide Java handhabt, aber die Verwendung der Befehlszeile dbx vermeidet diese Probleme.

Natürlich gibt es wahrscheinlich eine Menge konventionellerer Methoden, um Ihr spezifisches Problem zu debuggen, ohne unbedingt Debugging auf Source-Ebene zu verwenden, das den Java- und C-Code mischen kann.

    
Chris Quenelle 26.05.2009, 15:13
quelle
2

Eclipse Juno Release mit den neuesten Android Plugins unterstützt das Debugging.

Verwendung von Eclipse zum Debuggen von JNI-Code ( Java & amp; C / C ++)

    
R Schultz 24.07.2012 17:47
quelle
0

Das ADT Bundle unterstützt dies jetzt direkt. Jeder Code, der Ihnen sagt, etwas anderes zu tun als auf Debug As- & gt; Android Native Application ist seit dem 12.05.2013 veraltet und verursacht Kopfschmerzen, wenn Sie nicht ein älteres Entwicklungssystem verwenden. Laden Sie in diesem Fall das neueste ADT-Bundle herunter, und installieren Sie es, da dies eine Menge Ärger erspart.

    
R Schultz 12.05.2013 07:53
quelle

Tags und Links