> On 29 Aug 2025, at 15:55, Jonathan Wakely <[email protected]> wrote:
>
> On Fri, 29 Aug 2025 at 15:19, Rainer Orth <[email protected]>
> wrote:
>>
>> Hi Jonathan,
>>>
>>>> The src/c++26/debugging.cc file defines a global volatile int which can
>>>> be set by debuggers to indicate when they are attached and detached from
>>>> a running process. This allows std::is_debugger_present() to give a
>>>> reliable answer, and additionally allows a debugger to choose how
>>>> std::breakpoint() should behave. Setting the global to a positive value
>>>> will cause std::breakpoint() to use that value as an argument to
>>>> std::raise, so debuggers that prefer SIGABRT for breakpoints can select
>>>> that. By default std::breakpoint() will use a platform-specific action
>>>> such as the INT3 instruction on x86, or GCC's __builtin_trap().
>>>
>>> this patch broke Solaris/x86 bootstrap with /bin/as:
>>
>> it also broke bootstrap on macOS 11, 10.11:
>
> I'll test a patch for both issues.
r16-3446 bootstrapped OK on x86_64 macOS12, but adding the header will be
harmless there (my weekly tests across a wider range of OS versions will pick
up whatever is committed before end of Sat).
----
I will look into implementing the is_debugger_present () as per the Apple
Developer suggested mechanism (and also consider the mechanism you’ve
documented for Linux).
thanks
Iain
>> In file included from
>> /vol/gcc/src/hg/master/darwin/libstdc++-v3/src/c++26/debugging.cc:36:
>> /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/usr/include/sys/ptrace.h:99:42:
>> error: 'caddr_t' has not been declared
>> 99 | int ptrace(int _request, pid_t _pid, caddr_t _addr, int _data);
>> | ^~~
>>
>> caddr_t is defined in <sys/types.h>, and ptrace(2) documents
>>
>> SYNOPSIS
>> #include <sys/types.h>
>> #include <sys/ptrace.h>
>>
>> int
>> ptrace(int request, pid_t pid, caddr_t addr, int data);
>>
>> Rainer
>>
>> --
>> -----------------------------------------------------------------------------
>> Rainer Orth, Center for Biotechnology, Bielefeld University
>>
>