Do not create deep backtraces unless in ENABLE_DEBUG mode
authorClifford Wolf <clifford@clifford.at>
Sat, 3 Feb 2018 14:04:39 +0000 (15:04 +0100)
committerClifford Wolf <clifford@clifford.at>
Sat, 3 Feb 2018 14:04:39 +0000 (15:04 +0100)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Makefile
kernel/log.cc

index dcc8be3eb5208152bdd767b4e3a91455a6000fda..39e173a26b7a29004fa0fc1b8dfc2cbc1d220a9b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -264,9 +264,9 @@ endif
 
 ifeq ($(ENABLE_DEBUG),1)
 ifeq ($(CONFIG),clang)
-CXXFLAGS := -O0 $(filter-out -Os,$(CXXFLAGS))
+CXXFLAGS := -O0 -DDEBUG $(filter-out -Os,$(CXXFLAGS))
 else
-CXXFLAGS := -Og $(filter-out -Os,$(CXXFLAGS))
+CXXFLAGS := -Og -DDEBUG $(filter-out -Os,$(CXXFLAGS))
 endif
 endif
 
index 7be95204be1c970e2d4d30069245fe8e01bd0f62..8b12008bc77dd63bcc6a023a8709737853dcabfe 100644 (file)
@@ -375,6 +375,9 @@ void log_backtrace(const char *prefix, int levels)
 
        if (levels <= 1) return;
 
+#ifndef DEBUG
+       log("%sframe #2: [build Yosys with ENABLE_DEBUG for deeper backtraces]\n", prefix);
+#else
        if ((p = __builtin_extract_return_addr(__builtin_return_address(1))) && dladdr(p, &dli)) {
                log("%sframe #2: %p %s(%p) %s(%p)\n", prefix, p, dli.dli_fname, dli.dli_fbase, dli.dli_sname, dli.dli_saddr);
        } else {
@@ -446,6 +449,7 @@ void log_backtrace(const char *prefix, int levels)
        }
 
        if (levels <= 9) return;
+#endif
 }
 #else
 void log_backtrace(const char*, int) { }