J'ai des problèmes pour déboguer une application JNI. J'ai lu plusieurs fils de discussion dans StackOverflow, par exemple celui-ci , celui-ci o celui-ci . J'ai également essayé de lancer gdb dans un shell séparé et de l'attacher au processus java en cours. Dans les deux cas, le problème est le même : GDB ne trouve pas les sources à déboguer. Ce que j'ai essayé
- Ajouter la ligne "dir" à gdbinit, pointant vers le dossier des sources C++.
- Ajout du dossier des sources C++ à la configuration du débogage GDB dans Eclipse, dans l'onglet "Sources".
- Ajout de l'environnement set LD_LIBRARY_PATH=/path/to/library.so, étant library.so le fichier de bibliothèque construit à partir des fichiers sources C++.
- J'attache ddd au processus java, mais j'obtiens alors une erreur parce que pthread_join.c n'est pas trouvé dans le répertoire de travail. Je n'ai pas ce fichier sur mon disque dur. Je ne sais pas de quoi il s'agit.
Rien n'a fonctionné. J'ai passé plusieurs jours sur ce sujet. Je sais que mon problème se situe dans le code C++ appelé par le wrapper JNI, mais je n'arrive pas à le déboguer. Des pistes ? Si cela peut vous aider, j'utilise Eclipse Juno dans Debian 7 sous une VM Parallels sur Mac OS.
Merci d'avance,