OpenHarmony开发者论坛

标题: DataView 使用 getFloat32 在某些情况下会导致 SIGSEGV [打印本页]

作者: 余沧海    时间: 5 天前
标题: DataView 使用 getFloat32 在某些情况下会导致 SIGSEGV
[md]### 【问题描述】

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版本:
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5