特别声明:本教程已转移至百度经验:https://jingyan.baidu.com/article/6b182309939a87ba58e159bf.html

一、题外话

之前一直想用Code blocks调试程序,但是,尽管看了网上的各种教程,也照着做,但点着点着就发现和参考教程上的不一样了,然后出不来结果。于是屡试屡败。今天,又按照之前的做法(都记住步骤了,就知道我尝试过多少次了......)操作了一遍,竟然成功了。于是,基于已知的操作和网上搜索的结果,我初步掌握了如何使用这个调试工具,这里记下来,和每一位有需要的同行共享。

二、说明

本教程只限于使用Code blocks IDE编写“程序设计(ACM-ICPC等)”、“小游戏”等小程序。如果是要调试大的Project,烦请另请高明。

二、操作步骤

1、新建控制台程序(必须这么做。如果是先在文件系统中新建c/cpp文件,再用Code blocks打开的,那么就把待调试的程序代码复制到新建工程的main.cpp中。),命名为:debug4all(当然,名字可以任取。但是为了方便记忆,下次我们也用这个工程来debug其他程序嘛。)已经是工程的直接调到第二步。如果按照第二步之后的步骤操作之后没有看到效果,可能是这一步第三张图那里少选了什么,那么,请重新建立工程,从这一步开始走起。

这里全部都是默认,不用动。

2、编辑一段程序。(通常都是先有程序再debug的。所以,如果你是像之前说先建立c/cpp文件再用Code blocks打开后编辑代码的话,那就把要调试的程序代码复制到debug4all工程的main.cpp里面)。

、

3、下断点(断点就是程序执行到这里会停下来等你操作的地方)。这里假设这个程序有问题(没问题就不用调试了,对吧。),把断点下在第7行。具体操作为:鼠标左键点击一下行号(数字7)右边空白处,然后这里就会有一个红点。表示:程序执行完第6行,要执行第7行时,就停下来了。

4、点击上方的红色箭头指向的红色三角形。

5、点击后,会出现一个黑窗口,一闪而过。然后最小化在任务栏了。接下来,点击上面红色箭头所指处。选择,Watches。即:观察窗。注意是左边这个有个虫子的图标,不是右边那个有个感叹号的。

效果如下:

可以看到当前程序执行的函数里的所有的局部变量。注意哦,现在第7行还没有执行,所以,局部变量数组里面的值还是野生的(即不确定的)。要执行第7行的代码,点击上方红色箭头所指处。上面的每个各种方向的箭头代表什么意思,可查阅其他资料。其中:next line表示执行当前行,跳到下一行。step into表示,进入此条语句中(什么意思呢?如果这条语句是简单语句,那自然和next line效果一样,因为没什么好进去的。如果这条语句是调用某个函数,那就是进入到这个函数中。而如果点击next
line的话,这个函数就会立马执行完,然后跳到调用这个函数的那行的下一行)。

点击next line。如图。可以看到,第7行执行完后,变量loc_arr和sum的值都变了。

6、至此,你想要执行到哪一行,查看哪些局部变量的值都能做到了。但是,我们发现,这里不能查看全局变量的值,

怎么办呢?照着做。在观察窗口中,点击一行空的行,输入你要查看的全局变量的名字。点击第3列。

效果如下:

7、至此教程就结束了,现在就可以想怎么看就怎么看了。

PS:到目前为止,还没有哪个debugger可以做到回退一步的。

Code blocks调试教程的更多相关文章

  1. 在Code::Blocks中编译和使用wxWidgets3.0.0教程

      跳转至:指南,搜索 注意,编译Code :: Blocks的对wxWidgets的3.0.0链接不是很稳定,但该库至少可以被正确编译,(只是使用的时候可能会有问题):CodeBlocks开发商都在 ...

  2. VC++6.0 IDE的工程用Code::Blocks来打开、编译、调试终极配置方案

    本篇文章转自 CSDN blog,转载请注明出处! 原文地址: http://blog.csdn.net/liquanhai/article/details/6618300 引子:竟然可以用Code: ...

  3. Code::Blocks无法调试 Starting the debuggee failed: No executable specified, use `target exec'

    1.必须建立工程 2.工程名不可有特殊字符或空格,可以有字母.数字.下划线 2.编译器设置里勾选-g(产生调试符号) 3.重新编译项目(如果之前编译过了) 4.调试器设置 > Default & ...

  4. Code::Blocks配置GTK+2和GTK+3

    Code::Blocks配置GTK+2和GTK+3 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根 ...

  5. C语言工具---Code::Blocks

    Code::Blocks Code::Blocks 是一个开源的全功能的跨平台C/C++集成开发环境. Code::Blocks是开放源码软件.由纯粹的C++语言开发完成,它使用了著名的图形界面库wx ...

  6. 关于Ubuntu12.04下code::blocks不能使用debug解决方法

    问题描述:   系统:ubuntu 12.04   code::blocks版本:10.05   问题现象:debug->start        之后出现:warning: GDB: Fail ...

  7. linux下C/C++IDE比较——Code::Blocks

    工欲善其事,必先利其器.用了这么久的linux,现在比较主流的几个C/C++的IDE基本已都用过了,现在来对他们做一下简单的比较. 1.VIM首先要说的是VIM.我认为,VIM只是一个编辑器,不能算是 ...

  8. Fedora Linux 下安装配置C开发环境Code::Blocks

    一.提前的话要说C语言和Linux的关系大家应该都不会陌生,Linux系统内核就是用C语言开发的,所以所有的Linux系统下面 都会有C的编译调试工具,不过这些工具都是命令式的,正式开发的话会很不方便 ...

  9. Code::Blocks项目配置基础

    File 菜单 New :新建( Empty file/file . class . project . build target ) . Recent projects/files :近期打开的项目 ...

随机推荐

  1. Python基础学习----字符串的常用方法

    # Python字符串 # 大多数的语言定义字符串是双引号,Python既可以双引号,也可以单引号.但使用也有区别 # 单双引号的使用 My_name="bai-boy" Demo ...

  2. Django中类视图使用装饰器的方式

    类视图使用装饰器 为类视图添加装饰器,可以使用两种方法. 为了理解方便,我们先来定义一个为函数视图准备的装饰器(在设计装饰器时基本都以函数视图作为考虑的被装饰对象),及一个要被装饰的类视图. def ...

  3. awk与sed:一个关于多行处理的例子

    前几天在CSDN上看到一个帖子http://bbs.csdn.net/topics/390848841,楼主贴了下面的问题: 例: 12345 67890 1234567890 123 4567890 ...

  4. 控制图片在latex中的位置

    如何做到自己控制图片在latex中的位置? 方法:在 \begin{figure} 后面加参数 [h!] 即 \begin{figure}[h!] % Requires \usepackage{gra ...

  5. 随想录(kgdb的基本原理)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在linux kernel调试的时候,有一种很方便的调试方法,那就是kgdb.kgdb的本质,就 ...

  6. Unity3D查找丢失材质和脚本工具

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...

  7. Android 你可能忽略的提高敲代码效率的方式

    Android 你可能忽略的提高敲代码效率的方式

  8. EasyPlayer RTSP Windows(with ActiveX/OCX插件)播放器支持H.265播放与抓图功能

    EasyPlayer作为业界一款比较优秀的RTSP播放器,一直深受用户的好评,经过了近3年的开发和迭代,从一开始的简单PC版本的RTSP播放功能,到如今支持PC(支持ocx插件).Android.iO ...

  9. js之瀑布流的实现

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Jmter-Test Fragment、Include Controller和Module Controller

    Test Fragment--测试片段 The Test Fragment is used in conjunction with the Include Controller and Module ...