diff --git a/Makefile b/Makefile index 8ef2c007c1..02eef68744 100644 --- a/Makefile +++ b/Makefile @@ -102,7 +102,7 @@ internal/testing/dwarftestdata/testdata/rust/main.wasm.xz: mv $(@D)/target/wasm32-wasip1/debug/main.wasm $(@D) cd $(@D) && xz -k -f ./main.wasm # Rust's DWARF section is huge, so compress it. -# Builds rust using cargo normally, or cargo-wasi. +# Builds rust using cargo normally %.wasm: %.rs @(cd $(@D); cargo build --target $(cargo_target) --release) @mv $(@D)/target/$(cargo_target)/release/$(@F) $(@D) diff --git a/cmd/wazero/wazero_test.go b/cmd/wazero/wazero_test.go index 54f6397453..48ee9c83eb 100644 --- a/cmd/wazero/wazero_test.go +++ b/cmd/wazero/wazero_test.go @@ -337,9 +337,9 @@ func TestRun(t *testing.T) { <== (opened_fd=4,errno=ESUCCESS) ==> wasi_snapshot_preview1.fd_filestat_get(fd=4) <== (filestat={filetype=REGULAR_FILE,size=5,mtim=%d},errno=ESUCCESS) -==> wasi_snapshot_preview1.fd_read(fd=4,iovs=64744,iovs_len=1) +==> wasi_snapshot_preview1.fd_read(fd=4,iovs=64664,iovs_len=1) <== (nread=5,errno=ESUCCESS) -==> wasi_snapshot_preview1.fd_read(fd=4,iovs=64744,iovs_len=1) +==> wasi_snapshot_preview1.fd_read(fd=4,iovs=64664,iovs_len=1) <== (nread=0,errno=ESUCCESS) ==> wasi_snapshot_preview1.fd_close(fd=4) <== errno=ESUCCESS diff --git a/example_test.go b/example_test.go index 033e4947cb..b83d4ede3b 100644 --- a/example_test.go +++ b/example_test.go @@ -39,7 +39,7 @@ func Example() { // Instantiate the guest Wasm into the same runtime. It exports the `add` // function, implemented in WebAssembly. - mod, err := r.Instantiate(ctx, addWasm) + mod, err := r.InstantiateWithConfig(ctx, addWasm, wazero.NewModuleConfig().WithStartFunctions("_initialize")) if err != nil { log.Panicln(err) } diff --git a/internal/integration_test/engine/dwarf_test.go b/internal/integration_test/engine/dwarf_test.go index fa8670ff3f..bcd774a5d1 100644 --- a/internal/integration_test/engine/dwarf_test.go +++ b/internal/integration_test/engine/dwarf_test.go @@ -85,77 +85,48 @@ wasm stack trace: } func testRustDWARF(t *testing.T, r wazero.Runtime) { - runDWARFTest(t, r, dwarftestdata.RustWasm, `module[] function[_start] failed: wasm error: unreachable + runDWARFTest(t, r, dwarftestdata.RustWasm, `module[main-144f120e836a09da.wasm] function[_start] failed: wasm error: unreachable wasm stack trace: - .__rust_start_panic(i32) i32 - 0xc474: /index.rs:286:39 (inlined) - /const_ptr.rs:870:18 (inlined) - /index.rs:286:39 (inlined) - /mod.rs:1630:46 (inlined) - /mod.rs:405:20 (inlined) - /mod.rs:1630:46 (inlined) - /mod.rs:1548:18 (inlined) - /iter.rs:1478:30 (inlined) - /count.rs:74:18 - .rust_panic(i32,i32) - 0xa3f8: /validations.rs:57:19 (inlined) - /validations.rs:57:19 (inlined) - /iter.rs:140:15 (inlined) - /iter.rs:140:15 (inlined) - /iterator.rs:330:13 (inlined) - /iterator.rs:377:9 (inlined) - /mod.rs:1455:35 - .std::panicking::rust_panic_with_hook::h93e119628869d575(i32,i32,i32,i32,i32) - 0x42df: /alloc.rs:244:22 (inlined) - /alloc.rs:244:22 (inlined) - /alloc.rs:342:9 (inlined) - /mod.rs:487:1 (inlined) - /mod.rs:487:1 (inlined) - /mod.rs:487:1 (inlined) - /mod.rs:487:1 (inlined) - /mod.rs:487:1 (inlined) - /panicking.rs:292:17 (inlined) - /panicking.rs:292:17 - .std::panicking::begin_panic_handler::{{closure}}::h2b8c0798e533b227(i32,i32,i32) - 0xaa8c: /mod.rs:362:12 (inlined) - /mod.rs:1257:22 (inlined) - /mod.rs:1235:21 (inlined) - /mod.rs:1214:26 - .std::sys_common::backtrace::__rust_end_short_backtrace::h030a533bc034da65(i32) - 0xc144: /mod.rs:188:26 - .rust_begin_unwind(i32) - 0xb7df: /mod.rs:1629:9 (inlined) - /builders.rs:199:17 (inlined) - /result.rs:1352:22 (inlined) - /builders.rs:187:23 - .core::panicking::panic_fmt::hb1bfc4175f838eff(i32,i32) - 0xbd3d: /mod.rs:1384:17 - .main::main::hfd44f54575e6bfdf() - 0xad2c: /memchr.rs - .core::ops::function::FnOnce::call_once::h87e5f77996df3e28(i32) - 0xbd61: /mod.rs - .std::sys_common::backtrace::__rust_begin_short_backtrace::h7ca17eb6aa97f768(i32) - 0xbd95: /mod.rs:1504:35 (inlined) - /mod.rs:1407:36 - .std::rt::lang_start::{{closure}}::he4aa401e76315dfe(i32) i32 - 0xae9a: /location.rs:196:6 - .std::rt::lang_start_internal::h3c39e5d3c278a90f(i32,i32,i32,i32) i32 - .std::rt::lang_start::h779801844bd22a3c(i32,i32,i32) i32 - 0xab94: /mod.rs:1226:2 - .__original_main() i32 - 0xc0ae: /methods.rs:1677:13 (inlined) - /mod.rs:165:24 (inlined) - /mod.rs:165:24 - ._start() - 0xc10f: /mod.rs:187 - ._start.command_export() - 0xc3de: /iterator.rs:2414:21 (inlined) - /map.rs:124:9 (inlined) - /accum.rs:42:17 (inlined) - /iterator.rs:3347:9 (inlined) - /count.rs:135:5 (inlined) - /count.rs:135:5 (inlined) - /count.rs:71:21`) + main-144f120e836a09da.wasm.__rust_start_panic(i32,i32) i32 + 0x3276: /lib.rs:100:17 (inlined) + /lib.rs:43:5 + main-144f120e836a09da.wasm.rust_panic(i32,i32) + 0x31c8: /panicking.rs:862:25 + main-144f120e836a09da.wasm._ZN3std9panicking20rust_panic_with_hook17hf4c55e90d4731159E(i32,i32,i32,i32,i32) + 0x319b: /panicking.rs:826:5 + main-144f120e836a09da.wasm._ZN3std9panicking19begin_panic_handler28_$u7b$$u7b$closure$u7d$$u7d$17h9e9ba254d816924bE(i32) + 0x25e2: /panicking.rs:667:13 + main-144f120e836a09da.wasm._ZN3std3sys9backtrace26__rust_end_short_backtrace17h5fb21e191bc452e3E(i32) + 0x251c: /backtrace.rs:170:18 + main-144f120e836a09da.wasm.rust_begin_unwind(i32) + 0x2b2f: /panicking.rs:665:5 + main-144f120e836a09da.wasm._ZN4core9panicking9panic_fmt17hfe24bec0337a4754E(i32,i32) + 0x798a: /panicking.rs:76:14 + main-144f120e836a09da.wasm._ZN4main4main17hef810e4bf58d9cdfE() + 0x373: /main.rs:12:5 (inlined) + /main.rs:7:5 (inlined) + /main.rs:2:5 + main-144f120e836a09da.wasm._ZN4core3ops8function6FnOnce9call_once17hb3419529f8e10fb1E(i32) + 0x124: /function.rs:250:5 + main-144f120e836a09da.wasm._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h6b7139fa671fb72eE(i32) + 0x289: /backtrace.rs:154:18 + main-144f120e836a09da.wasm._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hefb60d097516fc9fE(i32) i32 + 0x20c: /rt.rs:195:18 + main-144f120e836a09da.wasm._ZN3std2rt19lang_start_internal17h1fceb22bbe5297a1E(i32,i32,i32,i32,i32) i32 + 0x1780: /function.rs:284:13 (inlined) + /panicking.rs:557:40 (inlined) + /panicking.rs:520:19 (inlined) + /panic.rs:358:14 (inlined) + /rt.rs:174:48 (inlined) + /panicking.rs:557:40 (inlined) + /panicking.rs:520:19 (inlined) + /panic.rs:358:14 (inlined) + /rt.rs:174:20 + main-144f120e836a09da.wasm._ZN3std2rt10lang_start17he470b12ea6d4e370E(i32,i32,i32,i32) i32 + 0x1a8: /rt.rs:194:17 + main-144f120e836a09da.wasm.__main_void() i32 + main-144f120e836a09da.wasm._start() + 0x37: wasisdk:/crt1-command.c:43:13`) } func runDWARFTest(t *testing.T, r wazero.Runtime, bin []byte, exp string) { diff --git a/internal/wasmdebug/dwarf_test.go b/internal/wasmdebug/dwarf_test.go index f309ebb865..c58b212c17 100644 --- a/internal/wasmdebug/dwarf_test.go +++ b/internal/wasmdebug/dwarf_test.go @@ -82,7 +82,7 @@ func TestDWARFLines_Line_Rust(t *testing.T) { // codeSecStart is the beginning of the code section in the Wasm binary. // If dwarftestdata.RustWasm has been changed, we need to inspect by `wasm-tools objdump`. - const codeSecStart = 0x309 + const codeSecStart = 0x20d // These cases are crafted by matching the stack trace result from wasmtime. To verify, run: // @@ -90,101 +90,64 @@ func TestDWARFLines_Line_Rust(t *testing.T) { // // And this should produce the output as: // Caused by: - // 0: failed to invoke command default - // 1: error while executing at wasm backtrace: - // 0: 0xc77d - core::ptr::const_ptr::::offset::ha55096d7e14d75d8 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/slice/index.rs:286:39 - core::ptr::const_ptr::::add::h089d5a72f68a4291 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/ptr/const_ptr.rs:870:18 - as core::slice::index::SliceIndex<[T]>>::get_unchecked::h29ddcf1882fa0f66 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/slice/index.rs:286:39 - as core::slice::index::SliceIndex<[T]>>::get_unchecked::h75ebc890f16858ff - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/slice/mod.rs:1630:46 - core::slice::::get_unchecked::h6278e5a065ea078a - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/slice/mod.rs:405:20 - core::slice::::split_at_unchecked::h88a6f1e7c576a79c - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/slice/mod.rs:1630:46 - core::slice::::split_at::h68e6904057100aef - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/slice/mod.rs:1548:18 - as core::iter::traits::iterator::Iterator>::next::h9e3ea1e50ad1cfcf - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/slice/iter.rs:1478:30 - core::str::count::do_count_chars::h124622240ac1fb8b - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/str/count.rs:74:18 - // 1: 0xa701 - core::str::validations::utf8_acc_cont_byte::hb47c34b8c4cbf06b - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/str/validations.rs:57:19 - core::str::validations::next_code_point::hbb42fe8b8fcbddc3 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/str/validations.rs:57:19 - ::next::h2dc4678e3c0bda18 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/str/iter.rs:140:15 - ::next::h430b9a1b0d2fcfcd - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/str/iter.rs:140:15 - core::iter::traits::iterator::Iterator::advance_by::hadbf2e62b9ea873e - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/iter/traits/iterator.rs:330:13 - core::iter::traits::iterator::Iterator::nth::h68978ac344a2c26f - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/iter/traits/iterator.rs:377:9 - core::fmt::Formatter::pad::hc91f9fb3fb51f81f - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1455:35 - // 2: 0x45e8 - alloc::alloc::dealloc::hde3d57428722ee9b - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/alloc/src/alloc.rs:244:22 - ::deallocate::h9c672f23742d6fbc - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/alloc/src/alloc.rs:244:22 - alloc::alloc::box_free::hd090040c59659308 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/alloc/src/alloc.rs:342:9 - core::ptr::drop_in_place>::h3d2c76e2b4a26668 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/ptr/mod.rs:487:1 - core::ptr::drop_in_place>>::hcaa143fc963fdc85 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/ptr/mod.rs:487:1 - core::ptr::drop_in_place::hf8eda15dbd953cd1 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/ptr/mod.rs:487:1 - core::ptr::drop_in_place::ha50d906acd95a768 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/ptr/mod.rs:487:1 - core::ptr::drop_in_place>::h1a246d5cbc0481cf - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/ptr/mod.rs:487:1 - core::mem::drop::h37b541d3c993930c - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/std/src/panicking.rs:292:17 - std::panicking::default_hook::{{closure}}::h78d75d30689791e7 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/std/src/panicking.rs:292:17 - // 3: 0xad95 - core::fmt::ArgumentV1::as_usize::h1da6b057d1a7dc54 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:362:12 - core::fmt::getcount::h8c5d6b3aea75a2d3 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1257:22 - core::fmt::run::h78a98448d78ecec3 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1235:21 - core::fmt::write::h5471a2341ce22f17 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1214:26 - // 4: 0xc44d - core::fmt::Write::write_fmt::h4a7e084f8beacf08 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:188:26 - // 5: 0xbae8 - core::fmt::Formatter::write_str::hc634aaecc183d175 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1629:9 - core::fmt::builders::DebugStruct::finish_non_exhaustive::{{closure}}::h51dc89dce87b7120 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/builders.rs:199:17 - core::result::Result::and_then::hea34a5d4dd616ad6 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/result.rs:1352:22 - core::fmt::builders::DebugStruct::finish_non_exhaustive::h87daf5524c71dda9 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/builders.rs:187:23 - // 6: 0xc046 - core::fmt::Formatter::pad_integral::ha8bb3db77298fecc - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1384:17 - // 7: 0xb035 - core::slice::memchr::memchr_general_case::hb481b2edf3b1871e - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/slice/memchr.rs - // 8: 0xc06a - core::fmt::Formatter::pad_integral::ha8bb3db77298fecc - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs - // 9: 0xc09e - core::fmt::Formatter::padding::h4b882ffb39d00a12 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1504:35 - core::fmt::Formatter::pad_integral::ha8bb3db77298fecc - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1407:36 - // 10: 0xb1a3 - ::fmt::hf3870c0af6a67fac - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/panic/location.rs:196:6 - // 11: 0x8ee0 - !std::rt::lang_start_internal::h3c39e5d3c278a90f - // 12: 0xae9d - core::fmt::write::h5471a2341ce22f17 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:1226:2 - // 13: 0xc3b7 - core::char::methods::encode_utf8_raw::h700e7a293d6eb2b7 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/char/methods.rs:1677:13 - core::char::methods::::encode_utf8::h641f2d1d001008d5 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:165:24 - core::fmt::Write::write_char::ha951e2975b9730c3 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:165:24 - // 14: 0xc418 - core::fmt::Write::write_fmt::h4a7e084f8beacf08 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/fmt/mod.rs:187 - // 15: 0xc6e7 - core::iter::traits::iterator::Iterator::fold::h99ed29c108afc948 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/iter/traits/iterator.rs:2414:21 - as core::iter::traits::iterator::Iterator>::fold::ha5be3bb1eeeaf8fe - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/iter/adapters/map.rs:124:9 - ::sum::h00b4d0c0300e94a9 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/iter/traits/accum.rs:42:17 - core::iter::traits::iterator::Iterator::sum::h04374b17d4abbea5 - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/iter/traits/iterator.rs:3347:9 - as core::iter::traits::iterator::Iterator>::count::h5c8b4c5e67e6831c - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/str/count.rs:135:5 - core::str::count::char_count_general_case::hfffa06842344b9fe - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/str/count.rs:135:5 - core::str::count::do_count_chars::h124622240ac1fb8b - // at /rustc/c396bb3b8a16b1f2762b7c6078dc3e023f6a2493/library/core/src/str/count.rs:71:21 + // 0: failed to invoke command default + // 1: error while executing at wasm backtrace: + // 0: 0x3483 - panic_abort::__rust_start_panic::abort::hd05f7e510a9bfacb + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/panic_abort/src/lib.rs:100:17 - __rust_start_panic + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/panic_abort/src/lib.rs:43:5 + // 1: 0x33d5 - rust_panic + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:862:25 + // 2: 0x33a8 - std::panicking::rust_panic_with_hook::hf4c55e90d4731159 + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:826:5 + // 3: 0x27ef - std::panicking::begin_panic_handler::{{closure}}::h9e9ba254d816924b + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:667:13 + // 4: 0x2729 - std::sys::backtrace::__rust_end_short_backtrace::h5fb21e191bc452e3 + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/sys/backtrace.rs:170:18 + // 5: 0x2d3c - rust_begin_unwind + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:665:5 + // 6: 0x7b97 - core::panicking::panic_fmt::hfe24bec0337a4754 + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/core/src/panicking.rs:76:14 + // 7: 0x580 - main::b::h7fe25a8329542864 + // at /Users/anuraag/git/wazero/internal/testing/dwarftestdata/testdata/rust/main.rs:12:5 - main::a::hf5dc043bad87cf46 + // at /Users/anuraag/git/wazero/internal/testing/dwarftestdata/testdata/rust/main.rs:7:5 - main::main::hef810e4bf58d9cdf + // at /Users/anuraag/git/wazero/internal/testing/dwarftestdata/testdata/rust/main.rs:2:5 + // 8: 0x331 - core::ops::function::FnOnce::call_once::hb3419529f8e10fb1 + // at /Users/anuraag/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5 + // 9: 0x496 - std::sys::backtrace::__rust_begin_short_backtrace::h6b7139fa671fb72e + // at /Users/anuraag/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:154:18 + // 10: 0x419 - std::rt::lang_start::{{closure}}::hefb60d097516fc9f + // at /Users/anuraag/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs:195:18 + // 11: 0x198d - core::ops::function::impls:: for &F>::call_once::h13726548ebbd9f5e + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/core/src/ops/function.rs:284:13 - std::panicking::try::do_call::h486344993a14f2c0 + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:557:40 - std::panicking::try::hedadb8cd413b03f6 + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:520:19 - std::panic::catch_unwind::hc1f7f9244b2fb00b + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panic.rs:358:14 - std::rt::lang_start_internal::{{closure}}::hfb0e2b398e86f6de + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/rt.rs:174:48 - std::panicking::try::do_call::hebcae3b56ebbc340 + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:557:40 - std::panicking::try::h8850f6913d04c130 + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panicking.rs:520:19 - std::panic::catch_unwind::hf3726b3a12c06aad + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/panic.rs:358:14 - std::rt::lang_start_internal::h1fceb22bbe5297a1 + // at /rustc/9fc6b43126469e3858e2fe86cafb4f0fd5068869/library/std/src/rt.rs:174:20 + // 12: 0x3b5 - std::rt::lang_start::he470b12ea6d4e370 + // at /Users/anuraag/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/rt.rs:194:17 + // 13: 0x5a4 - main-144f120e836a09da.wasm!__main_void + // 14: 0x244 - _start + // at wasisdk://v23.0/build/sysroot/wasi-libc-wasm32-wasip1/libc-bottom-half/crt/crt1-command.c:43:13 + // 2: wasm trap: wasm `unreachable` instruction executed for _, tc := range []struct { offset uint64 exp []string }{ - {offset: 0xc77d - codeSecStart, exp: []string{ - "/library/core/src/slice/index.rs:286:39", - "/library/core/src/ptr/const_ptr.rs:870:18", - "/library/core/src/slice/index.rs:286:39", - "/library/core/src/slice/mod.rs:1630:46", - "/library/core/src/slice/mod.rs:405:20", - "/library/core/src/slice/mod.rs:1630:46", - "/library/core/src/slice/mod.rs:1548:18", - "/library/core/src/slice/iter.rs:1478:30", - "/library/core/src/str/count.rs:74:18", + {offset: 0x3483 - codeSecStart, exp: []string{ + "/library/panic_abort/src/lib.rs:100:17", + "/library/panic_abort/src/lib.rs:43:5", + }}, + {offset: 0x580 - codeSecStart, exp: []string{ + "/wazero/internal/testing/dwarftestdata/testdata/rust/main.rs:12:5", + "/wazero/internal/testing/dwarftestdata/testdata/rust/main.rs:7:5", + "/wazero/internal/testing/dwarftestdata/testdata/rust/main.rs:2:5", }}, - {offset: 0xc06a - codeSecStart, exp: []string{"/library/core/src/fmt/mod.rs"}}, - {offset: 0xc6e7 - codeSecStart, exp: []string{ - "/library/core/src/iter/traits/iterator.rs:2414:21", - "/library/core/src/iter/adapters/map.rs:124:9", - "/library/core/src/iter/traits/accum.rs:42:17", - "/library/core/src/iter/traits/iterator.rs:3347:9", - "/library/core/src/str/count.rs:135:5", - "/library/core/src/str/count.rs:135:5", - "/library/core/src/str/count.rs:71:21", + {offset: 0x496 - codeSecStart, exp: []string{ + "/library/std/src/sys/backtrace.rs:154:18", }}, } { tc := tc