本文会介绍Codeblocks17.12的调试方法,所用的示例程序如下,它的功能是判断输入的数是否为素数。就这个简单的程序而言,完全没必要把判断操作放在一个自定义的函数中,但是本文为了演示某些调试功能,因此采用了这种写法。

#include<stdio.h>
#include<math.h>
bool IsPrime(int n)
{int t = sqrt(n);for(int i = 2; i <= t; i++){int r = n % i;if(r == 0)return false;}return true;
}
int main()
{int i, n;bool prime;scanf("%d",&n);prime = IsPrime(n);if (prime == false)printf("不是素数\n");elseprintf("是素数\n");return 0;
}

前期准备

  1. 双击运行Codeblocks,进入起始界面。单击界面中间的Create a new project,如下图所示。

  2. 在新弹出的界面中选择Console application,也就是控制台应用程序,俗称小黑框,然后单击Go。

  3. 单击Next。

  4. 让你选择编程语言,选择C和C++都可以,我这里用的是默认语言C++。

  5. 先为项目起名(不要包含中文),再选择存储路径(不要选择含有中文的存储路径),最后单击Next。

  6. 使用默认配置即可,单击Finish。

  7. 此时项目就已经创建成功了,下图中我用矩形框圈起来的部分称为项目管理器。

  8. 在项目管理器中单击Sources左侧的加号,以展开所有的源文件。

  9. 此时会看到一个名为main.cpp的文件,双击以打开这个文件。

  10. 现在可以在界面的中间看到main.cpp里面的内容了,以后写代码时,也是在这个文件中写。

  11. 把上面求素数的代码复制粘贴到main.cpp的编辑框中。

  12. 如果之前没有用Codeblocks进行过调试,需要先设置一下才能继续进行。首先点击菜单栏的Settings,然后点击Debugger。

  13. 先点击Default,然后在Executable path中选择你安装路径下的MinGW\gdb32\bin\gdb32.exe文件。比如我的安装路径是E:\CodeBlocks,那么我此处就应该为E:\CodeBlocks\MinGW\gdb32\bin\gdb32.exe。可以直接将gdb32.exe的路径输入到文本框中,也可以单击文本框右侧的按钮来选择gdb32.exe,更推荐后者,这样不易出错。如果不知道自己当时把Codeblocks安装在什么位置了,可以点击此处查看。

开始调试

与调试有关的按钮都在菜单栏的下方,在下图中已经用矩形框圈起。

下图中的1号按钮可以开始调试,并且运行到断点处暂停运行,此时它叫Debug,如果在调试过程中点击此按钮,则会一直运行到下一个断点处停下,此时它叫Continue,快捷键是F8。
2号按钮会执行下一行代码并暂停运行,也就是能够单步执行,名称为Next line,快捷键是F7。
3号按钮会进入到函数中单步执行,名称为Step into,快捷键是Shift+F7。
4号按钮可以从函数中跳出,名称为Step out,快捷键是Ctrl+F7。
5号按钮停止调试,整个程序的执行也会被终止,名称为Stop debugger,快捷键是Shift+F8。

在编辑框的行号右侧单击会出现一个红点,它就表示断点,在调试时,程序运行到此处会暂停下来。再单击一下红点,它会消失,这表示取消断点。除了可以用点击的方法设置断点外,也可以将光标定位到你想要设置断点的那一行,然后按F5设置断点,再按一次取消断点。下面以第19行和第24行的断点为例,演示调试过程。

按照上图设置好断点后,按快捷键F8或者点击下图中圈起来的Debug按钮,让程序进入debug模式。

这时会弹出控制台窗口(小黑窗),我们观察断点设置的位置,发现它是在scanf函数之后的,也就是说只有当输入一个数字之后,程序才会执行完第18行代码,然后才能停止在第19行代码处。随便输入一个数,我输入的是数字7,然后按回车,再将控制台窗口最小化。
如果你的电脑也出现了下图所示的提示窗,勾选Don’t annoy me again!后,点击Yes。

现在可以在第19行右侧看到一个黄色的三角箭头,如下图所示,它表示程序在第19行代码处暂停运行,等待下一步调试操作。请注意,此时第19行代码尚未执行。

现在按F7或点击下图中圈起来的Next line按钮,程序会执行第19行代码,并且在第20行代码处停下来。

下图所示为程序在第20行代码处暂停运行,可以看到行号20的右侧有一个黄色的三角箭头。

现在如果继续按F8或Continue按钮,程序会暂停在第24行,也就是暂停在下一个断点处。

此时如果已经知道了问题所在,不想继续调试了,那么可以按快捷键Shift+F8或者点击下图圈起来的Stop debugger按钮,就可以结束调试。

现在演示其它按钮的功能,所以再按F8或点击Debug按钮,以使程序进入调试状态。

依次点击View->Perspectives->GDB/CDB debugger:Default

现在会弹出一个Watches窗口,如下图矩形框内所示。

将其拖拽到左侧的项目管理器。

现在程序还是暂停在第19行代码处(并未执行第19行代码),仔细观察此行代码,可以发现这行代码调用了IsPrime函数,如果想看一下这个函数的执行有没有错误,应该怎么办呢?可以按快捷键Shift+F7或者点击下图圈起来的Step into按钮,以进入这个函数。

可以看到,现在程序进入了IsPrime函数,并且暂停在了第5行。

可以在这个函数中按F7单步执行,以查看这个函数是否有错误。当然,能进来,也会有出去的方法。可以按快捷键Ctrl+F7或点击下图圈起来的Step out按钮,以退出这个函数。

