OpenJDK在OpenHarmony上异常问题分析

2023-05-16

目录

    • 0.前言
    • 1.问题日志打印
    • 2.报错日志代码分析
    • 3.问题解决方案

0.前言

基于OpenHarmony的2022.06.30 master之前版本OpenJDK测试OK,但是之后版本测试报异常错误。

1.问题日志打印

图片.png

2.报错日志代码分析

src/java.base/unix/native/libjli/java_md_common.c

jclass
FindBootStrapClass(JNIEnv *env, const char* classname)
{
   if (findBootClass == NULL) {
       findBootClass = (FindClassFromBootLoader_t *)dlsym(RTLD_DEFAULT,
          "JVM_FindClassFromBootLoader");
       if (findBootClass == NULL) {
           JLI_ReportErrorMessage(DLL_ERROR4,
               "JVM_FindClassFromBootLoader");
           return NULL;
       }
   }
   return findBootClass(env, classname);
}

问题分析:
dlsym(RTLD_DEFAULT, “JVM_FindClassFromBootLoader”); 返回了NULL,导致异常;基于dlsym的RTLD_DEFAULT有问题;OpenHarmony中没有dlsym的RTLD_DEFAULT的使用,但是OpenJDK中有大量的使用;
图片.png

dlsym(RTLD_DEFAULT, name);
也就是说,handle=RTLD_DEFAULT,在网上查了下,这种情况下会发生的事情是,会在当前进程中按照 default library search order搜索name这个symbol,网上的介绍摘录如下:
http://www.qnx.de/developers/docs/6.4.0/neutrino/lib_ref/d/dlsym.html?lang=cn
If handle is a handle returned by dlopen(), you must not have closed that shared object by calling dlclose(). The dlsym() functions also searches for the named symbol in the objects loaded as part of the dependencies for that object.
If handle is RTLD_DEFAULT, dlsym() searches all objects in the current process, in load-order.
In the case of RTLD_DEFAULT, if the objects being searched were loaded with dlopen(), dlsym() searches the object only if the caller is part of the same dependency hierarchy, or if the object was loaded with global search access (using the RTLD_GLOBAL mode).

3.问题解决方案

