From 0e825504295d5dcf8982770990558779fb2117c4 Mon Sep 17 00:00:00 2001 From: Alain Dargelas Date: Thu, 5 Dec 2024 13:29:27 -0800 Subject: [PATCH] Support for backtrace --- .gitmodules | 3 +++ Makefile | 4 +++- kernel/yosys.cc | 5 ++++- libs/backward-cpp | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) create mode 160000 libs/backward-cpp diff --git a/.gitmodules b/.gitmodules index 9f3cb367a..cbbae7f31 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ [submodule "cxxopts"] path = libs/cxxopts url = https://github.com/jarro2783/cxxopts +[submodule "libs/backward-cpp"] + path = libs/backward-cpp + url = git@github.com:bombela/backward-cpp.git diff --git a/Makefile b/Makefile index eb4bae6bb..9a29b40dc 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,7 @@ SANITIZER = # SANITIZER = cfi # Prefer using ENABLE_DEBUG over setting these -OPT_LEVEL := -O3 +OPT_LEVEL := -O3 -g GCC_LTO := CLANG_LTO := -flto=thin @@ -438,6 +438,8 @@ LIBS += -ldl endif endif +LIBS += -lbfd # SILIMATE: support for backward-cpp + ifeq ($(ENABLE_GLOB),1) CXXFLAGS += -DYOSYS_ENABLE_GLOB endif diff --git a/kernel/yosys.cc b/kernel/yosys.cc index 437d67ed1..4a9db0f1d 100644 --- a/kernel/yosys.cc +++ b/kernel/yosys.cc @@ -20,6 +20,9 @@ #include "kernel/yosys.h" #include "kernel/celltypes.h" +#define BACKWARD_HAS_BFD 1 +#include "libs/backward-cpp/backward.hpp" + #ifdef YOSYS_ENABLE_READLINE # include # include @@ -548,7 +551,7 @@ void yosys_setup() if(already_setup) return; already_setup = true; - + backward::SignalHandling* sh = new backward::SignalHandling; #ifdef WITH_PYTHON // With Python 3.12, calling PyImport_AppendInittab on an already // initialized platform fails (such as when libyosys is imported diff --git a/libs/backward-cpp b/libs/backward-cpp new file mode 160000 index 000000000..51f070045 --- /dev/null +++ b/libs/backward-cpp @@ -0,0 +1 @@ +Subproject commit 51f0700452cf71c57d43c2d028277b24cde32502