From 71f93d3c12f9fa1902f7ae89a008752f71ecbd1b Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 11 Feb 2025 10:22:45 -0700 Subject: [PATCH] provide a stacktrace function callable directly from C (libpbd_c_stacktrace()) --- libs/pbd/pbd/stacktrace.h | 2 ++ libs/pbd/stacktrace.cc | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/libs/pbd/pbd/stacktrace.h b/libs/pbd/pbd/stacktrace.h index 94afb60636..9ea89f5b30 100644 --- a/libs/pbd/pbd/stacktrace.h +++ b/libs/pbd/pbd/stacktrace.h @@ -38,6 +38,8 @@ #include "pbd/libpbd_visibility.h" +extern "C" { void libpbd_c_stacktrace (int levels); } + namespace PBD { LIBPBD_API void stacktrace (std::ostream& out, int levels = 0, size_t start_level = 0); diff --git a/libs/pbd/stacktrace.cc b/libs/pbd/stacktrace.cc index a2146d3afe..8b3cab2c38 100644 --- a/libs/pbd/stacktrace.cc +++ b/libs/pbd/stacktrace.cc @@ -131,3 +131,13 @@ PBD::stacktrace (std::ostream& out, int, size_t) } #endif + +extern "C" { + +void +libpbd_c_stacktrace (int levels) +{ + PBD::stacktrace (std::cerr, levels); +} + +}