C++ 基础调试手段
2015-09-11 00:09
211 查看
int main()
{
string str1, str2;
while(cin>>str1>>str2)
{
assert(str1 =="hello");
;
#ifndef NDEBUG
cout<<"FILE "<<__FILE__<<endl;
cout<<"LINE "<<__LINE__<<endl;
cout<<"DATE "<<__DATE__<<endl;
cout<<"TIME "<<__TIME__<<endl;
#endif // NDEBUG
}
return 0;
}
======================================================
1.
i#fndef NDEBUG
// DEBUG CODE
#endif
在release 版本中定义NDEBUG 则可以去掉debug 代码
大多数编译器都提供了-NDEBUG 选项,用于去掉debug 代码
2. (调试时)非常有用的常量:
__FILE__ 文件名
__LINE__ 当前行号
__DATE__ 文件被编译的日期
__TIME__ 文件被编译的时间
3.
#include <cassert>
assert(expr);
当expr 为假时,assert 输出信息并终止程序运行
{
string str1, str2;
while(cin>>str1>>str2)
{
assert(str1 =="hello");
;
#ifndef NDEBUG
cout<<"FILE "<<__FILE__<<endl;
cout<<"LINE "<<__LINE__<<endl;
cout<<"DATE "<<__DATE__<<endl;
cout<<"TIME "<<__TIME__<<endl;
#endif // NDEBUG
}
return 0;
}
======================================================
1.
i#fndef NDEBUG
// DEBUG CODE
#endif
在release 版本中定义NDEBUG 则可以去掉debug 代码
大多数编译器都提供了-NDEBUG 选项,用于去掉debug 代码
2. (调试时)非常有用的常量:
__FILE__ 文件名
__LINE__ 当前行号
__DATE__ 文件被编译的日期
__TIME__ 文件被编译的时间
3.
#include <cassert>
assert(expr);
当expr 为假时,assert 输出信息并终止程序运行
相关文章推荐
- C语言在文件中查找字符串是否在某行,显示行号和该行内容
- C++ 中while 比较少见的一种形式
- C++ lambda表达式
- 解决No “rule to make target `../Database/images/login.png', needed by `debug/qrc_image.cpp'. Stop.”
- C语言位运算详解
- C语言位运算详解
- C++和C代码:删除字符串中所有前导空格和所有后导空格,单词之间最多只留一个空格
- C++中值传递,地址传递,引用传递的区别
- 黑马程序员——C语言之结构体
- C++基础算法练习之排序比较
- 黑马程序员——C语言之排序方法
- C++引用浅析以及引用和指针的区别
- C++使用模板类
- 黑马程序员——C语言之指针数组和数组指针的区别
- C++的构造函数和析构函数
- Effective C++ 条款39 明智而审慎地使用private继承
- effective c++ 为多态基类声明virtual析构函数
- C++Primer第五版 2.3.2节练习
- C++学习之重载运算符1
- c++ using 关键字