pytorch
1#include <torch/csrc/utils/cpp_stacktraces.h>
2
3#include <cstdlib>
4#include <cstring>
5
6#include <c10/util/Exception.h>
7
8namespace torch {
9namespace {
10bool compute_cpp_stack_traces_enabled() {
11auto envar = std::getenv("TORCH_SHOW_CPP_STACKTRACES");
12if (envar) {
13if (strcmp(envar, "0") == 0) {
14return false;
15}
16if (strcmp(envar, "1") == 0) {
17return true;
18}
19TORCH_WARN(
20"ignoring invalid value for TORCH_SHOW_CPP_STACKTRACES: ",
21envar,
22" valid values are 0 or 1.");
23}
24return false;
25}
26
27bool compute_disable_addr2line() {
28auto envar = std::getenv("TORCH_DISABLE_ADDR2LINE");
29if (envar) {
30if (strcmp(envar, "0") == 0) {
31return false;
32}
33if (strcmp(envar, "1") == 0) {
34return true;
35}
36TORCH_WARN(
37"ignoring invalid value for TORCH_DISABLE_ADDR2LINE: ",
38envar,
39" valid values are 0 or 1.");
40}
41return false;
42}
43} // namespace
44
45bool get_cpp_stacktraces_enabled() {
46static bool enabled = compute_cpp_stack_traces_enabled();
47return enabled;
48}
49
50bool get_disable_addr2line() {
51static bool disabled = compute_disable_addr2line();
52return disabled;
53}
54
55} // namespace torch
56