mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 12:54:11 +08:00
Summary: #125682 (D56586844) added support for lazy symbolization to `Error` and adopted it for internal use cases; this commit adopts it for `get_backtrace()` as well. Test Plan: Sandcastle and GH CI. NOTE: This is a resubmit of D56881683, a spurious copypasted line in the Android implementation broke the build, but this was not surfaced by diff tests. Reproed the breakage with ``` $ fbpython scripts/build_android_app/build_android_app.py --buck-config-files='@//fbandroid/mode/have_libgflags @//fbandroid/mode/static_linking @//xplat/langtech/mobile/android_opt_buck_config_with_et_boltnn' --build-target='fbsource//xplat/langtech/mobile:transcribe_binAndroid-android-arm64' ``` Verified that the fixed diff builds successfully. Differential Revision: D57275456 Pull Request resolved: https://github.com/pytorch/pytorch/pull/126064 Approved by: https://github.com/ezyang
32 lines
797 B
C++
32 lines
797 B
C++
#ifndef C10_UTIL_BACKTRACE_H_
|
|
#define C10_UTIL_BACKTRACE_H_
|
|
|
|
#include <cstddef>
|
|
#include <memory>
|
|
#include <string>
|
|
#include <typeinfo>
|
|
|
|
#include <c10/macros/Macros.h>
|
|
#include <c10/util/Lazy.h>
|
|
|
|
namespace c10 {
|
|
|
|
// Symbolizing the backtrace can be expensive; pass it around as a lazy string
|
|
// so it is symbolized only if actually needed.
|
|
using Backtrace = std::shared_ptr<const LazyValue<std::string>>;
|
|
|
|
// DEPRECATED: Prefer get_lazy_backtrace().
|
|
C10_API std::string get_backtrace(
|
|
size_t frames_to_skip = 0,
|
|
size_t maximum_number_of_frames = 64,
|
|
bool skip_python_frames = true);
|
|
|
|
C10_API Backtrace get_lazy_backtrace(
|
|
size_t frames_to_skip = 0,
|
|
size_t maximum_number_of_frames = 64,
|
|
bool skip_python_frames = true);
|
|
|
|
} // namespace c10
|
|
|
|
#endif // C10_UTIL_BACKTRACE_H_
|