使用 gdbserver 从 clion 调试 jni 库

Debug jni library from clion using gdbserver

我想知道是否可以从 CLION 调试 jni 库

我的设置:

我的远程服务器带有 运行ning java 内部调用本机库的应用程序。 在服务器上,我启动了 gdbserver 实例附加到现有进程:

gdbserver --attach localhost:7777 pid

它成功连接到进程。

在本地机器上,我在 CLION 中创建远程调试配置,指定 目标远程农业:

tcp:host:7777

我还指定了符号文件和 sysroot。 因此,当我 运行 此配置成功连接到远程服务器时,但由于 SIGPIPESIGSEGV 信号,我不断地暂停程序,所以我永远不会到达真正的断点。 (我相信这些是 jvm 内部的信号)。

关闭异常断点没有帮助。

有没有办法调试这样的设置?

JVM 确实在后台大量使用信号。为了有效地调试它,您可能需要使用 handle GDB 命令忽略这些信号。在CLion的GDB控制台中输入:

(gdb) handle SIGSEGV nostop noprint pass

这是一个很好的 answer 非常接近的问题。