1234567891011121314151617181920212223242526272829303132333435 |
- /* Copyright (c) 2013-2018, The Tor Project, Inc. */
- /* See LICENSE for licensing information */
- #ifndef TOR_BACKTRACE_H
- #define TOR_BACKTRACE_H
- /**
- * \file backtrace.h
- *
- * \brief Header for backtrace.c
- **/
- #include "orconfig.h"
- #include "lib/cc/compat_compiler.h"
- typedef void (*tor_log_fn)(int, unsigned, const char *fmt, ...)
- CHECK_PRINTF(3,4);
- void log_backtrace_impl(int severity, int domain, const char *msg,
- tor_log_fn logger);
- int configure_backtrace_handler(const char *tor_version);
- void clean_up_backtrace_handler(void);
- void dump_stack_symbols_to_error_fds(void);
- #define log_backtrace(sev, dom, msg) \
- log_backtrace_impl((sev), (dom), (msg), tor_log)
- #ifdef EXPOSE_CLEAN_BACKTRACE
- #if defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && \
- defined(HAVE_BACKTRACE_SYMBOLS_FD) && defined(HAVE_SIGACTION)
- void clean_backtrace(void **stack, size_t depth, const ucontext_t *ctx);
- #endif
- #endif /* defined(EXPOSE_CLEAN_BACKTRACE) */
- #endif /* !defined(TOR_BACKTRACE_H) */
|