EPICS Base  7.0.6.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
epicsStackTrace.h
1 /*
2  * Copyright: Stanford University / SLAC National Laboratory.
3  *
4  * SPDX-License-Identifier: EPICS
5  * EPICS BASE is distributed subject to a Software License Agreement found
6  * in file LICENSE that is included with this distribution.
7  *
8  * Author: Till Straumann <[email protected]>, 2011, 2014
9  */
10 
11 #ifndef INC_epicsStackTrace_H
12 #define INC_epicsStackTrace_H
13 
14 #include "libComAPI.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /* Dump a stack trace to the errlog */
21 LIBCOM_API void epicsStackTrace(void);
22 
23 /* Inquire about functionality implemented on your system */
24 
25 /* StackTrace provides numerical addresses */
26 #define EPICS_STACKTRACE_ADDRESSES (1<<0)
27 
28 /* StackTrace is able to lookup dynamic symbols */
29 #define EPICS_STACKTRACE_DYN_SYMBOLS (1<<1)
30 
31 /* StackTrace is able to lookup global symbols */
32 #define EPICS_STACKTRACE_GBL_SYMBOLS (1<<2)
33 
34 /* StackTrace is able to lookup local symbols */
35 #define EPICS_STACKTRACE_LCL_SYMBOLS (1<<3)
36 
37 /* returns ORed bitset of supported features */
38 LIBCOM_API int epicsStackTraceGetFeatures(void);
39 
40 #ifdef __cplusplus
41 }
42 #endif
43 
44 #endif