我有平面 C 代码,在 AIX 上构建后会提供 .so 文件,而这个 .so 文件是从 Java 调用的,那么我该如何调试 .so 文件?
欢呼巴拉
检查您的 .so 是否使用调试符号构建。如果使用 gcc 或 g++,则使用 -g 选项完成。然后您可以通过进程号将 gdb 附加到 JVM 进程,因为 .so 将在那里运行。您可以使用适当的等效于“PROCESS=`ps | grep java | cut -d' ' -f1`; gdb -p $PROCESS”来做到这一点。使用 gdb 命令“dir $SOURCEDIR”添加源目录以进行调试,将源目录的路径替换为 $SOURCEDIR。最后,在您想要的 .so 源代码行设置断点。
我参考了一篇博客文章Linux-GDB 中的一些信息来使用 Tomcat 调试 JNI。