[PATCH] libstdc++: Implement C++26 <debugging> features (P2546R5)
Florian Weimer
fweimer@redhat.com
Mon Jun 3 10:20:07 GMT 2024
* Jonathan Wakely:
> +/** Stop the program with a breakpoint or debug trap.
> + *
> + * The details of how a breakpoint is implemented are platform-specific.
> + * Some systems provide a special instruction, such as `int3` in x86.
> + * When no more appropriate mechanism is available, this will stop the
> + * program using `__builtin_trap()`. It might not be possible for the
> + * program to continue after such a breakpoint.
> + *
> + * @since C++26
> + */
> +void
> +breakpoint() noexcept;
Would it make sense to have a special function symbol for this, on which
the debugger sets the breakpoint? We already have this for a slightly
different purpose in glibc, see _dl_debug_state.
Otherwise you'll get crashes if the debugger detection delivers a false
positive (e.g. when running under an strace-equivalent if libstdc++
cannot check the process name).
Or is_debugger_present should perhaps read a volatile bool that is
updated by the debugger as needed, and not bother with any ptrace
checks.
Thanks,
Florian
More information about the Libstdc++
mailing list