在一些需要和操作系统打交道的Java应用里,常常出现使用JNI的情况,这个时候,很可能需要调试JNI及其调用的so。
假设JNI的文件名是 jnifun.so,这个JNI又依赖于动态库libfun.so
调试的过程如下:
- 让调用JNI的Java程序跑起来,使用ps aux | grep 命令获得该Java(JVM)进程,假设为JavaPID
- 使用下面的命令使gdb连接到该Java进程 gdb -p JavaPID
- 键盘输入’s’,进入调试
在一些需要和操作系统打交道的Java应用里,常常出现使用JNI的情况,这个时候,很可能需要调试JNI及其调用的so。
假设JNI的文件名是 jnifun.so,这个JNI又依赖于动态库libfun.so
调试的过程如下: