C++ 编译器code::blocks 如何debug
2014-07-24 21:32
1411 查看
首先, 打开code::blocks出现如下:
![](http://img.blog.csdn.net/20140724203900180?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
上述的视图效果是已经调好的。 没有调好的时候, 我们可以通过工具栏上的view添加调整, 具体位置如下:
![](http://img.blog.csdn.net/20140724203911921?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
为了说明如何去调试一个程序, 下面举一个例子:
(1)创建一个公正, 工程中会默认带一个hello world的一个主程序。
(2)将main函数中不用的程序块全部注释掉: 方法是选中需要注释的程序块, 在edit 下找到comment, 点击即可:
![](http://img.blog.csdn.net/20140724204910547?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
点击完成后, 效果如下, 可见选中的程序都被注释掉了:
![](http://img.blog.csdn.net/20140724205037236?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
言归正传, 接下来下一段代码, 演示如何去调试, 注意调试的窗口在下图位置:
![](http://img.blog.csdn.net/20140724205241256?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
编写的程序如下:
(3)调试程序的第一步就是设置断点(break point), 设置完断点之后, 我们运行到断点处, 一步一步的运行, 以便跟踪各个变量的实际情况, 以及程序运行的流程:
我们将断点设置在8处, 如下:
![](http://img.blog.csdn.net/20140724205834828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
接下来, 就可以debug 了:
点击如下:
![](http://img.blog.csdn.net/20140724211019188?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
程序会在断点处(第八行不会运行)停下来:
![](http://img.blog.csdn.net/20140724211127703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
接下里, 我们一行一行的运行, 首先运行第八行(debuger 里面最后一行显示的是要运行的下一条语句), 可以点击step into(或者快捷键shift + F7):
![](http://img.blog.csdn.net/20140724211321271?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20140724211555041?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
运行效果如下:
![](http://img.blog.csdn.net/20140724211437953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注意, 此时不能再终端中输入一个数字。 必须先运行第9行,才能。 再次点击step into, 运动第9行:
![](http://img.blog.csdn.net/20140724212451604?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
点击Enter , 接收输入, 进入下一条语句:
![](http://img.blog.csdn.net/20140724212612084?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
再一次点击step into, 运行下一行:
![](http://img.blog.csdn.net/20140724212808866?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
依次类推, 最终:
![](http://img.blog.csdn.net/20140724212922482?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
上述只是单步执行的运行效果。 我们还可以查看运行到每一步的时候, 对应的局部变量, 函数参数等等的变化情况。 打开warches 可以查看:
![](http://img.blog.csdn.net/20140724213124927?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
由上图可知, 还可以查看函数调用情况, 内存情况, 寄存器的使用情况等等:
![](http://img.blog.csdn.net/20140724213323534?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTEzMDczNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
附: watches等窗口还可以用过如下方式打开:
上述的视图效果是已经调好的。 没有调好的时候, 我们可以通过工具栏上的view添加调整, 具体位置如下:
为了说明如何去调试一个程序, 下面举一个例子:
(1)创建一个公正, 工程中会默认带一个hello world的一个主程序。
(2)将main函数中不用的程序块全部注释掉: 方法是选中需要注释的程序块, 在edit 下找到comment, 点击即可:
点击完成后, 效果如下, 可见选中的程序都被注释掉了:
言归正传, 接下来下一段代码, 演示如何去调试, 注意调试的窗口在下图位置:
编写的程序如下:
#include <iostream> using namespace std; int main() { int x, y, z; cout << "Enter first number: "; cin >> x; cout << endl; cout << "Enter second number: "; cin >> y; cout << endl; cout << "The sum: "; z = x + y; cout << z; // cout << "Hello world!" << endl; // cout << "easy way to comment block of code"; return 0; }
(3)调试程序的第一步就是设置断点(break point), 设置完断点之后, 我们运行到断点处, 一步一步的运行, 以便跟踪各个变量的实际情况, 以及程序运行的流程:
我们将断点设置在8处, 如下:
接下来, 就可以debug 了:
点击如下:
程序会在断点处(第八行不会运行)停下来:
接下里, 我们一行一行的运行, 首先运行第八行(debuger 里面最后一行显示的是要运行的下一条语句), 可以点击step into(或者快捷键shift + F7):
运行效果如下:
注意, 此时不能再终端中输入一个数字。 必须先运行第9行,才能。 再次点击step into, 运动第9行:
点击Enter , 接收输入, 进入下一条语句:
再一次点击step into, 运行下一行:
依次类推, 最终:
上述只是单步执行的运行效果。 我们还可以查看运行到每一步的时候, 对应的局部变量, 函数参数等等的变化情况。 打开warches 可以查看:
由上图可知, 还可以查看函数调用情况, 内存情况, 寄存器的使用情况等等:
附: watches等窗口还可以用过如下方式打开:
相关文章推荐
- c++编译器Code::Blocks安装(Linux)
- 更换编译器,CODE::BLOCKS 无法DEBUG 至断点
- codeblocks如何设置编译器
- codeblocks+wxwidgets+boost搭建c++开发平台步骤||如何在CodeBlock中添加boost库文件
- Code::Blocks编译器如何查看C代码的汇编代码
- 如何用CodeBlocks分多个文件编写一个C++程序
- 设定C和C++ CodeBlocks编译器的初学者教学指南
- codeblocks(IDE/C++集成编辑环境最新汉化版)
- DOS下如何使用c/c++的编译器
- 开源的c++开发软件Code::Blocks
- C/C++集成设计环境—Code::Blocks安装及使用
- Felomeng:windows下配置Code::Blocks和wxWidgets(C++的免费图形界面IDE)
- 如何在code::blocks 中调试带参数的程序
- Code::Blocks IDE - Open Source, Cross-platform Free C++ IDE
- Code::Blocks:如何使用每晚编译版
- Code::Blocks 满足你任何苛刻的要求的C/C++ IDE
- Code::Blocks 如何设置自动提示功能?
- C/C++编程环境“Code::Blocks”免费开源, 跨平台自由C++ IDE 。
- 用 Code:Blocks、MinGW 和 wxWidgets 搭建 C++ 开发环境
- 辅助-Code::Blocks如何设置热键动画教程