System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機,例如涉及一種用于webassembly模塊異常處理的方法、裝置和電子設備。
技術介紹
1、目前,資源受限設備(resource?constrained?device)通常是指電量供應有限,計算能力有限,以及存儲容量有限的電子設備,例如智能卡(smart?card)和安全單元(secure?element)。在這些設備上通常運行有片內操作系統(chip?operating?system,cos),cos可以通過輸入或輸出接口和外部接口設備進行通信,接收外部接口設備的命令,在其內部完成命令處理,把命令響應發送給外部接口設備,為接口設備提供私密信息的安全存儲、重要程序的安全執行、用戶身份鑒別等安全訪問、控制功能。
2、webassembly模塊的原生指令雖然支持異常監測指令和異常捕獲指令,但是只有面向對象的高級語言c++、go、rust等語言才能編譯出異常處理機制相關字節碼,對于面向結構的較為低級的語言(例如,c語言)則無法編譯出這類字節碼,導致面向結構程序語言難以實現運行時異常處理。
3、需要說明的是,在上述
技術介紹
部分公開的信息僅用于加強對本申請的背景的理解,因此可以包括不構成對本領域普通技術人員已知的現有技術的信息。
技術實現思路
1、為了對披露的實施例的一些方面有基本的理解,下面給出了簡單的概括。所述概括不是泛泛評述,也不是要確定關鍵/重要組成元素或描繪這些實施例的保護范圍,而是作為后面的詳細說明的序言。
2、本公開實施例提供
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所述的方法,其特征在于,異常處理機制指令包括異常監測指令和異常捕獲指令;執行情況包括執行正?;驁绦挟惓#桓鶕灮痺ebassembly模塊中被監測指令的執行情況確定異常處理機制指令對應的異常標志之前,還包括:在優化webassembly模塊中...
【專利技術屬性】
技術研發人員:路倩,劉靜亞,張章,鄒重人,
申請(專利權)人:紫光同芯微電子有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。