Oops, I see it has macOS support too. Fine. Something for Linux would be perfect :)
On Tue, Apr 23, 2024 at 10:38 PM Alexander Dyagilev <alervd...@gmail.com> wrote: > David, thank you :) > > By the way, it would be perfect to have a cross platform code. > Windows-only one is OK for me for now, but in case I switch to Linux (or > macOS)... > > > On Tue, Apr 23, 2024 at 10:22 PM David M. Cotter <d...@kjams.com> wrote: > >> // Returns true if the current process is being debugged (either >> // running under the debugger or has a debugger attached post facto). >> bool CFDebuggerAttached() >> { >> bool debuggedB(false); >> >> #if defined(kDEBUG) || DEBUG >> #if !defined(_HELPERTOOL_)// && !_YAAF_ >> >> #if OPT_WINOS >> { >> debuggedB = IsDebuggerPresent(); >> } >> #else // OPT_MACOS >> { >> int junk; >> int mib[4]; >> struct kinfo_proc info; >> size_t size; >> >> // Initialize the flags so that, if sysctl fails for some >> bizarre >> // reason, we get a predictable result. >> >> info.kp_proc.p_flag = 0; >> >> // Initialize mib, which tells sysctl the info we want, >> in this case >> // we're looking for information about a specific process >> ID. >> >> mib[0] = CTL_KERN; >> mib[1] = KERN_PROC; >> mib[2] = KERN_PROC_PID; >> mib[3] = getpid(); >> >> // Call sysctl. >> >> size = sizeof(info); >> junk = sysctl(mib, sizeof(mib) / sizeof(*mib), &info, >> &size, NULL, 0); >> assert(junk == 0); >> >> // We're being debugged if the P_TRACED flag is set. >> >> debuggedB = ( (info.kp_proc.p_flag & P_TRACED) != 0 ); >> } >> #endif // OPT_MACOS >> #endif // !defined(_HELPERTOOL_) && !_YAAF_ >> #endif // DEBUG >> >> return debuggedB; >> } >> >> >> > On Apr 23, 2024, at 7:33 AM, Alexander Dyagilev <alervd...@gmail.com> >> wrote: >> > >> > Hello, >> > >> > Is there a simple way to detect it? >> > >> > What I would like to achieve is to perform some debug check similar to >> one Q_ASSERT does, but instead I want it to just print to console in case >> the app is NOT running under debugger and fall back to Q_ASSERT behavior >> otherwise (so I can see the stack trace then). >> > _______________________________________________ >> > Interest mailing list >> > Interest@qt-project.org >> > https://lists.qt-project.org/listinfo/interest >> >>
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest