Dev C++ 调试功能详细总结

news2024/9/24 19:19:46

原文链接:

Dev C++ 调试功能详细总结https://mp.weixin.qq.com/s/H9VwLNcJ0tY3j3265R0_7Q

大家好,我是CodeAllen(康哥),今天是2023年2月25日,继上一篇介绍了我在Windows端经常用来验证代码的工具Dev C++的基本使用后,今天主要介绍下这个软件的调试功能。

Dev C++安装及使用教程Dev C++安装及使用教程https://mp.weixin.qq.com/s?__biz=MzIwMzkzMzI0OA==&mid=2247486574&idx=1&sn=c66297c4097eca29dc62195773687c45&chksm=96c69f41a1b11657d44692ad5323f6546d49c0dd8e116ca7c8f7dcf397a86864646c592daf4a&scene=21#wechat_redirect

正文:

对于编程学习,可以说调试能力是最重要的技能,没有之一!尤其是C/C++/Linux开发,有相当部分时间都会花在调试上,对于这部分后续还会有更加系统的总结。所谓调试程序,就是控制编译器一行一行地执行代码,过程中可以清楚看到每个变量值的变化情况、函数的调用过程等,进而发现程序中隐藏的错误或者低效的代码。

首先先确认下你的Dev C++调试配置是否正常,有些很常见的问题提前确认下。

1.工具栏中,选择编译选项

2.开启产生调试信息,这个不开会导致无法进入调试模式

3.error-begin No source file named xxx的错误解决有些同学可能调试的时候会遇到,如果没有可以跳过,方法是依次添加下边的配置

-g3

-static-libstdc++ -static-libgcc -g3

gcc.exe -D__DEBUG__

g++.exe -D__DEBUG__

4.正式开始调试,以下边的代码为例子,有电脑的同学可以直接实践下

 1#include <stdio.h>
 2
 3int main() {
 4    int n, cnt = 0;
 5
 6    scanf("%d", &n);
 7    for(int j = 0; j < n; j ++) {
 8        cnt = cnt + 1;
 9    }
10    printf("%d", cnt);
11
12    return 0;
13}

添加断点,这是调试功能的核心,下边是几个步骤:

1.左键添加断点,主要是在比较容易出错,或者有怀疑点的位置

2.添加变量查看,可以实时看到代码中变量的值,非常的直观

3.点击②后,会有③窗口,添加代码中变量名即可

4.输入回车后,在左侧④调试窗口就会出现变量的实时值

点击调试或者按F5启动调试功能,会出现黑色的控制台窗口

此时根据代码,代码会走到第六行scanf等待你的键盘输入

​这里我们输入5回车

断点行会变为蓝色,意味着此时代码运行到第8行并停止

左侧变量n由于执存储了键盘的输入变为了5,cnt由于还没有执行仍为0

点击下一步,代码会继续执行一行,根据逻辑会运行到for循环入口,cnt由于执行了一次变为了1,而n由于没有操作所以还是5

另外几个调试功能的作用(都可以动手实践下):

  • 下一步:控制编译器向下执行一行语句;

  • 单步进入:功能和“下一步”按钮类似,不同之处在于,当程序中调用某个自定义的函数时,此按钮可以进入到函数内部,继续调试函数内部的代码,而 “下一步” 按钮不会;

  • 跳过:继续执行程序,遇到下一个断点暂停执行;

  • 停止执行:停止调试程序。

当最后执行完for循环,printf函数会输出结果5到控制台,左侧cnt值也增长到了5

​这就是一次相对比较简单的调试了,大家可以亲自动手实践下,可能会到各种奇怪的问题,都非常正常,开发本就是解决问题的一个过程,这个调试虽然简单,但是基本的原理就是这样了,对于很多项目中都可以用到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/372424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytest测试框架——pytest.ini用法

这里写目录标题一、pytest用法总结二、pytest.ini是什么三、改变运行规则pytest.inicheck_demo.py执行测试用例四、添加默认参数五、指定执行目录六、日志配置七、pytest插件分类八、pytest常用插件九、改变测试用例的执行顺序十、pytest并行与分布式执行十一、pytest内置插件h…

【经典蓝牙】蓝牙AVRCP协议分析

协议简介 蓝牙AVRCP协议是蓝牙设备之间音视频的控制协议。定义了音频/视频的控制、浏览、查询、通知等一系列的命令集。常用来蓝牙耳机对手机的音乐进行控制&#xff0c;以及获取手机的音乐信息等场景。AVRCP协议有两个角色&#xff0c;分别是controller&#xff08;CT&#x…

MFC 使用GridCtrl表格控件

1、以前使用GridCtrl大多作为静态库&#xff0c;但是程序使用的时候体积会很大&#xff0c;有网友询问能不能封装为动态库使用&#xff0c;刚好最近抽空仔细看了一下&#xff0c;封装出来。 2、具体封装过程不再赘述&#xff0c;具体测试如下所示&#xff1a; CGridCtrl m_Gri…

JavaScript Window

文章目录JavaScript Window浏览器对象模型 (BOM)Window 对象Window 尺寸其他 Window 方法JavaScript Window 浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器"对话"。 浏览器对象模型 (BOM) 浏览器对象模型&#xff08;Browser Object Model (BOM)&#xff09;…

LeetCode100_100. 相同的树