社区修改了musl的libc的导致,提问题给社区:
https://gitee.com/openharmony/third_party_musl/issues/I5FJ0O
社区在musl中解决方案:
https://gitee.com/openharmony/third_party_musl/pulls/371
图片.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenJDK在OpenHarmony上异常问题分析 的相关文章

  • 李俊刚:我是如何在OpenHarmony完成ap6275s WiFi驱动的HDF适配工作的?

    编者按 xff1a 在 OpenHarmony 生态发展过程中 xff0c 涌现了大批优秀的代码贡献者 xff0c 本专题旨在表彰贡献 分享经验 xff0c 文中内容来自嘉宾访谈 xff0c 不代表 OpenHarmony 工作委员会观点
  • Ubuntu14.04(64bit)下编译openjdk-7-jdk

    http www tuicool com articles bE3umm7 https zhuanlan zhihu com p 23478436 utm source 61 tuicool amp utm medium 61 referr
  • 关于OpenHarmony蜂窝通信框架能力的说明

    蜂窝通信框架能力 xff08 如需提供完整蜂窝通信能力需芯片厂商适配支持HDI接口 xff09 xff1a 支持双卡管理 xff0c 双卡通话 短信 搜网等基础能力接口和框架 支持VoLTE语音通话接口和框架 xff08 需要芯片厂商实现I
  • OpenHarmony Stage模型下的窗口开发

    Stage模型下的窗口开发 作者 坚果 团队 坚果派 公众号 大前端之旅 润开鸿技术专家 华为 HDE InfoQ 签约作者 OpenHarmony 布道师 擅长 HarmonyOS 应用开发 熟悉服务卡片开发 在 战码先锋 活动中作为大队
  • OpenHarmony适配移植:X86、ARM、RISC-V、MIPS、LoongArch芯片架构简析

    前言 基于OpenHarmony的开发相关工作 xff0c 特别适配移植 设备开发这块 xff0c 芯片的基础构架知识 xff0c 是最初的学习起点 本文我们整理了几种常见的芯片构架的基础知识 一 整体分析 序号 架构 特点 运营机构 1
  • 润和HCIP认证套件的烧写问题的终极解决方案

    目录 问题的由来 烧写问题 启动问题 总结 问题的由来 润和HarmonyOS鸿蒙开发板 HiSpark AI Camera开发套件 下图 是OpenHarmony的小型设备和标准设备的代表 基于华为海思Hi3516DV300芯片 支持Li
  • OpenHarmony之docker容器的基本用法

    Docker使用示例 docker移植至OpenHarmony的过程可参考 https blog 51cto com u 14601312 5692202 下面以rk3568 OpenHarmony为例 介绍一下如何进行容器制作 导入及使用
  • 基于GD32F470的mbedtls 3DES算法测试

    3DES加密算法介绍 3DES数据加密算法是一种可逆的对称加密算法 也称三重数据加密算法 3DES块加密算法的设计用来提供一种相对简单的方法 即通过增加DES的密钥长度来避免类似的攻击 而不是设计一种全新的密码算法 目前3DES作为DES的
  • OpenHarmony源码解析(12): hisysevent

    1 概述 HiSysEvent是面向OpenHarmony系统开发者提供的系统打点功能 通过在关键路径埋点来记录系统在运行过程中的重要信息 辅助开发者定位问题 此外还支持开发者将打点数据上传到云进行大数据质量度量 HiSysEvent包括H
  • 在window10 WSL 中编译 OpenJDK13

    简介 最新的OpenJDK13已经发布到git上 可以git pull 然后编译了 这里介绍了直接在windows 10 的WSL环境中进行build并测试 准备 在Open JDK13的网站文档中说 很简单的几步操作就好 下载源码 hg
  • 【OpenHarmony】L1 烧录的启动参数

    OpenHarmony L1 烧录的启动参数 启动参数 linux liteos a uboot位置 linux liteos a和linux共用 启动参数 linux setenv bootargs mem 128M console tt
  • 思维导图在Ubuntu下的安装与使用

    FreeMind是一款跨平台的 基于GPL协议的自由软件 用Java编写 是一个用来绘制思维导图的软件 其产生的文件格式后缀为 mm 可用来做笔记 脑图记录 脑力激汤等 Ubuntu下只需要在终端输入 sudo apt get instal
  • OpenHarmony兼容性平台认证接入

    最近在做OpenHarmony兼容性平台认证接入 在此记录一下整个过程遇到的问题和解决办法 注册账号 进入OpenHarmony兼容是测评主页 https www openharmony cn certification document
  • 学习Java虚拟机的正确的姿势?

    为什么要学习Java虚拟机 多线程和虚拟机 实际工作中 大部分程序员可能几乎不用 但这两项技能是你面试所谓高级工程师的敲门砖 也是你在机会到来的时候能否顶上去的弹药库 很多人 把这两部看的太高深 望而却步 我觉得一个重要原因就是大部分博客和
  • OpenHarmony仓库大整理 可以指定系统类型下载对应代码

    前言 以前下载OpenHarmony代码的时候 我们都是需要下载全量包 代码量非常大 现在已经有30多G了 而我们如果只是想开发轻量系统 例如润和的Hi3861智能家居开发套件的话 实际上使用不到那么多代码的 很多代码都是小型系统 标准系统
  • OpenHarmony 3.1 Beta版本关键特性解析——探秘隐式查询

    以下内容来自开发者分享 不代表 OpenHarmony 项目群工作委员会观点 徐浩 隐式查询是 OpenAtom OpenHarmony 以下简称 OpenHarmony 的一个基础能力 被广泛应用于各种应用中 如视频播放 阅读器播放等 应
  • OpenHarmony 设备启动Logo和启动视频替换指南

    前言 OpenHarmony源码版本 4 0release 开发板 DAYU rk3568 一 Logo替换 替换其中的logo bmp 和 logo kernel bmp文件 注意事项 1 图片的分辨率需要和设备匹配 2 如果是非首次编译
  • OpenHarmony 实现屏幕横竖屏

    前言 OpenHarmony源码版本 4 0release 开发板 DAYU rk3568 一 修改 abilities 中的 orientation 实现横竖屏 当我们应用的Alility继承的是UIAbility时 对应的 module
  • 鸿蒙开发之页面路由(router)

    页面路由 router 页面路由指在应用程序中实现不同页面之间的跳转和数据传递 HarmonyOS提供了Router模块 通过不同的url地址 可以方便地进行页面路由 轻松地访问不同的页面 本文将从 页面跳转 页面返回 和 页面返回前增加一
  • OpenHarmony沙箱文件

    一 前言 1 前景提要 DevEcoStudio版本 DevEco Studio 3 1 Release SDK版本 3 2 2 5 API版本 9 2 概念 在openharmony文件管理模块中 按文件所有者分类分为应用文件和用户文件和

