【发布时间】:2012-02-22 00:27:24
【问题描述】:
我有平面 C 代码,在 AIX 上构建后会提供 .so 文件,而这个 .so 文件是从 Java 调用的,那么我该如何调试 .so 文件?
干杯 巴拉
【问题讨论】:
我有平面 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 to debug JNI with Tomcat中的一些信息。
【讨论】: