1*da0073e9SAndroid Build Coastguard Worker #ifndef C10_UTIL_BACKTRACE_H_ 2*da0073e9SAndroid Build Coastguard Worker #define C10_UTIL_BACKTRACE_H_ 3*da0073e9SAndroid Build Coastguard Worker 4*da0073e9SAndroid Build Coastguard Worker #include <cstddef> 5*da0073e9SAndroid Build Coastguard Worker #include <memory> 6*da0073e9SAndroid Build Coastguard Worker #include <string> 7*da0073e9SAndroid Build Coastguard Worker #include <typeinfo> 8*da0073e9SAndroid Build Coastguard Worker 9*da0073e9SAndroid Build Coastguard Worker #include <c10/macros/Macros.h> 10*da0073e9SAndroid Build Coastguard Worker #include <c10/util/Lazy.h> 11*da0073e9SAndroid Build Coastguard Worker 12*da0073e9SAndroid Build Coastguard Worker namespace c10 { 13*da0073e9SAndroid Build Coastguard Worker 14*da0073e9SAndroid Build Coastguard Worker // Symbolizing the backtrace can be expensive; pass it around as a lazy string 15*da0073e9SAndroid Build Coastguard Worker // so it is symbolized only if actually needed. 16*da0073e9SAndroid Build Coastguard Worker using Backtrace = std::shared_ptr<const LazyValue<std::string>>; 17*da0073e9SAndroid Build Coastguard Worker 18*da0073e9SAndroid Build Coastguard Worker // DEPRECATED: Prefer get_lazy_backtrace(). 19*da0073e9SAndroid Build Coastguard Worker C10_API std::string get_backtrace( 20*da0073e9SAndroid Build Coastguard Worker size_t frames_to_skip = 0, 21*da0073e9SAndroid Build Coastguard Worker size_t maximum_number_of_frames = 64, 22*da0073e9SAndroid Build Coastguard Worker bool skip_python_frames = true); 23*da0073e9SAndroid Build Coastguard Worker 24*da0073e9SAndroid Build Coastguard Worker C10_API Backtrace get_lazy_backtrace( 25*da0073e9SAndroid Build Coastguard Worker size_t frames_to_skip = 0, 26*da0073e9SAndroid Build Coastguard Worker size_t maximum_number_of_frames = 64, 27*da0073e9SAndroid Build Coastguard Worker bool skip_python_frames = true); 28*da0073e9SAndroid Build Coastguard Worker 29*da0073e9SAndroid Build Coastguard Worker } // namespace c10 30*da0073e9SAndroid Build Coastguard Worker 31*da0073e9SAndroid Build Coastguard Worker #endif // C10_UTIL_BACKTRACE_H_ 32