mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-23 11:43:29 +01:00
For macOS builds, disable isDebuggerActive() for non-AppleClang targets. Fixes #1588
This commit is contained in:
parent
edde6f4736
commit
5ce355a38c
@ -18,19 +18,23 @@
|
|||||||
# include <stdbool.h>
|
# include <stdbool.h>
|
||||||
# include <sys/types.h>
|
# include <sys/types.h>
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
# include <sys/sysctl.h>
|
|
||||||
# include <cstddef>
|
# include <cstddef>
|
||||||
# include <ostream>
|
# include <ostream>
|
||||||
|
|
||||||
namespace Catch {
|
#ifdef __apple_build_version__
|
||||||
|
// These headers will only compile with AppleClang (XCode)
|
||||||
|
// For other compilers (Clang, GCC, ... ) we need to exclude them
|
||||||
|
# include <sys/sysctl.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Catch {
|
||||||
|
#ifdef __apple_build_version__
|
||||||
// The following function is taken directly from the following technical note:
|
// The following function is taken directly from the following technical note:
|
||||||
// http://developer.apple.com/library/mac/#qa/qa2004/qa1361.html
|
// https://developer.apple.com/library/archive/qa/qa1361/_index.html
|
||||||
|
|
||||||
// Returns true if the current process is being debugged (either
|
// Returns true if the current process is being debugged (either
|
||||||
// running under the debugger or has a debugger attached post facto).
|
// running under the debugger or has a debugger attached post facto).
|
||||||
bool isDebuggerActive(){
|
bool isDebuggerActive(){
|
||||||
|
|
||||||
int mib[4];
|
int mib[4];
|
||||||
struct kinfo_proc info;
|
struct kinfo_proc info;
|
||||||
std::size_t size;
|
std::size_t size;
|
||||||
@ -60,6 +64,12 @@ namespace Catch {
|
|||||||
|
|
||||||
return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
|
return ( (info.kp_proc.p_flag & P_TRACED) != 0 );
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
bool isDebuggerActive() {
|
||||||
|
// We need to find another way to determine this for non-appleclang compilers on macOS
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
} // namespace Catch
|
} // namespace Catch
|
||||||
|
|
||||||
#elif defined(CATCH_PLATFORM_LINUX)
|
#elif defined(CATCH_PLATFORM_LINUX)
|
||||||
|
Loading…
Reference in New Issue
Block a user