35# define MYWRITELIT(fd,str) MYWRITE(fd,str,sizeof(str)-1)
41 Athena::DebugAids::stacktraceLine (fd, addr);
64 typedef int (*get_last_trace_fn) (
int max_depth,
void* trace[]);
65 get_last_trace_fn get_last_trace = (get_last_trace_fn) dlsym (RTLD_DEFAULT,
"exctrace_get_last_trace");
69 MYWRITE(fd, e.what(), strlen (e.what()));
73 int depth = get_last_trace (std::end(trace)-std::begin(trace), trace);
77 for (
int i = 1; i <
depth; ++i) {
79 reinterpret_cast<unsigned long> (trace[i]);
96 MYWRITELIT(fd,
" (no backtrace available).\n");
#define IOFD_INVALID
Invalid channel descriptor constant.
int IOFD
Type the system uses for channel descriptors.
#define MYWRITE(fd, data, n)
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
#define ATLAS_THREAD_SAFE
static IOFD stacktraceFd(IOFD fd=IOFD_INVALID)
Set and return the file descriptor for stack trace output.
#define MYWRITELIT(fd, str)
Generate stack trace backs from a caught exception.
std::string depth
tag string for intendation
void exctrace(const std::exception &e, IOFD fd=IOFD_INVALID)
Print out information for the last exception.