HeadlinesBriefing HeadlinesBriefing.com

C++26 Añade Encabezado Estándar <debugging> para Puntos de Interrupción

Hacker News •
×

C++26 introduce un encabezado estándar <debugging> con tres funciones noexcept: std::breakpoint(), std::is_debugger_present() y std::breakpoint_if_debugging(). Esto elimina la necesidad de macros específicos de la plataforma como __debugbreak() o ensamblaje en línea. El encabezado es freestanding y reemplazable, lo que permite implementaciones personalizadas en sistemas desnudos. std::breakpoint() activa la pausa del depurador si está adjunto, de lo contrario su comportamiento está definido por la implementación (por ejemplo, SIGTRAP). std::is_debugger_present() verifica la adjuntura activa del depurador en tiempo real, con implementaciones específicas de la plataforma (por ejemplo, API de Windows o /proc/self/status en Linux).

Su reemplazabilidad permite su uso en entornos freestanding. std::breakpoint_if_debugging() combina ambas funciones para puntos de interrupción condicionales, imitando Boost. Test, Catch2, Dear ImGui y Unreal Engine. La característica estandariza una larga reinvención de ruedas en proyectos C++, simplificando las herramientas de depuración multiplataforma.

Fuente: Hacker News · Resumido por HeadlinesBriefing