// Copyright (c) 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef QUICHE_COMMON_PLATFORM_API_QUICHE_STACK_TRACE_H_ #define QUICHE_COMMON_PLATFORM_API_QUICHE_STACK_TRACE_H_ #include <string> #include <vector> #include "absl/types/span.h" #include "quiche_platform_impl/quiche_stack_trace_impl.h" namespace quiche { inline std::vector<void*> CurrentStackTrace() { … } inline std::string SymbolizeStackTrace(absl::Span<void* const> stacktrace) { … } // Returns a human-readable stack trace. Mostly used in error logging and // related features. inline std::string QuicheStackTrace() { … } // Indicates whether the unit test for QuicheStackTrace() should be run. The // unit test calls QuicheStackTrace() from a specific function and checks // whether that specific function is in the stack trace. This function should // return false if: // (1) QuicheStackTrace() is unimplemented, // (2) QuicheStackTrace() does not work on the current platform, or // (3) QuicheStackTrace() works, but the symbols are not guaranteed to be // available. inline bool QuicheShouldRunStackTraceTest() { … } } // namespace quiche #endif // QUICHE_COMMON_PLATFORM_API_QUICHE_STACK_TRACE_H_