Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
backtrace.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Roc Streaming authors
3  *
4  * This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this
6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7  */
8 
9 //! @file roc_core/backtrace.h
10 //! @brief Backtrace printing.
11 
12 #ifndef ROC_CORE_BACKTRACE_H_
13 #define ROC_CORE_BACKTRACE_H_
14 
15 #include "roc_core/stddefs.h"
16 
17 namespace roc {
18 namespace core {
19 
20 //! Print backtrace to stderr.
21 //! @note
22 //! This function is NOT signal-safe
23 //! It CAN use heap and stdio.
25 
26 //! Print backtrace to stderr (emergency mode).
27 //! @note
28 //! This function IS signal-safe.
29 //! It can NOT use heap and stdio.
31 
32 //! Demangle symbol name.
33 //! @note
34 //! This function is NOT signal-safe.
35 //! It CAN use heap and stdio.
36 //! @remarks
37 //! @p demangled_buf and @p demangled_size specify the buffer for demangled name.
38 //! When necessary, this function malloc()s or realloc()s @p demangled_buf and
39 //! updates @p demangled_size accordingly. The buffer may be NULL. The buffer may
40 //! be resused across several calls. The user should manually free() the buffer
41 //! when it's not needed anymore.
42 //! @returns
43 //! demangled symbol or NULL if the symbol can't be demangled.
44 const char*
45 demangle_symbol(const char* mangled, char*& demangled_buf, size_t& demangled_size);
46 
47 } // namespace core
48 } // namespace roc
49 
50 #endif // ROC_CORE_BACKTRACE_H_
void print_backtrace_safe()
Print backtrace to stderr (emergency mode).
void print_backtrace_full()
Print backtrace to stderr.
const char * demangle_symbol(const char *mangled, char *&demangled_buf, size_t &demangled_size)
Demangle symbol name.
Root namespace.
Commonly used types and functions.