Closed tolauwae closed 1 year ago
While the button.wast example works fine, the button.ts code crashes on an unhandled exception whenever a button is pressed.
Stack trace on esp:
0x400dcea9: void std::vector, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*, std::allocator, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*> >::emplace_back, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*>(nlohmann::basic_json, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*&&) at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/bits/vector.tcc:109 0x400dcea9: std::vector, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*, std::allocator, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*> >::push_back(nlohmann::basic_json, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*&&) at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/bits/stl_vector.h:1091 0x400dcea9: nlohmann::detail::json_sax_dom_parser, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > >::start_array(unsigned int) at /home/tom/Arduino/libraries/WARDuino/src/Edward/../../lib/json/single_include/nlohmann/json.hpp:6247 0x400dcea9: bool nlohmann::detail::parser, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >, nlohmann::detail::iterator_input_adapter >::sax_parse_internal, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > > >(nlohmann::detail::json_sax_dom_parser, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > >*) at /home/tom/Arduino/libraries/WARDuino/src/Edward/../../lib/json/single_include/nlohmann/json.hpp:11602 0x4008a9e4: _fwalk_reent at /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/newlib/newlib/libc/stdio/fwalk.c:72 0x4008aa00: _findenv_r at /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/newlib/newlib/libc/stdlib/getenv_r.c:91 0x400dcea6: void std::vector, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*, std::allocator, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*> >::emplace_back, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*>(nlohmann::basic_json, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*&&) at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/bits/vector.tcc:109 0x400dcea6: std::vector, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*, std::allocator, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*> >::push_back(nlohmann::basic_json, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >*&&) at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/bits/stl_vector.h:1091 0x400dcea6: nlohmann::detail::json_sax_dom_parser, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > >::start_array(unsigned int) at /home/tom/Arduino/libraries/WARDuino/src/Edward/../../lib/json/single_include/nlohmann/json.hpp:6247 0x400dcea6: bool nlohmann::detail::parser, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > >, nlohmann::detail::iterator_input_adapter >::sax_parse_internal, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > > >(nlohmann::detail::json_sax_dom_parser, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > >*) at /home/tom/Arduino/libraries/WARDuino/src/Edward/../../lib/json/single_include/nlohmann/json.hpp:11602 0x400e2ddd: i_instr_get_global(Module*) at /home/tom/Arduino/libraries/WARDuino/src/Interpreter/instructions.cpp:555 0x400e2ddd: interpret(Module*, bool) at /home/tom/Arduino/libraries/WARDuino/src/Interpreter/instructions.cpp:1641 0x400e36ca: mqtt_connected(Module*) at /home/tom/Arduino/libraries/WARDuino/src/Primitives/arduino.cpp:697 0x400de8e5: nlohmann::detail::iter_impl, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > >::operator*() const at /home/tom/Arduino/libraries/WARDuino/src/Debug/../Edward/../../lib/json/single_include/nlohmann/json.hpp:12306 0x400de8e5: nlohmann::detail::iter_impl, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > >::value() const at /home/tom/Arduino/libraries/WARDuino/src/Debug/../Edward/../../lib/json/single_include/nlohmann/json.hpp:12757 0x400de8e5: nlohmann::detail::iteration_proxy_value, std::allocator >, bool, long long, unsigned long long, double, std::allocator, nlohmann::adl_serializer, std::vector > > > >::value() const at /home/tom/Arduino/libraries/WARDuino/src/Debug/../Edward/../../lib/json/single_include/nlohmann/json.hpp:4720 0x400de8e5: Debugger::updateCallbackmapping(Module*, char const*) at /home/tom/Arduino/libraries/WARDuino/src/Debug/debugger.cpp:1232 0x400e4291: __gnu_cxx::new_allocator::deallocate(char*, unsigned int) at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/ext/new_allocator.h:125 0x400e4291: std::allocator_traits >::deallocate(std::allocator&, char*, unsigned int) at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/bits/alloc_traits.h:462 0x400e4291: std::__cxx11::basic_string, std::allocator >::_M_destroy(unsigned int) at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/bits/basic_string.h:226 0x400e4291: std::__cxx11::basic_string, std::allocator >::_M_dispose() at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/bits/basic_string.h:221 0x400e4291: std::__cxx11::basic_string, std::allocator >::~basic_string() at /home/tom/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/xtensa-esp32-elf/include/c++/8.4.0/bits/basic_string.h:657 0x400e4291: isr_17() at /home/tom/Arduino/libraries/WARDuino/src/Primitives/arduino.cpp:100 0x400d2d39: Debugger::handleInvoke(Module*, unsigned char*) at /home/tom/Arduino/libraries/WARDuino/src/Debug/debugger.cpp:385 0x400ecb65: Stream::readBytes(unsigned char*, unsigned int) at /home/tom/.arduino15/packages/esp32/hardware/e [button.zip](https://github.com/TOPLLab/WARDuino/files/11731614/button.zip) sp32/2.0.3/cores/esp32/Stream.h:103 0x400ecb65: HTTPClient::writeToStreamDataBlock(Stream*, int) at /home/tom/.arduino15/packages/esp32/hardware/esp32/2.0.3/libraries/HTTPClient/src/HTTPClient.cpp:1391
button.zip
This is due to the table index being out of range. This is a problem with the asc compiler.
While the button.wast example works fine, the button.ts code crashes on an unhandled exception whenever a button is pressed.
Stack trace on esp:
button.zip