std:: breakpoint
|
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
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++26)
|
prüft, ob ein Programm unter der Kontrolle eines Debuggers läuft
(Funktion) |
|
(C++26)
|
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
|