Get the latest tech news

C++26: The New Debugging Header


If you’ve ever needed to hit a breakpoint programmatically in C++, you’ve probably written something like this: 1 2 3 4 5 6 7 8 9 #if defined(_MSC_VER) __debugbreak(); #elif defined(__clang__) __builtin_debugtrap(); #elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) __asm__ volatile("int3"); #else raise(SIGTRAP); #endif Every major C++ project reinvents this wheel. Boost.Test has debugger_break(), Catch2 has CATCH_BREAK_INTO_DEBUGGER, Dear ImGui has IM_DEBUG_BREAK() and Unreal has UE_DEBUG_BREAK. The platform knowledge required is arcane but well-known to tooling implementers — it just wasn’t standardized. C++26 fixes this with P2546R5 and its companion P2810R4 thanks to Rene Ferdinand Rivera Morell. A new <debugging> header provides…

None

Get the Android app

Or read this on Hacker News

Read more on:

Photo of C++26

C++26

Photo of New Debugging Header

New Debugging Header

Related news:

News photo

C++26: Trivial infinite loops are no longer undefined behaviour

News photo

C++26: Standard Library Hardening Experiments

News photo

Improvements to Std:Format in C++26