1. I use only the simplest atomics, like atomic_int, atomic_bool, etc. I will try to figure it out.
2. Regarding the Wasm stack, I am also a bit frustrated. In Firefox, when you save a log, it never contains the Wasm stack. To get it, you need to manually click on the triangle near the error message to view the detailed stack. Unfortunately, these reports came from users who didn’t do this. Also, this problem never happens in Chrome (no reports yet). ср, 11 дек. 2024 г. в 01:22, 'Sam Clegg' via emscripten-discuss < [email protected]>: > Also, I'm a little confused about why there are no wasm frames on the > stack. If you are using DevTools you should be able to see the exact wasm > instruction that caused that trap, or at the very least it should give you > the byte offset of the bad instruction and the function name/number. > > On Tue, Dec 10, 2024 at 2:17 PM Alon Zakai <[email protected]> wrote: > >> AFAIK the one place wasm may trap on unaligned data is atomic operations. >> See >> >> >> https://github.com/WebAssembly/threads/blob/main/proposals/threads/Overview.md#alignment >> ("Unlike normal memory accesses, misaligned atomic accesses trap") >> >> You may need to avoid packing data if it will be accessed using atomics. >> Also atomic SIMD data may need special handling so it is fully aligned. >> >> - Alon >> >> >> On Tue, Dec 10, 2024 at 12:39 PM Александр Гурьянов <[email protected]> >> wrote: >> >>> Hi, periodically my WebAssembly (Wasm) crashes with this error: >>> "Uncaught RuntimeError: unaligned memory access." As far as I understand, >>> Wasm can perform unaligned memory access. So why am I encountering this >>> error? >>> >>> Linker flags: >>> "-sUSE_SDL=2" "-sUSE_SDL_IMAGE=2" "-sUSE_SDL_MIXER=2" "-sUSE_SDL_TTF=2" >>> "-sUSE_ZLIB=1" >>> "-sSDL2_IMAGE_FORMATS=['bmp']" >>> "-sSTACK_SIZE=1Mb" >>> "-sTOTAL_MEMORY=512Mb" >>> "-sALLOW_MEMORY_GROWTH=0" >>> "-sPTHREAD_POOL_SIZE=6" >>> "-sPTHREAD_POOL_SIZE_STRICT=0" >>> "-sFORCE_FILESYSTEM=1" >>> "-sEXPORT_NAME=VCMI" >>> "-sMODULARIZE=1" >>> "-sINVOKE_RUN=0" >>> "-sEXPORTED_RUNTIME_METHODS=['addRunDependency', 'removeRunDependency', >>> 'FS', \ >>> 'lengthBytesUTF8', 'stringToUTF8', 'UTF8ToString', 'callMain', 'run']" >>> "-sEXPORTED_FUNCTIONS=['_main', '_malloc', '_free']" >>> "-pthread" >>> "-fwasm-exceptions" >>> "-sMALLOC=mimalloc" >>> "-Oz" >>> # for debugging >>> # "-O1" >>> "--profiling-funcs" >>> # "-sASSERTIONS=2" >>> >>> Full error stack (not very useful): >>> >>> Uncaught RuntimeError: unaligned memory access >>> callUserCallback https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> runIter https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> requestAnimationFrame >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_scheduler_rAF >>> https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> MainLoop_runner https://vcmi.dos.zone/launcher/vcmi/vcmiclient.js:9 >>> >>> >>> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "emscripten-discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion visit >>> https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVFGvOQOHqn%3D-bNOMdYmzNFSnbBveUhCphGaNGxOgCi3fw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVFGvOQOHqn%3D-bNOMdYmzNFSnbBveUhCphGaNGxOgCi3fw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion visit >> https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpQXCBLLrCDPfS7LWuxG6dRhhWE_Q%2BDq9mr50yJ-QJrN8A%40mail.gmail.com >> <https://groups.google.com/d/msgid/emscripten-discuss/CAEX4NpQXCBLLrCDPfS7LWuxG6dRhhWE_Q%2BDq9mr50yJ-QJrN8A%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/emscripten-discuss/CAL_va29wxqD02BS3AjbyDL0%2BLHLtmmPt9j%3DJUG2bDDBB3cHjdA%40mail.gmail.com > <https://groups.google.com/d/msgid/emscripten-discuss/CAL_va29wxqD02BS3AjbyDL0%2BLHLtmmPt9j%3DJUG2bDDBB3cHjdA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVGiJcXEjdYy5vSycsZws3h-wpBWiHAtimZoDNRcH0STLA%40mail.gmail.com.
