Folia
← 返回头版

C++26 标准引入新的调试头文件

C++26 标准通过 P2546R5 和 P2810R4 提案正式引入了 <debugging> 头文件,为 C++ 开发者提供了三个标准化的调试函数1。这一新增功能旨在解决多个 C++ 项目各自实现调试断点的重复问题1。

新增的三个调试函数分别为:std::breakpoint() 用于触发无条件断点,在 x86 平台上通常编译为单个 int3 指令1;std::is_debugger_present() 用于检测调试器是否已附加到进程,其返回结果不被缓存1;std::breakpoint_if_debugging() 则在调试器附加时触发断点,否则无任何操作1。

这三个函数均被定义为 noexcept 和 freestanding,不支持 constexpr 特性1。其中 std::is_debugger_present() 可被替换,采用与 operator new 和 operator delete 类似的机制1。该提案由 Rene Ferdinand Rivera Morell 提出1。


来源

  1. Hacker NewsC++26: The New Debugging Header

评论