- added windows versions of osdBackTrace.c, osdFindAddr.c; the latter
does not implement addr->symbol conversion yet.
This commit is contained in:
24
src/libCom/osi/os/WIN32/osdBackTrace.c
Normal file
24
src/libCom/osi/os/WIN32/osdBackTrace.c
Normal file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright: Stanford University / SLAC National Laboratory.
|
||||
*
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
*
|
||||
* Author: Till Straumann <strauman@slac.stanford.edu>, 2011
|
||||
*/
|
||||
|
||||
#include <Windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "epicsStackTracePvt.h"
|
||||
|
||||
int epicsBackTrace(void **buf, int buf_sz)
|
||||
{
|
||||
/* Docs say that (for some windows versions) the sum of
|
||||
* skipped + captured frames must be less than 63
|
||||
*/
|
||||
if ( buf_sz >= 63 )
|
||||
buf_sz = 62;
|
||||
return CaptureStackBackTrace(0, buf_sz, buf, 0);
|
||||
}
|
||||
31
src/libCom/osi/os/WIN32/osdFindAddr.c
Normal file
31
src/libCom/osi/os/WIN32/osdFindAddr.c
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright: Stanford University / SLAC National Laboratory.
|
||||
*
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
*
|
||||
* Author: Till Straumann <strauman@slac.stanford.edu>, 2011
|
||||
*/
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "epicsStackTracePvt.h"
|
||||
#include "epicsStackTrace.h"
|
||||
|
||||
int epicsFindAddr(void *addr, epicsSymbol *sym_p)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
int epicsStackTraceGetFeatures(void)
|
||||
{
|
||||
void *test[10];
|
||||
|
||||
/* If frame-pointer optimization is on then CaptureStackBackTrace
|
||||
* does not work. Make sure all EPICS is built with -Oy-
|
||||
*/
|
||||
if ( 0 == epicsBackTrace(test, sizeof(test)/sizeof(test[0])) )
|
||||
return 0;
|
||||
|
||||
/* address->symbol conversion not implemented (yet) */
|
||||
return EPICS_STACKTRACE_ADDRESSES;
|
||||
}
|
||||
Reference in New Issue
Block a user