使用gdbserver从clion调试jni库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用gdbserver从clion调试jni库相关的知识,希望对你有一定的参考价值。

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

我的设置:

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

gdbserver

它成功连接到该过程。

在本地计算机上,我在CLION中创建远程调试配置,指定目标远程agrs:

gdbserver --attach localhost:7777 pid

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

关闭异常断点没有帮助。

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

答案

JVM确实在引擎盖下使用了很多信号。为了有效地调试它,您可能希望使用SIGSEGV GDB命令忽略这些信号。将其输入CLion中的GDB控制台:

handle

这是一个很好的(gdb) handle SIGSEGV nostop noprint pass 到一个非常接近的问题。

以上是关于使用gdbserver从clion调试jni库的主要内容,如果未能解决你的问题,请参考以下文章

CLion:通过添加源文件启用外部库的调试

clion编译jni,找不到jni.h的解决办法

混合编程jni之第三篇 c++ 项目的创建,clion ,一些问题点

混合编程jni之第三篇 c++ 项目的创建,clion ,一些问题点

GDBSERVER 在启动时退出

使用 CLion 调试节点插件