使用gdb调试C++程序时,感觉不按流程执行,跳来跳去的解决办法

时间:2022-03-26 00:10:41

在使用gdb进行调试的时候,依赖于g++的编译结果,因为在编译时默认使用了优化,所以导致没按代码顺序执行,其实只需要将g++的编译优化关掉就可以了。

 gdb调试程序的时候打印变量值会出现<value optimized out> 情况,可以在gcc编译的时候加上 -O0参数项,意思是不进行编译优化,调试的时候就会顺畅了,运行流程不会跳来跳去的,发布项目的时候记得不要在使用 -O0参数项,gcc 默认编译或加上-O2优化编译会提高程序运行速度.