使用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库的主要内容,如果未能解决你的问题,请参考以下文章
混合编程jni之第三篇 c++ 项目的创建,clion ,一些问题点