• Clemens Hammacher's avatar
    [turboassembler] Introduce hard-abort mode · a462a785
    Clemens Hammacher authored
    For checks and assertions (mostly for debug code, like stack alignment
    or zero extension), we had two modes: Emit a call to the {Abort}
    runtime function (the default), and emit a debug break (used for
    testing, enabled via --trap-on-abort).
    In wasm, where we cannot just call a runtime function because code must
    be isolate independent, we always used the trap-on-abort behaviour.
    This causes problems for our fuzzers, which do not catch SIGTRAP, and
    hence do not detect debug code failures.
    
    This CL introduces a third mode ("hard abort"), which calls a C
    function via {ExternalReference}. The C function still outputs the
    abort reason, but does not print the stack trace. It then aborts via
    "OS::Abort", just like the runtime function.
    This will allow fuzzers to detect the crash and even find a nice error
    message.
    
    Even though this looks like a lot of code churn, it is actually not.
    Most added lines are new tests, and other changes are minimal.
    
    R=mstarzinger@chromium.org
    
    Bug: chromium:863799
    Change-Id: I77c58ff72db552d49014614436259ccfb49ba87b
    Reviewed-on: https://chromium-review.googlesource.com/1142163
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#54592}
    a462a785
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mkgrokdump Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
test262 Loading commit data...
torque Loading commit data...
unittests Loading commit data...
wasm-spec-tests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...