diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2023-03-03 17:29:53 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-03-03 20:34:02 +0100 |
commit | 943feead3da4439db921f310ed0994f8c9fbf0f7 (patch) | |
tree | 8124337ee7f4b15f453ea1a0f7abd26bdfd4be99 /main | |
parent | f947c96ba400784090aa36c5bde469c92843083d (diff) |
main: add debug break function
Diffstat (limited to 'main')
-rw-r--r-- | main/debug-break.cpp | 18 | ||||
-rw-r--r-- | main/debug.cpp | 3 |
2 files changed, 20 insertions, 1 deletions
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 <windows.h> +#else +#include <sys/ptrace.h> +#include <signal.h> +#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, |