xref: /aosp_15_r20/external/pytorch/c10/util/Backtrace.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
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