退出之后,程序仍然暂停在第19行。

可以按F7单步执行下一行代码,因为我输入的数是7,它是素数,所以可以看到prime变量的值发生了改变。刚打开Watches窗口时,prime变量的值是false,至于为什么是false,这是因为系统会自动为其初始化。

在实际的调试过程中,通常是一边使用上面所说的调试方法,一边观察变量的值,从而找出自己代码中的逻辑错误。一般来说,在程序中定义的变量,都会在Watches窗口中显示出来,如果你想查看的变量没在Watches窗口,这时可以手动将其添加上。
假如说变量n的值没在Watches窗口中,这时可以单击下图矩形框圈起来的位置。

输入n,按回车,就可以显示n的值了。

查看Codeblocks安装目录的方法

在桌面找到CodeBlocks的快捷方式,然后右键单击。

在弹出的列表中选择最后一项“属性R”。

在弹出的属性窗口中,可以看到目标(T)是E:\CodeBlocks\codeblocks.exe,那么说明Codeblocks的安装目录是E:\CodeBlocks

Codeblocks17.12编译器的Debug教程相关推荐

  1. 使用Xcode 4编译器设定Release/Debug教程

    使用Xcode4编译器设定Release/Debug教程是本文要介绍的你内容,主要是来学习xcode 4的相关内容,让我们更一步的去熟悉.了解xcode 4,内容不多,不过真的可以帮助友们去解决xco ...

  2. CodeBlocks17.12+汉化包下载及用法

    1. 关键词 CodeBlocks最新版17.12云盘下载链接 CodeBlocks安装教程 如何设置cbp文件默认用CodeBlocks打开 Codeblocks汉化包下载和汉化包使用教程 Code ...

  3. 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)

    20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  4. Java断点调试 idea断点调试 debug教程

    IDEA断点调试 Java程序断点调试 文章目录 IDEA断点调试 Java程序断点调试 前言 一.什么情况下需要debug 二.使用idea如何进行debug 三.假设案例分别进行debug教程 1 ...

  5. KDevelop详细Debug教程

    KDevelop官方连接:https://www.kdevelop.org/ 感觉网上对KDevelop的使用介绍比较少,也没有一个完整的Debug教程,这里记录一下我的踩坑过程.当然首先你需要有一个 ...

  6. Android 10.0 11.0 12.0 启动模拟器教程

    <<返回总目录 Android 10.0 11.0 12.0 启动模拟器教程 一.android 12.0 模拟器 二.安装android 10.0 11.0 12.0 SDK平台 三.创 ...

  7. Navicat Premium For Mac 12.0.2x 破解教程

    本教程最高只支持Navicat Premium For Mac 12.0.22版本,因为Navicat Premium For Mac 12.0.24已经没有了rpk文件文件,所以不能用次方法破解. ...

  8. Visual Studio Debug 教程 之 入门

    在过去,我已经写过好几篇关于调试 / debug / 解 Bug 的文章,但都是从宏观的角度上去讲的,并没有针对哪种工具做具体深入的剖析. 工欲善其事,必先利其器,一个强大的调试工具可以帮助我们快速的 ...

  9. HP LoadRunner 12.02 Tutorial T7177-88037教程独家中文版

    LoadRunner 12.02教程独家中文版 Tylan独家呕血翻译 转载请注明出自"天外归云"的博客园 Welcome to the LoadRunner Tutorial L ...

最新文章

  1. 百度CTO王海峰阐释AI融合创新,降低门槛,按下产业智能化加速键
  2. GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练
  3. Java经典编程题50道之十七
  4. python实现流媒体传输_基于OpenCV的网络实时视频流传输的实现
  5. c++17(2)-枚举类enum class
  6. Java异常日志的查询语句_java学习异常,断言和日志
  7. 第二章:图像处理基础
  8. php 匹配双字节字符串,收集一些常用的正则表达式(匹配中文字符、匹配双字节字符、匹配HTML标记、匹配空行 and so on~~~)...
  9. 手机uc新窗口打开的html标签,在电脑UC浏览器的新窗口页中如何打开书签
  10. Windows Server 2008 R2之三管理活动目录数据库
  11. mysql:赋予用户权限、查看及修改端口号
  12. httppost请求工具类
  13. 企业家的“智慧”和“仁人”
  14. linux heartbeat rpm,Heartbeat 3.0.3 介绍及rpm
  15. html excel导出的路径,html 导出多个excel表格数据-如何将html页面中的表格导出到excel表格...
  16. 想考阿里云ACE需要做什么准备?考下来难不难?
  17. Xu_Learning_to_Restore_Low-Light_Images_via_Decomposition-and-Enhancement_CVPR_2020_paper
  18. Android加载web页时有的手机会弹出手机自带的浏览器解决方法
  19. 数据库的主键约束和自增长
  20. 业务规则引擎:Code Effects 5.X Crack-New

热门文章

  1. 国家医保移动支付国密算法SM2签名验签、SM4加解密DLL
  2. CentOS 7安装Deluge 达到linux下载bt资源效果
  3. PCI、PCIe、Mini PCIe、SATA、mSATA、M.2
  4. 809数据结构141分,长春理工大学计算机考研 经验分享,
  5. Windows10 由家庭版升级到专业版
  6. 东软睿道培训费用python
  7. 青海大学昆仑学院计算机机考,青海大学昆仑学院英语六级考试报名入口2020年上半年...
  8. 阿里云安装 Redis ,win10使用RDM连接管理redis
  9. Raspi-config 设置解析
  10. 【深度干货】以最佳实践为石油石化数字化转型加油