HeadlinesBriefing HeadlinesBriefing.com

C++26 Ajoute un En-tête Standard <debugging> pour les Points d'arrêt

Hacker News •
×

C++26 introduit un en-tête standard <debugging> comportant trois fonctions noexcept : std::breakpoint(), std::is_debugger_present() et std::breakpoint_if_debugging(). Cela supprime le besoin de macros spécifiques à la plateforme comme __debugbreak() ou l'assemblage inline. L'en-tête est freestanding et remplaçable, permettant des implémentations personnalisées sur des systèmes nus. std::breakpoint() déclenche une pause du débogueur si attaché, sinon son comportement est défini par l'implémentation (par exemple, SIGTRAP). std::is_debugger_present() vérifie la présence active d'un débogueur en temps réel, avec des implémentations spécifiques à la plateforme (par exemple, API Windows ou /proc/self/status sous Linux).

Son remplaçabilité permet son utilisation dans des environnements freestanding. std::breakpoint_if_debugging() combine les deux pour des points d'arrêt conditionnels, reproduisant des schémas utilisés dans Boost. Test, Catch2, Dear ImGui et Unreal Engine. La caractéristique standardise une longue réinvention de la roue dans les projets C++, simplifiant les outils de débogage multiplateforme.

Source: Hacker News · Résumé par HeadlinesBriefing