特别声明:本教程已转移至百度经验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. 个人Blog小程序开发完毕

    今天忙了一天,算是把这个小程序弄好了,包括小程序前端页面.接口对接.后台系统.服务器架 设.域名备案.证书安装(现在阿里云的免费证书怎么审核要这么久啊,到现在还在审核中) 先上截图: 这个背景图片的替 ...

  2. 在Golang中获取系统的磁盘空间内存占用

    获取磁盘占用情况(Linux/Mac下有效) import ( "syscall" ) type DiskStatus struct { All uint64 `json:&quo ...

  3. postfix邮件服务器搭建04-终结篇

    本来是计划对postfix做一个全系列的安装文档的,不过在查某个知识点的时候,偶然找到一个已经写好的postfix全系列文章,在全部看完之后惊为天人,我认为:总体上会比我要写的要好,所以我准备借用一下 ...

  4. caffe学习笔记教程

    1 官网:http://caffe.berkeleyvision.org/ 2 豆丁网中:http://www.docin.com/p-871820917.html 3 下载的caffe中,.../d ...

  5. 用python验证蒙提霍尔问题

    最初看到这个问题是初中的时候买了一本有关数学谜题的书里面概率论的一张的课后拓展就是说到三门问题,当时作为一个扩展阅读看了一下,里面说到了一个世界智商最高的女人秒杀了美国一大群的数学高材生的精彩故事(比 ...

  6. [Java]如何为一个自定义类型的List排序。

    好吧,三年了,又重拾我的博客了,是因为啥呢,哈哈哈.今天被问到一个题目,当场答不出来,动手动的少了,再此记录下来. Q:有一个MyObject类型的List,MyObject定义如下: class M ...

  7. 数位DP新识

    简单题:HDU2089    HDU3652  HDU4734   HDU3555  POJ3252  HigoCoder1033(需要前导0,或者用方法4) 总结: 1,dfs(pos,state, ...

  8. stm32寄存器版学习笔记03 外部中断

    stm32的每个I/O口都可以作为中断输入,要把I/O口设置为外部中断输入,必须将I/O口设置为上拉/下拉输入 或 浮空输入(但浮空的时候外部一定要带上拉或下拉电阻,否则可能导致 中断不停的触发),干 ...

  9. 如何实现一个可以用 await 异步等待的 Awaiter

    .NET 和 C# 共同给我们带来的 async/await 异步编程模型(TAP)用起来真的很爽.为了实现异步等待,我们只需要在一切能够能够异步等待的方法前面加上 await 即可.能够异步等待的最 ...

  10. [Luogu4631][APIO2018] Circle selection 选圆圈

    Luogu 题目描述 在平面上,有 \(n\) 个圆,记为 \(c_1, c_2,...,c_n\) .我们尝试对这些圆运行这个算法: \(1\).找到这些圆中半径最大的.如果有多个半径最大的圆,选择 ...