如何在aix上调试java调用的.so
我有平面C代码,构建后在AIX上给出.so文件,并且这个.so文件是从Java调用的,那么我如何调试.so文件?
干杯 巴拉
I have plane C code which after built gives .so file on AIX, and this .so file is invokes from Java, so how can I debug .so file?
cheers
Bala
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查您的 .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。
Check that your .so is built with debug symbols. If using gcc or g++, that is done using the -g option. Then you can attach gdb to the JVM process by process number because the .so will run there. You could do that using your appropriate equivalent to "PROCESS=`ps | grep java | cut -d' ' -f1`; gdb -p $PROCESS". Add your source directory for debugging by using the gdb command "dir $SOURCEDIR" substituting the path to your source directory for $SOURCEDIR. Finally, set a breakpoint at your desired line of the source code for the .so.
I referred to some information from a blog entry Linux - GDB to debug JNI with Tomcat.