Namespaces
Variants

std:: breakpoint

From cppreference.net
Défini dans l'en-tête <debugging>
void breakpoint ( ) noexcept ;
(depuis C++26)

Point d'arrêt inconditionnel : Tente d'arrêter temporairement l'exécution du programme et de transférer le contrôle au débogueur, indépendamment de la possibilité de détecter la présence d'un débogueur. Le comportement de cette fonction est défini par l'implémentation.

Table des matières

Notes

L'objectif de cette fonction est de permettre un contrôle des points d'arrêt pendant l'exécution au-delà de ce qui pourrait être disponible depuis un débogueur, sans pour autant provoquer la fin du programme. Par exemple, interrompre l'exécution lorsqu'une condition non critique peu fréquente est détectée, permettre un contrôle programmatique avec des conditions complexes sensibles au runtime, interrompre sur une entrée utilisateur pour inspecter le contexte dans des programmes interactifs sans avoir à basculer vers l'application de débogage, etc.

Cette fonction normalise de nombreuses fonctionnalités similaires existantes : __builtin_debugtrap de LLVM, __debugbreak de l'API Win32, debugger_break de boost.test , assert ( false ) , _asm { int 3 } (MSVC) et asm ( "int3" ) (GCC/clang) pour les cibles x86, etc .

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_debugging 202311L (C++26) Bibliothèque de support de débogage
202403L (C++26) std::is_debugger_present remplaçable

Exemple

Voir aussi

vérifie si un programme s'exécute sous le contrôle d'un débogueur
(fonction)
appelle std::breakpoint si std::is_debugger_present retourne true
(fonction)

Liens externes

1. armKEIL : __breakpoint intrinsèque
2. Portable Snippets : Assertions de débogage et pièges
3. EASTL : EASTL_DEBUG_BREAK
4. Catch2 : CATCH_TRAP et CATCH_BREAK_INTO_DEBUGGER
5. Unreal Engine : DebugBreak
6. JUCE : JUCE_BREAK_IN_DEBUGGER
7. Dear ImGui : IM_DEBUG_BREAK
8. AWS C Common : aws_debug_break