使用GDBSERVER的Clion debug jni库

Debug jni library from clion using gdbserver

本文关键字:jni debug Clion GDBSERVER 使用      更新时间:2023-10-16

我想知道是否可以从clion

调试jni库

我的设置:

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

gdbserver --attach localhost:7777 pid

它成功连接到该过程。

在本地计算机上我在Clion中创建远程调试配置目标远程AGR:

tcp:host:7777

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

关闭异常断点无济于事。

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

JVM确实在引擎盖下经常使用信号。为了有效调试,您可能需要使用handle GDB命令忽略这些信号。在Clion中输入GDB控制台:

(gdb) handle SIGSEGV nostop noprint pass

这是一个非常紧密的问题的好答案。