mirror of https://github.com/YosysHQ/yosys.git
Consolidate Linux and Mac version of YS_DEBUGTRAP_IF_DEBUGGING.
This commit is contained in:
parent
3988f935b8
commit
495dcfc812
|
@ -97,15 +97,12 @@ YOSYS_NAMESPACE_BEGIN
|
|||
// if a debugger is attached, and does nothing otherwise.
|
||||
#if defined(_WIN32)
|
||||
# define YS_DEBUGTRAP_IF_DEBUGGING do { if (IsDebuggerPresent()) DebugBreak(); } while(0)
|
||||
#elif defined(__unix__)
|
||||
# elif defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
|
||||
// There is no reliable (or portable) *nix equivalent of IsDebuggerPresent(). However,
|
||||
// debuggers will stop when SIGTRAP is raised, even if the action is set to ignore.
|
||||
# define YS_DEBUGTRAP_IF_DEBUGGING do { \
|
||||
sighandler_t old = signal(SIGTRAP, SIG_IGN); raise(SIGTRAP); signal(SIGTRAP, old); \
|
||||
auto old = signal(SIGTRAP, SIG_IGN); raise(SIGTRAP); signal(SIGTRAP, old); \
|
||||
} while(0)
|
||||
#elif defined(__APPLE__) && defined(__MACH__)
|
||||
// MacOS
|
||||
#define YS_DEBUGTRAP_IF_DEBUGGING { sig_t old = signal(SIGTRAP, SIG_IGN); raise(SIGTRAP); signal(SIGTRAP, old); }
|
||||
#else
|
||||
# define YS_DEBUGTRAP_IF_DEBUGGING do {} while(0)
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue