c++ - 什么是 Debug模式 w.r.t C++?

标签 c++ debugging

来自这里:http://google-glog.googlecode.com/svn/trunk/doc/glog.html

Debug Mode Support
Special "debug mode" logging macros only have an effect in debug mode and are compiled away to nothing for non-debug mode compiles.

对于 C++ 程序,“ Debug模式”是什么意思?

当我们在一个程序上使用 GDB 时,我们可以说它处于 Debug模式吗?

最佳答案

“ Debug模式”有三个方面。

许多库(包括标准库)在 Debug模式下编译时会插入调试帮助代码(数组边界检查、不变断言等)。他们在生产/非 Debug模式下删除了这些检查以提高性能。

编译器有调试开关。库使用的设置调试宏来检测您是否正在为调试进行编译,并在生成的二进制文件中插入调试符号。这有助于调试器在正在运行的二进制代码和生成它的源代码之间建立链接。

在调试器中运行程序是一种“运行时 Debug模式”。您可以在调试器中运行可执行文件,无论它是否是为调试而构建的。您将通过调试版本获得更多信息。

所有这三种“ Debug模式”都是独立的。您(通常)可以通过手动设置适当的宏/定义来编译生产版本中的库调试检查,而无需要求编译器输出调试符号。

这些都不是特定于 C++(或 C)的。许多其他语言都有这些概念。

关于c++ - 什么是 Debug模式 w.r.t C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494969/

相关文章:

java - 使用 Eclipse 从 Python 或 Java 调用 C++ 库

c++ - undefined symbol : __gnat_rcheck_CE_Invalid_Data when linking ADA with C++

C++ 将文件读入数组/列表/vector

c++ - 使用 gcc 原子内置函数的原子交换函数

JavaScript 评估方法

xcode - 使用 Xcode 同时测试多个设备(iPhone/iPad)的控制台输出

c++ - 隐式生成 move 构造函数

debugging - Ollydbg 1.10 "Back to user mode"不起作用

php - 获取正在运行或挂起的 PHP 脚本的堆栈跟踪

debugging - 通过 gdb 用户定义的命令返回一个值