1 #ifndef _TRACE_BACKTRACE_HPP_
2 #define _TRACE_BACKTRACE_HPP_
6 #include "trace_model.hpp"
11 struct RawStackFrame {
27 #if defined(ANDROID) or defined(__linux__)
29 std::vector<RawStackFrame> get_backtrace();
30 bool backtrace_is_needed(const char* fname);
34 #define MAX_BT_FUNC 20
35 #define PREFIX_MAX_FUNC_NAME 100
36 #define APITRACE_FNAMES_FILE "/data/apitrace.fnames"
37 #define APITRACE_FNAMES_SOURCE APITRACE_FNAMES_FILE
39 #elif defined(__linux__)
41 #define MAX_BT_FUNC 20
42 #define PREFIX_MAX_FUNC_NAME 100
43 #define APITRACE_FNAMES_ENV "APITRACE_BT_FUNCTIONS"
44 #define APITRACE_FNAMES_SOURCE APITRACE_FNAMES_ENV
48 #else /* !__linux__ && !ANDROID */
50 static inline std::vector<StackFrame> get_backtrace() {
51 return std::vector<StackFrame>();
54 static inline bool backtrace_is_needed(const char*) {
60 } /* namespace trace */