gpt4 book ai didi

rust - 运行时错误 : unreachable in rustwasm

转载 作者:行者123 更新时间:2023-12-03 11:36:35 25 4
gpt4 key购买 nike

我收到代码的错误“RuntimeError: unreachable in rustwasm”
错误信息:

Uncaught (in promise) RuntimeError: unreachable
at __rust_start_panic (http://127.0.0.1:8080/wasm_bg.wasm:wasm-function[346]:0x274ec)
at rust_panic (http://127.0.0.1:8080/wasm_bg.wasm:wasm-function[254]:0x26d0b)
at std::panicking::rust_panic_with_hook::hb07b303a83b6d242 (http://127.0.0.1:8080/wasm_bg.wasm:wasm-function[168]:0x24a47)
at rust_begin_unwind (http://127.0.0.1:8080/wasm_bg.wasm:wasm-function[228]:0x267ed)
at core::panicking::panic_fmt::h62f7e605cdf65d83
at core::panicking::panic_bounds_check::ha440f41d0e4eca5f
at virtualdom::parseNode::h9ba47b7b20126d66
at run ()
at init ()
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=ac403a9043e49b7a2fc3814a692b8d49
我有以下问题?
  • 是不是来自parseNode功能?
  • 是不是因为dm.children[i]溢出?或者在运行时在wasm的后台删除了一些功能?
  • 我试图钩 panic::set_hook(Box::new(console_error_panic_hook::hook));但没有多大帮助!我应该如何调试这些类型的错误?
  • 最佳答案

    问题是dm.children.len()1所以在 while 循环的第一次迭代之后,然后 i变成 1触发 panic 为 1越界了。
    解决此问题的最简单方法是将 while 循环替换为 for 循环,并匹配 Node::Element for 循环内的变体。

    for child in dm.children {
    if let Node::Element(x) = child {
    let nod = Node1 {
    tag: x.name,
    props: x.classes,
    children: x.children,
    };

    println!("{:?}", nod.tag);
    createElement(&nod);
    }
    }
    请注意,您没有处理 createElement() 的结果返回。
    由于您遇到问题的这个特定代码实际上并没有任何特定的 WASM/web 相关的东西。然后您可以将该代码编译为常规 Rust 二进制文件进行测试,这将为您提供更多有用的错误并简化测试。

    关于rust - 运行时错误 : unreachable in rustwasm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65260763/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com