System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于WebAssembly模块异常处理的方法、装置和电子设备制造方法及图纸_技高网

用于WebAssembly模块异常处理的方法、装置和电子设备制造方法及图纸

技术编号:40609258 阅读:4 留言:0更新日期:2024-03-12 22:16
本申请涉及计算机技术领域,公开了一种用于WebAssembly模块异常处理的方法,该方法包括:确定位于需要执行异常操作位置的异常操作标签;获得包括异常操作标签的待编译程序,并将待编译程序编译为对应的WebAssembly模块;将WebAssembly模块中的异常操作标签转换为异常处理机制指令,获得优化WebAssembly模块以处理优化WebAssembly模块中的运行时异常。该方法通过获得的优化WebAssembly模块,可以为面向结构的较为低级的程序语言提供运行时异常处理机制,实现对该面向结构的程序运行时的异常捕获和异常处理。同时,通过增加异常处理机制,能够提高程序在运行时的健壮性和安全性。本申请还公开另一种用于WebAssembly模块异常处理的方法、一种用于WebAssembly模块异常处理的装置和电子设备。

【技术实现步骤摘要】

本申请涉及计算机,例如涉及一种用于webassembly模块异常处理的方法、装置和电子设备。


技术介绍

1、目前,资源受限设备(resource constrained device)通常是指电量供应有限,计算能力有限,以及存储容量有限的电子设备,例如智能卡(smart card)和安全单元(secure element)。在这些设备上通常运行有片内操作系统(chip operating system,cos),cos可以通过输入或输出接口和外部接口设备进行通信,接收外部接口设备的命令,在其内部完成命令处理,把命令响应发送给外部接口设备,为接口设备提供私密信息的安全存储、重要程序的安全执行、用户身份鉴别等安全访问、控制功能。

2、webassembly模块的原生指令虽然支持异常监测指令和异常捕获指令,但是只有面向对象的高级语言c++、go、rust等语言才能编译出异常处理机制相关字节码,对于面向结构的较为低级的语言(例如,c语言)则无法编译出这类字节码,导致面向结构程序语言难以实现运行时异常处理。

3、需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现思路

1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。

2、本公开实施例提供了一种用于webassembly模块异常处理的方法、装置和电子设备,可以为面向结构的较为低级的程序语言提供运行时异常处理机制,实现对该面向结构的程序运行时的异常捕获和异常处理。

3、在一些实施例中,用于webassembly模块异常处理的方法包括:确定位于需要执行异常操作位置的异常操作标签;获得包括异常操作标签的待编译程序,并将待编译程序编译为对应的webassembly模块;将webassembly模块中的异常操作标签转换为异常处理机制指令,获得优化webassembly模块以处理优化webassembly模块中的运行时异常。

4、可选地,获得包括异常操作标签的待编译程序,包括:在程序中需要执行异常操作位置加入异常操作标签;对异常操作标签的结果值进行条件判断,获得条件判断语句块;将需要执行异常操作的程序语句嵌入条件判断语句块,获得待编译程序。

5、可选地,将webassembly模块中的异常操作标签转换为异常处理机制指令,获得优化webassembly模块,包括:遍历webassembly模块的代码段,识别出异常操作标签指令,并确定异常操作标签指令的指令类型;根据异常操作标签指令的指令类型,确定异常操作标签指令所对应的异常处理机制指令;生成包括异常处理机制指令的优化webassembly模块。

6、可选地,根据异常操作标签指令的指令类型,确定异常操作标签指令所对应的异常处理机制指令,包括:在异常操作标签指令的指令类型为函数调用指令的情况下,确定异常操作标签指令的操作数,以及异常操作标签指令的函数名称和函数索引;根据异常操作标签指令的操作数,以及异常操作标签指令的函数名称和函数索引,确定对应的异常处理机制指令;和/或,在异常操作标签指令的指令类型为全局变量加载指令的情况下,确定异常操作标签指令的操作数,以及位于异常操作标签指令的前一指令的指令类型和操作数;根据异常操作标签指令的操作数,以及前一指令的指令类型和操作数,确定对应的异常处理机制指令。

7、在一些实施例中,webassembly模块为如上述的优化webassembly模块,用于webassembly模块异常处理的方法包括:根据优化webassembly模块中被监测指令的执行情况确定异常处理机制指令对应的异常标志;根据异常处理机制指令对应的异常标志确定异常处理机制指令往操作数栈上压入的操作数;根据异常处理机制指令往操作数栈上压入的操作数确定异常处理机制指令对应的条件判断语句块的执行路径,以处理优化webassembly模块运行时的异常。

8、可选地,异常处理机制指令包括异常监测指令和异常捕获指令。

9、可选地,异常标志包括用于表示执行异常处理机制指令对应的条件判断语句块时进行跳转的跳转标志或用于表示执行异常处理机制指令对应的条件判断语句块时不进行跳转的不跳转标志。

10、可选地,执行情况包括执行正常或执行异常。

11、可选地,根据优化webassembly模块中被监测指令的执行情况确定异常处理机制指令对应的异常标志之前,还包括:在优化webassembly模块中初次执行异常监测指令的情况下,确定异常监测指令对应的异常标志为不跳转标志。

