/* * Copyright: Stanford University / SLAC National Laboratory. * * SPDX-License-Identifier: EPICS * EPICS BASE is distributed subject to a Software License Agreement found * in file LICENSE that is included with this distribution. * * Author: Till Straumann , 2011, 2014 */ /** * \file epicsStackTrace.h * * Functions for printing the stack trace */ #ifndef INC_epicsStackTrace_H #define INC_epicsStackTrace_H #include "libComAPI.h" #ifdef __cplusplus extern "C" { #endif /** \brief Dump a stack trace * * Dump a stack trace to the errlog. * * \since 3.15.0.2 Added */ LIBCOM_API void epicsStackTrace(void); /* Inquire about functionality implemented on your system */ /** Bit mask to check if stack trace provides numerical addresses.*/ #define EPICS_STACKTRACE_ADDRESSES (1<<0) /** Bit mask to check if stack trace is able to lookup dynamic symbols.*/ #define EPICS_STACKTRACE_DYN_SYMBOLS (1<<1) /** Bit mask to check if stack trace is able to lookup global symbols */ #define EPICS_STACKTRACE_GBL_SYMBOLS (1<<2) /** Bit mask to check if stack trace is able to lookup local symbols */ #define EPICS_STACKTRACE_LCL_SYMBOLS (1<<3) /** \brief Get supported stacktrace features * * Returns an ORed bitset of supported features. Use the EPICS_STACKTRACE_ masks to * check if a feature is supported. * * \return 0 if getting the stack trace is unsupported. Otherwise * returns an ORed bitset of supported features. */ LIBCOM_API int epicsStackTraceGetFeatures(void); #ifdef __cplusplus } #endif #endif