From 943feead3da4439db921f310ed0994f8c9fbf0f7 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 3 Mar 2023 17:29:53 +0100 Subject: main: add debug break function --- main/debug-break.cpp | 18 ++++++++++++++++++ main/debug.cpp | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 main/debug-break.cpp (limited to 'main') diff --git a/main/debug-break.cpp b/main/debug-break.cpp new file mode 100644 index 00000000..218dbe41 --- /dev/null +++ b/main/debug-break.cpp @@ -0,0 +1,18 @@ +#include "floormat/main.hpp" +#ifdef _WIN32 +#include +#else +#include +#include +#endif + +void floormat::floormat_main::debug_break() +{ +#ifdef _WIN32 + if (IsDebuggerPresent()) [[unlikely]] + DebugBreak(); +#else + if (ptrace(PTRACE_TRACEME, 0, 1, 0) == -1) + ::raise(SIGUSR1); +#endif +} diff --git a/main/debug.cpp b/main/debug.cpp index 70a1b1e8..3f5a7b16 100644 --- a/main/debug.cpp +++ b/main/debug.cpp @@ -48,7 +48,8 @@ void main_impl::debug_callback(unsigned src, unsigned type, unsigned id, unsigne std::abort(); #endif - std::fputs("", stdout); // put breakpoint here + debug_break(); + //std::fputs("", stdout); // put breakpoint here } static void _debug_callback(GL::DebugOutput::Source src, GL::DebugOutput::Type type, UnsignedInt id, -- cgit v1.2.3