12、可选地,根据优化webassembly模块中被监测指令的执行情况确定异常处理机制指令对应的异常标志,包括:在优化webassembly模块中被监测指令的执行情况为执行正常的情况下,确定异常捕获指令对应的异常标志为跳转标志;和/或,在优化webassembly模块中被监测指令的执行情况为执行异常的情况下,确定异常监测指令对应的异常标志为跳转标志,且异常捕获指令对应的异常标志为不跳转标志。

13、可选地,根据异常处理机制指令对应的异常标志确定异常处理机制指令往操作数栈上压入的操作数,包括以下操作的一种或多种:在异常监测指令对应的异常标志为不跳转标志的情况下,将当前pc压入异常监测栈栈顶作为异常监测栈栈顶的异常监测点,并确定往操作数栈上压入的操作数为不跳转标志;在异常监测指令对应的异常标志为跳转标志的情况下,根据异常监测指令的操作数弹出执行被监测指令时往操作数栈上压入的数据,并确定往操作数栈上压入的操作数为跳转标志;在异常捕获指令对应的异常标志为跳转标志的情况下,弹出异常监测栈栈顶的异常监测点,并确定往操作数栈上压入的操作数为跳转标志;在异常捕获指令对应的异常标志为不跳转标志的情况下,确定往操作数栈上压入的操作数为不跳转标志。

14、可选地,操作数包括异常标志中的跳转标志或不跳转标志。

15、可选地,根据异常处理机制指令往操作数栈上压入的操作数确定异常处理机制指令对应的条件判断语句块的执行路径,以处理优化webassembly模块运行时的异常,包括以下操作的一种或多种:在异常监测指令往操作数栈上压入的操作数为不跳转标志的情况下,执行异常监测指令对应的条件判断语句块时不进行跳转,并执行异常监测指令对应的条件判断语句块内的被监测指令;在异常监测指令往操作数栈上压入的操作数为跳转标志的情况下,执行异常监测指令对应的条件判断语句块时进行跳转,并跳转至被监测指令后的异常捕获指令进行执行;在异常捕获指令往操作数栈上压入的操作数为跳转标志的情况下,执行异常捕获指令对应的条件判断语句块时进行跳转,并跳转至webassembly模块中的异常处理指令后的指令进行执行;在异常捕获指令往操作数栈上压入的操作数为不跳本文档来自技高网...

【技术保护点】

1.一种用于WebAssembly模块异常处理的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,获得包括异常操作标签的待编译程序,包括:

3.根据权利要求1所述的方法,其特征在于,将WebAssembly模块中的异常操作标签转换为异常处理机制指令,获得优化WebAssembly模块,包括:

4.根据权利要求3所述的方法,其特征在于,根据异常操作标签指令的指令类型,确定异常操作标签指令所对应的异常处理机制指令,包括:

5.一种用于WebAssembly模块异常处理的方法,其特征在于,WebAssembly模块为如权利要求1至4任一项所述的优化WebAssembly模块,方法包括:

6.根据权利要求5所述的方法,其特征在于,异常处理机制指令包括异常监测指令和异常捕获指令;执行情况包括执行正常或执行异常;根据优化WebAssembly模块中被监测指令的执行情况确定异常处理机制指令对应的异常标志之前,还包括:在优化WebAssembly模块中初次执行异常监测指令的情况下,确定异常监测指令对应的异常标志为不跳转标志;

7.根据权利要求5所述的方法,其特征在于,异常处理机制指令包括异常监测指令和异常捕获指令,异常标志包括跳转标志或不跳转标志;根据异常处理机制指令对应的异常标志确定异常处理机制指令往操作数栈上压入的操作数,包括以下操作的一种或多种:

8.根据权利要求5所述的方法,其特征在于,异常处理机制指令包括异常监测指令和异常捕获指令,操作数包括异常标志中的跳转标志或不跳转标志;根据异常处理机制指令往操作数栈上压入的操作数确定异常处理机制指令对应的条件判断语句块的执行路径,以处理优化WebAssembly模块运行时的异常,包括以下操作的一种或多种:

9.一种用于WebAssembly模块异常处理的装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至8任一项所述的用于WebAssembly模块异常处理的方法。

10.一种电子设备,其特征在于,包括:

...

【技术特征摘要】

1.一种用于webassembly模块异常处理的方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,获得包括异常操作标签的待编译程序,包括:

3.根据权利要求1所述的方法,其特征在于,将webassembly模块中的异常操作标签转换为异常处理机制指令,获得优化webassembly模块,包括:

4.根据权利要求3所述的方法,其特征在于,根据异常操作标签指令的指令类型,确定异常操作标签指令所对应的异常处理机制指令,包括:

5.一种用于webassembly模块异常处理的方法,其特征在于,webassembly模块为如权利要求1至4任一项所述的优化webassembly模块,方法包括:

6.根据权利要求5所述的方法,其特征在于,异常处理机制指令包括异常监测指令和异常捕获指令;执行情况包括执行正常或执行异常;根据优化webassembly模块中被监测指令的执行情况确定异常处理机制指令对应的异常标志之前,还包括:在优化webassembly模块中...

【专利技术属性】
技术研发人员:路倩刘静亚张章邹重人
申请(专利权)人:紫光同芯微电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1