This is Unofficial EPICS BASE Doxygen Site
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
osdFindAddr.c
Go to the documentation of this file.
1
/*
2
* Copyright: Stanford University / SLAC National Laboratory.
3
*
4
* EPICS BASE is distributed subject to a Software License Agreement found
5
* in file LICENSE that is included with this distribution.
6
*
7
* Author: Till Straumann <strauman@slac.stanford.edu>, 2011, 2014
8
*/
9
10
/* Make sure dladdr() is visible */
11
#define _DARWIN_C_SOURCE
12
13
#include <dlfcn.h>
14
15
#include "
epicsStackTrace.h
"
16
#include "
epicsStackTracePvt.h
"
17
18
/* Darwin's finds local symbols, too :-) */
19
20
int
epicsFindAddr
(
void
*addr,
epicsSymbol
*sym_p)
21
{
22
Dl_info inf;
23
24
if
( ! dladdr(addr, &inf) ) {
25
sym_p->
f_nam
= 0;
26
sym_p->
s_nam
= 0;
27
sym_p->
s_val
= 0;
28
}
else
{
29
sym_p->
f_nam
= inf.dli_fname;
30
sym_p->
s_nam
= inf.dli_sname;
31
sym_p->
s_val
= inf.dli_saddr;
32
}
33
34
return
0;
35
}
36
37
int
epicsFindAddrGetFeatures
(
void
)
38
{
39
return
EPICS_STACKTRACE_LCL_SYMBOLS
40
|
EPICS_STACKTRACE_GBL_SYMBOLS
41
|
EPICS_STACKTRACE_DYN_SYMBOLS
;
42
}
epicsStackTracePvt.h
EPICS_STACKTRACE_LCL_SYMBOLS
#define EPICS_STACKTRACE_LCL_SYMBOLS
Definition:
epicsStackTrace.h:34
epicsFindAddrGetFeatures
int epicsFindAddrGetFeatures(void)
Definition:
osdFindAddr.c:37
epicsSymbol
Definition:
epicsStackTracePvt.h:15
epicsStackTrace.h
EPICS_STACKTRACE_GBL_SYMBOLS
#define EPICS_STACKTRACE_GBL_SYMBOLS
Definition:
epicsStackTrace.h:31
epicsSymbol::f_nam
const char * f_nam
Definition:
epicsStackTracePvt.h:16
EPICS_STACKTRACE_DYN_SYMBOLS
#define EPICS_STACKTRACE_DYN_SYMBOLS
Definition:
epicsStackTrace.h:28
epicsFindAddr
int epicsFindAddr(void *addr, epicsSymbol *sym_p)
Definition:
osdFindAddr.c:20
epicsSymbol::s_nam
const char * s_nam
Definition:
epicsStackTracePvt.h:17
epicsSymbol::s_val
void * s_val
Definition:
epicsStackTracePvt.h:18
modules
libcom
src
osi
os
Darwin
osdFindAddr.c
Generated by
1.8.11