我在调试 JNI 应用程序时遇到问题。我已经阅读了 StackOverflow 中的几个线程,例如this one、this one或this one。我还尝试在单独的 shell 中启动 gdb 并将其附加到正在运行的 java 进程。在这两种情况下,问题都是一样的:GDB 找不到要调试的源。尝试过的事情
- 将“dir”行添加到 gdbinit,指向 C++ 源文件夹
- 在 Eclipse 的“Sources”选项卡中,将 C++ 源文件夹添加到 GDB 调试配置中。
- 添加set environment 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。
提前谢谢了,