1e8d8bef9SDimitry Andric //===-- backtrace_fuchsia.cpp -----------------------------------*- C++ -*-===// 2e8d8bef9SDimitry Andric // 3e8d8bef9SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e8d8bef9SDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5e8d8bef9SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e8d8bef9SDimitry Andric // 7e8d8bef9SDimitry Andric //===----------------------------------------------------------------------===// 8e8d8bef9SDimitry Andric 9e8d8bef9SDimitry Andric #include "gwp_asan/optional/backtrace.h" 10e8d8bef9SDimitry Andric 11*fe6060f1SDimitry Andric #include <zircon/sanitizer.h> 12e8d8bef9SDimitry Andric 13e8d8bef9SDimitry Andric namespace gwp_asan { 14e8d8bef9SDimitry Andric namespace backtrace { 15e8d8bef9SDimitry Andric 16*fe6060f1SDimitry Andric // Fuchsia's C library provides safe, fast, best-effort backtraces itself. getBacktraceFunction()17*fe6060f1SDimitry Andricoptions::Backtrace_t getBacktraceFunction() { 18*fe6060f1SDimitry Andric return __sanitizer_fast_backtrace; 19*fe6060f1SDimitry Andric } 20*fe6060f1SDimitry Andric 21*fe6060f1SDimitry Andric // These are only used in fatal signal handling, which is not used on Fuchsia. 22*fe6060f1SDimitry Andric getPrintBacktraceFunction()23e8d8bef9SDimitry AndricPrintBacktrace_t getPrintBacktraceFunction() { return nullptr; } getSegvBacktraceFunction()24e8d8bef9SDimitry AndricSegvBacktrace_t getSegvBacktraceFunction() { return nullptr; } 25e8d8bef9SDimitry Andric 26e8d8bef9SDimitry Andric } // namespace backtrace 27e8d8bef9SDimitry Andric } // namespace gwp_asan 28