随机推荐

  • lwip/uip移植之一

    最近一直想移植一个tcp ip协议栈到板子上 xff0c 于是想到了lwip和uip lwip是一个比较完整的协议栈 xff0c 功能强大 xff0c 结合ucos系统更是方便完美 xff0c 但是需要几十k的ram xff0c 这点在我f
  • Nvidia Xavier GPIO 输入输出 中断 PWM

    文章目录 前言Jetson GPIO安装可用引脚点亮LEDGPIO输出示例GPIO输入示例GPIO EventGPIO InterruptPWM微信公众号 前言 Nvidia Jetson AGX Xavier 硬件相关 这篇讲到Xavie
  • Jetson Xavier/XavierNX/TX2 CANFD 配置使用

    目录 TX2 Xavier NX Xavier CAN特性TX2 Xavier NX Xavier 载板引出位置CAN收发器NVIDIA CAN DriverXavier CAN 引脚配置Jetson CAN 设置设置开机运行查看连接状态C
  • Altium Designer使用Git构想

    今天看了dtysky的 体三维显示器 PCB部分 LED阵列 用脚本写的上万个LED的自动布局和自动布线 很震惊 很欣赏 很喜欢 或许有很多我们可以想象的空间 这篇主要写Git Git主要管理文本文件 二进制文件却不大合适 尽管有 使用 G
  • 如何拿到阿里offer的?面试流程及面试题

    一个偶然的开始 交待一下 非广告 xff0c 第一次用拉勾 xff0c 感觉做的挺好 xff0c 以前一直用51job 从7月分开始 xff0c 打算找工作 xff0c 一个偶然的机会 xff0c 拉勾上一个蚂蚁金服的同学找到我 xff0c
  • STM32和Linux(转载)

    Linux和stm32 一个是软件平台一个是硬件平台 xff0c 完全不一样的 xff08 记住 xff0c 是平台 xff01 xff09 这样说吧 xff0c 既然你喜欢单片机 xff0c 就先学stm32 xff0c 把硬件基础打牢
  • PX4飞控问题之参数重置问题

    PX4在上电的时候会出现参数重置的问题 xff0c 出现这个问题的机率很小 xff0c 可能上电几千甚至上万次才会出现一次重置的情况 xff0c 但一旦出现了参数重置 xff0c 飞机就无法飞行 xff0c 得重新校准传感器 要解决这个问题
  • STM32硬件基础--LTDC显示图像

    STM32硬件基础 LTDC显示图像 海东青电子 2019 11 13 23 40 05字数 2 635阅读 3 102 海东青电子原创文章 xff0c 转载请注明出处 xff1a https www jianshu com p 21638
  • PX4轨迹生成公式推导

    PX4轨迹生成公式推导下载链接 对于多旋翼 飞行任务的时候 通过地面站画出航点 上传给飞控 飞控通过轨迹生成算法生成平滑的目标位置 速度及加速度 给位置控制模块控制飞机的位置 速度及加速度 PX4轨迹生成的方法为 约束加加速度的S型速度曲线
  • 植保无人机航线规划

    最近折腾了植保无人机航线规划的算法 支持任意多边形 不包括自相交多边形 的边界及障碍区域 其中涉及到了多边形内缩外扩 多边形的分解 多边形交集 并集 差集 深度优先搜索 最短路径算法 耗时两个多月 用C 实现整套算法 生成的库在missio
  • 现代控制工程笔记(一)控制系统的状态空间描述

    文章目录 1 基本概念2 系统的状态空间描述状态空间描述框图状态变量选取的非唯一性 3 由系统微分方程列写状态空间表达式一 微分方程中不包含输入函数的导数项相变量法其他方法 xff1a 二 微分方程中包含输入函数的导数项 4 由传递函数列写
  • 百度Apollo 2.0 车辆控制算法之LQR控制算法解读

    百度Apollo 2 0 车辆控制算法之LQR控制算法解读 Apollo 中横向控制的LQR控制算法在Latcontroller cc 中实现 根据车辆的二自由度动力学模型 1 根据魔术公式在小角度偏角的情况下有 轮胎的侧向力与轮胎的偏离角
  • 多传感器融合--MATLAB跟踪器介绍

    多传感器融合 MATLAB跟踪器介绍 MATLAB通过多目标跟踪器可以融合多传感器检测到的目标信息 xff0c 常用到的多目标跟踪器有trackerGNN trackerJPDA trackerTOMHT trackerPHD等 track
  • MATLAB多传感器融合--核心步骤

    MATLAB多传感器融合 核心步骤 MATLAB的多传感器融合的核心步骤在stepImpl函数中实现 xff0c 该函数的输入的跟踪目标和测量的目标的信息 xff0c 输出为证实的真目标信息和处于试探的跟踪目标信息 confirmedTra
  • [新手编译内核]kernel进行编译时提示No rule to make target `menconfig'.

    windows下下载了 linux 2 6 37内核源码 xff0c 拷贝到U盘上 xff0c 通过mount挂载到了虚拟机里的Centos 5 5系统上 通过putty使用host only方式连接到虚拟机 xff0c 进行操作 在 mn
  • 协议和协议栈的区别?

    在通信领域特别是无线通信领域 xff0c 我们经常会听到用到什么协议啊 xff0c 什么协议栈方面的东西 1 首先 xff0c 协议定义的是一些列的通信标注 xff0c 通信的双方需要共同按照这一个标准进行正常的数据收发 xff1b 在计算
  • linux-kernel, bus总线数据结构分析

    设备模型中的三大组件是 xff1a 总线 xff0c 驱动 xff0c 设备 bus driver device 数据结构总览 总线除了一些物理总线的抽象 xff0c 还代表一些虚拟的总线 xff0c 如platform xff0c 所以在
  • JavaScript 猜数字小游戏

    说明 单独创建一个js文件 然后在文件里面写入下列代码 之后在html页面引入该js文件即可 span class token comment 设计并实现 猜数游戏 xff0c 并输出每轮猜数游戏的猜测次数 游戏规则如下 xff1a spa
  • 纯干货:LCD屏和OLED屏的区别?手机屏幕材质各有什么区别?

    纯干货 xff1a LCD屏和OLED屏的区别 xff1f 手机屏幕材质各有什么区别 xff1f 慢慢买比价 已认证的官方帐号 74 人赞同了该文章 今天我就为大家带来一篇纯干货知识点整理 xff0c 关于手机屏幕那点事看完秒懂 以及大家对
  • OpenJDK在OpenHarmony上异常问题分析

    目录 0 前言1 问题日志打印2 报错日志代码分析3 问题解决方案 0 前言 基于OpenHarmony的2022 06 30 master之前版本OpenJDK测试OK xff0c 但是之后版本测试报异常错误 1 问题日志打印 2 报错日