我在调试JNI应用程序时遇到问题。我读过StackOverflow中的几个线程,如this one,this one或this one。我也尝试在独立的shell中启动gdb,并将其附加到正在运行的java进程。在这两种情况下,问题都是一样的:GDB找不到要调试的源代码。事情试图将GDB附加到Eclipse以调试JNI C++代码
- 添加“目录”行gdbinit,指向C++源代码文件夹
- 添加C++源代码文件夹复制到Eclipse中的GDB debbuging配置,在“资源”选项卡。
- 添加设置环境LD_LIBRARY_PATH =/path/to/library.so,正在library.so从C++源文件构建的库文件
- 将ddd附加到java进程,但随后出现错误,因为pthread_join.c是没有在工作目录中找到。我的硬盘中没有这个文件。我不知道这是怎么回事。
没有工作。我已经花了好几天的时间了。我知道我的错误是在JNI包装器调用的C++代码中,但我无法调试它。任何提示?如果有帮助,我在Mac OS上的Parallels VM下运行Debian 7中的Eclipse Juno。
非常感谢,
是的,我编译它的方式。实际上,我可以使用GDB/DDD调试C++库,直接调用我想测试的方法。从JNI包装器调用该库时出现问题。 – jorgeas80