Namespaces
Variants

std:: breakpoint

From ko.cppreference.net
헤더 파일에 정의됨 <debugging>
void breakpoint ( ) noexcept ;
(C++26부터)

무조건적 중단점: 디버거의 존재 여부를 감지할 수 있는지와 관계없이 프로그램 실행을 일시적으로 중지하고 제어를 디버거에 전달하려고 시도합니다. 이 함수의 동작은 구현에 따라 정의됩니다.

목차

참고

이 함수의 의도는 프로그램을 종료시키지 않으면서 디버거가 제공할 수 있는 것 이상의 중단점에 대한 런타임 제어를 가능하게 하는 것입니다. 예를 들어, 드물게 발생하는 중요하지 않은 조건이 감지되었을 때 중단하거나, 복잡한 런타임 민감 조건을 사용한 프로그램적 제어를 가능하게 하거나, 대화형 프로그램에서 디버거 애플리케이션으로 전환할 필요 없이 사용자 입력 시 중단하여 컨텍스트를 검사하는 등의 용도로 사용됩니다.

이 함수는 많은 유사한 기존 기능들을 표준화합니다: __builtin_debugtrap (LLVM), DebugBreak() (Win32 API), __debugbreak (Microsoft 특정 C/C++ 확장), debugger_break (boost.test), assert(false), _asm { int 3 } (MSVC) 및 asm("int3") (GCC/clang, x86 대상), 등.

기능-테스트 매크로 값 표준 기능
__cpp_lib_debugging 202311L (C++26) 디버깅 지원 라이브러리
202403L (C++26) 교체 가능한 std::is_debugger_present

예제

참고 항목

프로그램이 디버거 제어 하에 실행 중인지 확인합니다
(function)
std::is_debugger_present 가 true 를 반환할 경우 std::breakpoint 를 호출합니다
(function)

외부 링크

1. armKEIL: __breakpoint 인트린직
2. Portable Snippets: 디버깅 어써션 및 트랩
3. EASTL: EASTL_DEBUG_BREAK
4. Catch2: CATCH_TRAP 및 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