LeetCode100_100. 相同的树 一、描述 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q […

【数据结构】手撕红黑树

目录 一、红黑树简介 1、红黑树的简介 2、红黑树的性质 二、红黑树的插入&#xff08;看叔叔的颜色就行&#xff09; 1、为什么新插入的节点必须给红色&#xff1f; 2、插入红色节点后&#xff0c;判定红黑树性质是否被破坏 2.1情况一&#xff1a;uncle存在且为红 2.2情…

微信商城小程序怎么做_分享实体店做微信商城小程序制作步骤

各行各业都在用微商城小程序开店&#xff0c;不管是餐饮店还是便利店&#xff0c;还是五金店。都是可以利用微信小程序开一个线上店铺。实现线上跟线下店铺更加全面的结合。维护好自己的老客户。让您的客户给您拉新&#xff0c;带来新客户。小程序经过这几年的快速发展和不断升…

【量化回测必看!】Backtrader保姆级教学+免费行情源 框架介绍

前言 想开始量化学习不知道如何入手&#xff1f;市面上的学习资料太多不知道该怎么看&#xff1f; 博主将从零基础讲解回测框架&#xff0c;一步步完成量化数据源的搭建&#xff0c;让你10天内成为量化高手 博主同时将视频课程内容在B站更新&#xff0c;可以关注“量化NPC”获…

学习 Python 之 Pygame 开发魂斗罗(五)

学习 Python 之 Pygame 开发魂斗罗&#xff08;五&#xff09;继续编写魂斗罗1. 加载地图2. 修改角色尺寸和地面高度继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗&#xff08;四&#xff09;中&#xff0c;我们完成了角色的移动和跳跃还有射击&#xff0c;由…

Redis源码---整体架构

目录 前言 Redis目录结构 前言 deps目录 src 目录 tests 目录 utils 目录 重要的配置文件 Redis 功能模块与源码对应 前言 服务器实例 数据库数据类型与操作 高可靠性和高可扩展性 辅助功能 前言 以先面后点的方法推进无特殊说明&#xff0c;都是基于 Redis 5.0.…

AI Codec,视频模板技术,高效视频处理,RTC+AI,感知编码,CV-CUDA,窄带高清AI...

AI Codec&#xff0c;NPU硬件加速Topic《基于AI和NPU的Codec变革》孔德辉 中兴微电子 多媒体技术总监伴随通信容量&#xff08;包括5G以及千兆有线网络&#xff09;的发展&#xff0c;高带宽为更多用户接入超高清视频提供了可能。但是随着用户数量的增加&#xff0c;高质量的压…

排序基础之选择排序法

目录 前言 一、什么是选择排序 二、实现选择排序 三、使用泛型扩展 四、使用自定义类型测试 前言 今天天气不错&#xff0c;这么好的天气不干点啥实在是有点可惜了&#xff0c;于是乎&#xff0c;拿出键盘撸一把&#xff01; 来&#xff0c;今天来学习一下排序算法中的选…

港科夜闻|全国政协副主席梁振英先生率香港媒体高管团到访香港科大(广州)...

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、全国政协副主席梁振英先生率香港媒体高管团到访香港科大(广州)。2月21日下午&#xff0c;在全国政协副主席、广州南沙粤港合作咨询委员会顾问梁振英先生的带领下&#xff0c;香港20余家媒体的高管及知名媒体人士到访香港科大…

电脑技巧:分享8个Win11系统必备小技巧

目录 1、让任务栏显示“右键菜单” 2、任务栏置顶 3、还原经典右键菜单 4、Win11版任务管理器 5、新版AltTab 6、开始菜单不再卡 7、为Edge浏览器添加云母效果 8、自动切换日/夜模式 Win11在很多地方都做了调整&#xff0c;但由于涉及到诸多旧有习惯&#xff0c;再加上…

SRE中 的SLO,SLI等知识 归纳

SLA Service Level Agreement 服务质量/水平协议SLO Service Level Objective 服务质量/水平目标SLI Services Level Indicator 服务质量/水平指标下面用人、事、物的逻辑进行阐释。人和事用从上到下&#xff0c;从左到右的顺序。客户 - 每 1 个客户在使用产品服务时&…

gin 框架初始教程

一 、gin 入门1. 安装gin &#xff1a;下载并安装 gin包&#xff1a;$ go get -u github.com/gin-gonic/gin2. 将 gin 引入到代码中&#xff1a;import "github.com/gin-gonic/gin"3.初始化项目go mod init gin4.完整代码package mainimport "github.com/gin-go…

JavaSE10-循环语句(for、while、do...while)

文章目录一、for循环1.格式2.执行流程二、while循环1.格式三、do...while循环1.格式四、循环控制(break、continue)1.break2.continue五、案例1.请输出下列的形状2.打印99乘法表一、for循环 1.格式 初始化语句只有在最开始的时候执行了一次如果第一次进行条件判断的时候结果为…

测试开发 | 视频编辑SDK测试

短视频编辑SDK测试有一段时间了&#xff0c;因此抽时间对编辑SDK的相关内容进行简要复盘。 功能说明 短视频编辑SDK支持gif&#xff0c;不同格式的图片&#xff0c;视频文件的拼接导入&#xff0c;编辑&#xff0c;添加特效&#xff0c;合成导出等功能。更具体的介绍可以参照…

Elasticsearch:如何轻松安全地对实时 Elasticsearch 索引重新索引你的数据

在很多的时候&#xff0c;由于一些需求&#xff0c;我们不得不修改索引的映射&#xff0c;也即 mapping&#xff0c;这个时候我们需要重新索引&#xff08;reindex&#xff09;来把之前的数据索引到新的索引中。槽糕的是&#xff0c;我们的这个索引还在不断地收集实时数据&…

Python3-数字

Python3 数字(Number) Python 数字数据类型用于存储数值。 数据类型是不允许改变的,这就意味着如果改变数字数据类型的值&#xff0c;将重新分配内存空间。 Python 支持三种不同的数值类型&#xff1a; 整型(int) - 通常被称为是整型或整数&#xff0c;是正或负整数&#x…