java jni调试_JNI C++调试技术?
发布日期:2021-06-24 12:43:39 浏览次数:2 分类:技术文章

本文共 1085 字,大约阅读时间需要 3 分钟。

我有一个Linux C++应用程序,它创建一个JVM并使JNI调用。我刚接触JNI,到目前为止,我发现在开发过程中调试应用程序的唯一有效方法是通过尝试和错误。有什么技术可以用来调试臭名昭著的“致命错误被Java运行时环境检测到”Java虚拟机崩溃?我如何知道问题是我的代码还是真正的JVM bug?

总的来说,到目前为止我所知道的最明显的事情是:

在代码中,在继续之前,始终检查JNI调用返回的jobject、class和jmethodid值是否为空值。

在适当的地方调用env->exceptioncheck(),以确保没有挂起的异常。

目前,我遇到了一个问题,错误报告文件中的堆栈跟踪没有帮助:

# A fatal error has been detected by the Java Runtime Environment:

#

# SIGSEGV (0xb) at pc=0x00002b137a99db59, pid=19977, tid=47362673452544

#

# JRE version: 6.0_20-b02

# Java VM: Java HotSpot(TM) 64-Bit Server VM (16.3-b01 mixed mode linux-amd64 )

# Problematic frame:

# V [libjvm.so+0x40fb59]

... ...

Stack: [0x00007fff1964f000,0x00007fff1974f000], sp=0x00007fff1974e050, free space=3fc0000000000000018k

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)

V [libjvm.so+0x40fb59]

V [libjvm.so+0x3ecbe1]

C [libDataFabric.so+0x1bb5b] _Jv_JNIEnv::CallObjectMethod(__jobject*, _jmethodID*, ...)+0xe3

etc. ...

好的,所以我知道它在env->callObjectMethod()中快要死了。在深入到JVM代码之前,我检查了gdb中的所有参数,但没有看到任何明显的空值或奇怪的值。当然,所有的JNI类,比如Jobject,都是不透明的,所以我看不出它们的指针指向的是伪造的还是真实的数据。

对于这类问题有什么建议吗?

转载地址:https://blog.csdn.net/weixin_32820131/article/details/114725458 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java yy_java - yyyyyccccc - 博客园
下一篇:java重写hashcode方法_JAVA中重写equals()方法的同时要重写hashcode()方法

发表评论

最新留言

不错!
[***.144.177.141]2024年04月06日 21时27分42秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

【leetcode之旅】 数组 - 485.最大连续1的个数 2019-04-28
【leetcode之旅】 数组 - 561.数组拆分I 2019-04-28
Android面试必问!我的移动开发春季历程,大厂内部资料 2019-04-28
Android面试送分题:来看看移动端小程序技术的前世今生!附赠课程+题库 2019-04-28
Android面试题整理,46道面试题带你了解中高级Android面试,顺利通过阿里Android岗面试 2019-04-28
上海大厂Android面试经历:Android多线程实现方式及并发与同步,年薪超过80万! 2019-04-28
从入门到精通!已成功拿下字节、腾讯、脉脉offer,看看这篇文章吧! 2019-04-28
金九银十Android热点知识!如何快速的开发一个完整的直播app,内含福利 2019-04-28
金九银十Android热点知识!字节跳动移动架构师学习笔记,面试真题解析 2019-04-28
阿里P7亲自教你!34岁安卓开发大叔感慨,Android面试题及解析 2019-04-28
阿里P7大佬手把手教你!系统盘点Android开发者必须掌握的知识点,系列篇 2019-04-28
阿里P7大牛手把手教你!十多家大厂Android面试真题锦集干货整理,聪明人已经收藏了! 2019-04-28
阿里P7大牛整理!腾讯+字节+阿里面经真题汇总,书籍+视频+学习笔记+技能提升资源库 2019-04-28
android面试准备中高级简书!致Android高级工程师的一封信,内含福利 2019-04-29
Android面试回忆录:2个月面试腾讯、B站、网易等11家公司的面经总结!3面直接拿到offer 2019-04-29
Android面试回忆录:在字节跳动我是如何当面试官的,面试心得体会 2019-04-29
Android面试总结,GitHub标星9K的Google官方MVP+Rxjava项目详解,算法太TM重要了 2019-04-29
android面试题!看懂这份Android面经大厂真不是问题!不吃透都对不起自己 2019-04-29
Android高级工程师面试实战,GitHub上标星13k的《Android面试突击版》,面试真题解析 2019-04-29
apk开发学习!Android开发者面试如何系统复习?已拿offer入职 2019-04-29