[all-commits] [llvm/llvm-project] f897e8: [fuzzer] Add Windows Visual C++ exception intercept

jopletchMSFT via All-commits all-commits at lists.llvm.org
Thu Nov 12 13:12:16 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f897e82bfd86099a5321e3fd50c63598e11e289b
      https://github.com/llvm/llvm-project/commit/f897e82bfd86099a5321e3fd50c63598e11e289b
  Author: Joe Pletcher <jopletch at microsoft.com>
  Date:   2020-11-12 (Thu, 12 Nov 2020)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerDriver.cpp
    M compiler-rt/lib/fuzzer/FuzzerFlags.def
    M compiler-rt/lib/fuzzer/FuzzerOptions.h
    M compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp
    A compiler-rt/test/fuzzer/UncaughtException.cpp
    A compiler-rt/test/fuzzer/uncaught-exception.test

  Log Message:
  -----------
  [fuzzer] Add Windows Visual C++ exception intercept

Adds a new option, `handle_winexcept` to try to intercept uncaught
Visual C++ exceptions on Windows. On Linux, such exceptions are handled
implicitly by `std::terminate()` raising `SIBABRT`. This option brings the
Windows behavior in line with Linux.

Unfortunately this exception code is intentionally undocumented, however
has remained stable for the last decade. More information can be found
here: https://devblogs.microsoft.com/oldnewthing/20100730-00/?p=13273

Reviewed By: morehouse, metzman

Differential Revision: https://reviews.llvm.org/D89755




More information about the All-commits mailing list