Namespaces
Variants

std:: breakpoint

From es.cppreference.net
Definido en el encabezado <debugging>
void breakpoint ( ) noexcept ;
(desde C++26)

Punto de interrupción incondicional: Intenta detener temporalmente la ejecución del programa y pasar el control al depurador, independientemente de si se puede detectar la presencia de un depurador. El comportamiento de esta función está definido por la implementación.

Contenido

Notas

La intención de esta función es permitir el control en tiempo de ejecución de los puntos de interrupción más allá de lo que pueda estar disponible en un depurador, sin que el programa termine. Por ejemplo, interrumpir cuando se detecta una condición no crítica poco frecuente, permitir el control programático con condiciones complejas sensibles al tiempo de ejecución, interrumpir en la entrada del usuario para inspeccionar el contexto en programas interactivos sin necesidad de cambiar a la aplicación del depurador, etc.

Esta función estandariza muchas facilidades existentes similares: __builtin_debugtrap de LLVM, DebugBreak() de la API Win32, __debugbreak Extensión específica de Microsoft C/C++, debugger_break de boost.test, assert(false), _asm { int 3 } (MSVC) y asm("int3") (GCC/clang) para objetivos x86, etc.

Macro de prueba de funcionalidad Valor Estándar Funcionalidad
__cpp_lib_debugging 202311L (C++26) Biblioteca de soporte de depuración
202403L (C++26) Reemplazable std::is_debugger_present

Ejemplo

Véase también

verifica si un programa se está ejecutando bajo el control de un depurador
(función)
llama a std::breakpoint si std::is_debugger_present devuelve true
(función)

Enlaces externos

1. armKEIL: __breakpoint intrínseco
2. Portable Snippets: Aserciones de depuración y traps
3. EASTL: EASTL_DEBUG_BREAK
4. Catch2: CATCH_TRAP y 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