• Lv0
    粉丝0

积分0 / 贡献0

提问2答案被采纳0文章0

作者动态

DataView 使用 getFloat32 在某些情况下会导致 SIGSEGV

余沧海 显示全部楼层 发表于 5 天前

【问题描述】

  1. 介绍问题现象和发生的背景 我在使用 DataView 提取二进制数据为 Float32 时,某些数据下会崩溃

  2. 相关的代码(请勿使用截图)

    // 不崩溃
    let dataView = new DataView(new Uint8Array([0x0F,0x00,0x12,0x21]).buffer);
    console.log(`[TAG] ${dataView.getUint32(0).toString(16)}`);
    console.log(`[TAG] ${dataView.getInt32(0).toString(16)}`);
    console.log(`[TAG] ${dataView.getFloat32(0)}`);
    
    // 崩溃
    dataView = new DataView(new Uint8Array([0xFF,0xFF,0xFF,0x4C]).buffer);
    console.log(`[TAG] ${dataView.getUint32(0).toString(16)}`);
    console.log(`[TAG] ${dataView.getInt32(0).toString(16)}`);
    console.log(`[TAG] ${dataView.getFloat32(0)}`);
  3. 运行结果、错误截图

    Device info:dayu152
    Build info:OpenHarmony 3.2.13.5
    Module name:com.example.myapplication
    Version:1.0.0
    Pid:20693
    Uid:20010046
    Reason:Signal:SIGSEGV(SEGV_MAPERR)@0x0000ffe980000000 
    Thread name:com.example.mya
    #00 pc 00000000002c818c /system/lib64/libark_jsruntime.so (5ce9589ae961000ed9a5174c8c3fd4fe)
    #01 pc 00000000003be614 /system/lib64/libark_jsruntime.so (5ce9589ae961000ed9a5174c8c3fd4fe)
    #02 pc 0000007f6c011028 
    #03 pc 0000007f6c014c08
  4. 我尝试过的解决方法和结果

  5. 我想要达到的结果

    想看看各位在自己的环境下进行该操作会不会崩溃

【运行环境】

硬件:CPU:Unisoc T770 ROM版本: DevEvoStudio版本: SDK版本:

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部