a462a7854a
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: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54592} |
||
---|---|---|
.. | ||
assembler-ia32-inl.h | ||
assembler-ia32.cc | ||
assembler-ia32.h | ||
code-stubs-ia32.cc | ||
codegen-ia32.cc | ||
constants-ia32.h | ||
cpu-ia32.cc | ||
deoptimizer-ia32.cc | ||
disasm-ia32.cc | ||
frame-constants-ia32.cc | ||
frame-constants-ia32.h | ||
interface-descriptors-ia32.cc | ||
macro-assembler-ia32.cc | ||
macro-assembler-ia32.h | ||
simulator-ia32.cc | ||
simulator-ia32.h | ||
sse-instr.h |