Skip to content

runtime_debug/checkInt overly aggressive when ASSERTIONS=2 #19655

@RosHartigan

Description

@RosHartigan

When I run my emscripten app for debugging after compiling it with ASSERTIONS=2, the app aborts after calling stat, and after calling fillMouseEventData.

  • In stat, the stat.rdev instance member is 'undefined', which causes an abort. (library_workerfs.js:85)
  • In fillMouseEventData, 'e.clientX - rect.left' resolves to a float, not an int, which also causes an abort. (library_html5.js:439)

I believe this pull request is the breaking change for me: #19251

I've reverted to ASSERTIONS=1, but I'd love to debug with a higher assertion level.

Console output
t RuntimeError: Aborted(Assertion failed: attempt to write non-integer (undefined) into integer heap)
at abort (cskyclasses-debug.js:836:10)
at assert (cskyclasses-debug.js:615:3)
at checkInt (cskyclasses-debug.js:1074:2)
at checkInt32 (cskyclasses-debug.js:1085:27)
at setValue_safe (cskyclasses-debug.js:5460:3)
at SAFE_HEAP_STORE (cskyclasses-debug.js:564:2)
at Object.doStat (cskyclasses-debug.js:4697:3)
at ___syscall_stat64 (cskyclasses-debug.js:5807:19)
at fstatat (fstatat.c:148:9)
at stat (stat.c:6:9)

Version of emscripten/emsdk:
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.41 (71634e0)
clang version 17.0.0 (https://github.com/llvm/llvm-project 88421ea973916e60c34beb26597a5fc33f83dd8f)
Target: wasm32-unknown-emscripten
Thread model: posix

Full link command and output with -v appended:
Output of link is attached.
ssww_emcc_link_log_2023-06-19.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions