Search code examples
javalinuxgdbjava-native-interfaceshared-libraries

How to Debug Java -JNI using GDB on linux ?


Can anyone guide on how to debug a JNI code on Linux using GDB debugger(if possible please suggest other options).

    -My JNI project when running on Linux is leading to a JVM crash.
    -The CPP code has been compiled into .so files.
    -I run the project like  this : *java xyz.jar -commandline_args_to_project*.

I have the Gdb installed but am not getting how we can debug the project using it. Also do I necessarily need to compile the .cpp files with -g option t debug .so files?


Solution

    1. Start your java application
    2. Look up the pid using top, ps, ...
    3. Start gdb with this pid
    4. Attach your program code
    5. Debug as usual using gdb

    This blog post explains the whole thing.