使用gdb调试C++程序时,感觉不按流程执行,跳来跳去的解决办法
2015-06-09 11:03
791 查看
在使用gdb进行调试的时候,依赖于g++的编译结果,因为在编译时默认使用了优化,所以导致没按代码顺序执行,其实只需要将g++的编译优化关掉就可以了。
gdb调试程序的时候打印变量值会出现<value optimized out> 情况,可以在gcc编译的时候加上 -O0参数项,意思是不进行编译优化,调试的时候就会顺畅了,运行流程不会跳来跳去的,发布项目的时候记得不要在使用
-O0参数项,gcc 默认编译或加上-O2优化编译会提高程序运行速度.
gdb调试程序的时候打印变量值会出现<value optimized out> 情况,可以在gcc编译的时候加上 -O0参数项,意思是不进行编译优化,调试的时候就会顺畅了,运行流程不会跳来跳去的,发布项目的时候记得不要在使用
-O0参数项,gcc 默认编译或加上-O2优化编译会提高程序运行速度.
相关文章推荐
- C++模板
- C++入门程序作业2
- C++的开源跨平台日志库glog学习研究(二)--宏的使用
- c++ assert() 使用方法
- C++入门程序作业1
- C++ map使用(基于hashtable)
- C++ 容器及选用总结
- C++ map使用(基于RBTree)
- C++ Primer 学习笔记_Chapter4 数组和指针–指针
- C语言之忽略SIGPIPE信号
- C++Primer笔记
- C++ 中的map
- C++ STL之set详解
- [C++] string与int, float, double相互转换
- 文件的读写操作2
- 两个类之间的消息机制
- C如何使用固定地址来访问函数
- [转载] C++ STL string的Copy-On-Write技术
- 变量指针总结,堆栈
- C++ 多态的一些理解