Hello, does anyone have a tip on how to work around the "Maximum call stack
size exceeded" error when running a UBsan-sanitized Emscripten program
under Node?
The error is:
"RangeError: Maximum call stack size exceeded
at _emscripten_return_address (a.out.js:6788:35)
at __ubsan_handle_dynamic_type_cache_miss (wasm-function[8220]:0x210eb3)
at std::type_info::operator==(std::type_info const&) const
(wasm-function[938]:0x648b3)
at is_equal(std::type_info const*, std::type_info const*, bool)
(wasm-function[8154]:0x20a911)
at __dynamic_cast (wasm-function[8156]:0x20aa48)
at __ubsan::checkDynamicType(void*, void*, unsigned long)
(wasm-function[8196]:0x20f1b9)
at HandleDynamicTypeCacheMiss(__ubsan::DynamicTypeCacheMissData*,
unsigned long, unsigned long, __ubsan::ReportOptions)
(wasm-function[8221]:0x210f03)
at __ubsan_handle_dynamic_type_cache_miss (wasm-function[8220]:0x210ed7)
at std::type_info::operator==(std::type_info const&) const
(wasm-function[938]:0x648b3)
at is_equal(std::type_info const*, std::type_info const*, bool)
(wasm-function[8154]:0x20a911)"
I'm not 100% sure, but it seems that the error doesn't indicate a bug in
the program, because it doesn't appear when compiling a small program
(e.g., a Googletest binary with 0 tests) and begins to appear even after
adding unused code (e.g., a bunch of disabled Googletest tests).
I tried passing "--stack_size=8192" to Node, but this didn't help; also,
when increasing the number (e.g., to 131072) I'm starting to get a
different error:
RuntimeError: memory access out of bounds
at __dynamic_cast (wasm-function[8156]:0x20aa0f)
at __ubsan::checkDynamicType(void*, void*, unsigned long)
(wasm-function[8196]:0x20f1b9)
at HandleDynamicTypeCacheMiss(__ubsan::DynamicTypeCacheMissData*,
unsigned long, unsigned long, __ubsan::ReportOptions)
(wasm-function[8221]:0x210f03)
at __ubsan_handle_dynamic_type_cache_miss (wasm-function[8220]:0x210ed7)
at std::type_info::operator==(std::type_info const&) const
(wasm-function[938]:0x648b3)
at is_equal(std::type_info const*, std::type_info const*, bool)
(wasm-function[8154]:0x20a911)
at __dynamic_cast (wasm-function[8156]:0x20aa48)
at __ubsan::checkDynamicType(void*, void*, unsigned long)
(wasm-function[8196]:0x20f1b9)
at HandleDynamicTypeCacheMiss(__ubsan::DynamicTypeCacheMissData*,
unsigned long, unsigned long, __ubsan::ReportOptions)
(wasm-function[8221]:0x210f03)
at __ubsan_handle_dynamic_type_cache_miss (wasm-function[8220]:0x210ed7)
Thanks.
--
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 on the web visit
https://groups.google.com/d/msgid/emscripten-discuss/8c9c6b8b-a4b1-427c-965c-5828f8fa8fe9n%40googlegroups.com.