Namespaces
Variants

std:: breakpoint

From cppreference.net
Definiert im Header <debugging>
void breakpoint ( ) noexcept ;
(seit C++26)

Unbedingter Haltepunkt: Versucht, die Programmausführung vorübergehend anzuhalten und die Kontrolle an den Debugger zu übergeben, unabhängig davon, ob die Anwesenheit eines Debuggers festgestellt werden kann. Das Verhalten dieser Funktion ist implementierungsdefiniert.

Inhaltsverzeichnis

Hinweise

Die Absicht dieser Funktion ist es, eine Laufzeitkontrolle von Haltepunkten zu ermöglichen, die über das hinausgeht, was von einem Debugger verfügbar sein könnte, ohne dabei das Programm zu beenden. Zum Beispiel: Anhalten, wenn eine seltene, nicht-kritische Bedingung erkannt wird; Ermöglichen von programmatischer Kontrolle mit komplexen laufzeitsensitiven Bedingungen; Anhalten bei Benutzereingabe, um den Kontext in interaktiven Programmen zu untersuchen, ohne zur Debugger-Anwendung wechseln zu müssen, usw.

Diese Funktion standardisiert viele ähnliche bestehende Funktionen: __builtin_debugtrap von LLVM, __debugbreak aus der Win32 API, debugger_break von boost.test , assert ( false ) , _asm { int 3 } (MSVC) und asm ( "int3" ) (GCC/clang) für x86-Ziele, etc .

Feature-Test Makro Wert Std Funktion
__cpp_lib_debugging 202311L (C++26) Debugging-Unterstützungsbibliothek
202403L (C++26) Ersetzbar std::is_debugger_present

Beispiel

Siehe auch

prüft, ob ein Programm unter der Kontrolle eines Debuggers läuft
(Funktion)
ruft std::breakpoint auf, falls std::is_debugger_present true zurückgibt
(Funktion)

Externe Links

1. armKEIL: __breakpoint Intrinsic
2. Portable Snippets: Debugging-Assertions und Traps
3. EASTL: EASTL_DEBUG_BREAK
4. Catch2: CATCH_TRAP und 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