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