命名空间
变体
操作

std::is_debugger_present

来自 cppreference.com
< cpp‎ | utility
 
 
工具库
语言支持
类型支持 (基本类型,RTTI)
库特性测试宏 (C++20)
动态内存管理
程序工具
协程支持 (C++20)
可变参数函数
调试支持
is_debugger_present
(C++26)
(C++26)
三路比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (在 C++20 中已弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
通用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
基本字符串转换
(C++17)
(C++17)

 
在头文件 <debugging> 中定义
bool is_debugger_present() noexcept;
(自 C++26 起)

尝试确定程序是否在调试器存在的情况下执行。

默认情况下,此函数的行为完全由实现定义。C++ 程序可以提供此签名的定义来替换此函数的行为。

内容

[编辑] 返回值

默认版本返回 true,如果根据其了解,程序是在调试器下执行的。

[编辑] 备注

此函数的目的是允许打印额外的输出以帮助诊断问题、执行额外的测试代码、显示额外的用户界面以帮助调试等。

此函数标准化了许多类似的现有设施:under_debugger 来自 boost.testIsDebuggerPresent() 来自 Win32 API,isDebuggerActive 来自 Catch2IsDebuggerPresent 来自 虚幻引擎 等。

特性测试 Std 特性
__cpp_lib_debugging 202311L (C++26) 调试支持库
202403L (C++26) 可替换的 std::is_debugger_present

[编辑] 示例

[编辑] 另请参阅

调用时暂停正在运行的程序
(函数) [编辑]
如果 std::is_debugger_present 返回 true,则调用 std::breakpoint
(函数) [编辑]