编程技能:调试01,调试介绍

专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:编程基础:位运算07,右移

回到目录

下一篇:无

(二)MFC 专栏导航

上一篇:编程基础:位运算07,右移

回到目录

下一篇:无

本节前言

在上一节,我们讲解了位运算的右移运算。结束了右移运算的讲解以后,整个的位运算的知识,也就告一段落了。

从本节开始,我们来讲解调试。

调试,大概是在进入正式的 Win32 与 MFC 章节之前,我们所讲解的最后一部分的铺垫知识了。希望大家能够将调试的知识给学好。

一.    调试介绍

调试是什么?

调试可以让程序每次执行一条指令,执行完了以后就停下来。调试也可以连续执行程序指令,直到某条指令将要执行而尚未执行的时候便停下来。

调试可以帮助程序员了解程序的运行情况,排查程序中的逻辑错误。

关于程序中的错误,可以分为两种,一种是语法错误,另一种是逻辑错误。语法错误,这个,编译器或者集成开发环境会帮助我们检查。对于语法错误,发现了以后,我们可以根据编译器的错误提示,找到相应的错误语法,修改了语法错误,重新编译,编译通过了以后,就可以运行程序了。

而另一种错误类型,逻辑错误,它是说,语法上并没有错误,但是呢,程序的逻辑上是有错误的。

(一)排查逻辑错误

我们来看一看下面的代码。

int i;for (i = 0; i < 10; i++)
{if (i = 6){printf("此刻,i 的值为 6\n");}else;
}

在【if (i = 6)】这一行代码里,假定,我们的本意是想要在 i 等于 6 的时候,打印输出一行提示信息。这样一来, if 语句中,写的应该是【if (i == 6)】,等号应该是两个,而不是一个。然而,如果写代码的时候,我们因为粗心,错误地将两个等号写成了一个等号,那么,就会出现逻辑错误了。

出现了这样的逻辑错误以后,代码并未按照我们的设想去执行,而是按照另外的逻辑去执行了。

对于这样的逻辑错误,想要排查并且解决它,我们就需要用调试来予以解决了。

(二)了解程序的运行情况

调试还可以帮助我们了解程序的运行情况。

比如说,可以帮助我们了解,程序在执行完了某一条语句之后,各个局部变量和全局变量的值的变化情况。

对于某些个不太容易理解的程序代码,如果我们想要了解其执行逻辑,了解其功能,我们就可以通过调试的方式,来了解它的运行情况。

二.    本专栏涵盖的调试知识

对于调试,我也不是很擅长。也许,你也并不擅长。

在这里,我设置调试章节,主要是为了,让学习完了 C/C++ 的学习者,对调试有一个初步的了解。至于说,如何让自己成为一个代码调试的高手,那就得靠你自己了。

或许,以后,当我的调试技能更为纯熟的时候,我会专门地建立一个专栏,用来讲解调试知识。而在本专栏里面,我们所讲解的调试知识,仅仅是一些个基础用法,而且只是调试中的一小部分。

调试知识,大概有这样的几个知识点,设置与取消断点,启用与禁用断点,连续运行,逐过程,逐语句,条件断点。

大概,就是这样的几个知识点了。

结束语

在前面的章节里,我在讲解进制和位运算的知识的时候,就觉得很不好讲。其实,到了调试的部分,也是一样的,我同样是觉得不好讲。

不过,既然是已经讲到这儿了,也只好硬着头皮讲下去了。

大家努力学,我也努力讲吧。

专栏导航

本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。

(一)WIn32 专栏导航

上一篇:编程基础:位运算07,右移

回到目录

下一篇:无

(二)MFC 专栏导航

上一篇:编程基础:位运算07,右移

回到目录

下一篇:无

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

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

相关文章

从零开始学A2A二 : A2A 协议的技术架构与实现

A2A 协议的技术架构与实现 学习目标 技术架构掌握 深入理解 A2A 协议的分层架构设计掌握各层次的功能和职责理解协议的工作原理和数据流 实现能力培养 能够搭建基本的 A2A 服务端掌握客户端开发方法实现智能体间的有效通信 架构设计理解 理解与 MCP 的本质区别掌握多智能体协…

UE5滚轮控制目标臂长度调整相机距离

UE5通过鼠标滚轮来控制摄像机目标臂长度 , 调整相机距离 看图就行,不多说,照着连就完事了

python的strip()函数用法; 字符串切片操作

python的strip()函数用法 目录 python的strip()函数用法代码整体功能概述代码详细解释1. `answer["output_text"]`2. `.strip()`3. `final_answer = ...`字符串切片操作:answer[start_index + len("Helpful Answer:"):].strip()整体功能概述代码详细解释1…

云服务模式全知道:IaaS、PaaS、SaaS与DaaS深度解析

云服务模式详解&#xff1a;IaaS、PaaS、SaaS与DaaS 在当今数字化快速发展的时代&#xff0c;云计算已经成为企业和开发者不可或缺的一部分。它提供了灵活的资源和服务&#xff0c;使得用户可以根据自己的需求选择最合适的解决方案。本文将详细介绍四种主要的云服务模式&#…

AIDL 语言简介

目录 软件包类型注释导入AIDL 的后端AIDL 语言大致上基于 Java 语言。AIDL 文件不仅定义了接口本身,还会定义这个接口中用到的数据类型和常量。 软件包 每个 AIDL 文件都以一个可选软件包开头,该软件包与各个后端中的软件包名称相对应。软件包声明如下所示: package my.pac…

PINN:用深度学习PyTorch求解微分方程

神经网络技术已在计算机视觉与自然语言处理等多个领域实现了突破性进展。然而在微分方程求解领域&#xff0c;传统神经网络因其依赖大规模标记数据集的特性而表现出明显局限性。物理信息神经网络(Physics-Informed Neural Networks, PINN)通过将物理定律直接整合到学习过程中&a…

程序化广告行业(89/89):广告创意审核的关键要点与实践应用

程序化广告行业&#xff08;89/89&#xff09;&#xff1a;广告创意审核的关键要点与实践应用 在程序化广告这个充满机遇与挑战的领域&#xff0c;持续学习和知识共享是我们不断进步的动力。一直以来&#xff0c;我都希望能和大家一同深入探索这个行业&#xff0c;今天让我们聚…

【ES6新特性】Proxy进阶实战

&#x1f31f;ES6 Proxy终极指南&#xff1a;从拦截器到响应式框架实现&#x1f525; 一、&#x1f4a1; 为什么Proxy是革命性的&#xff1f;先看痛点场景 1.1 Object.defineProperty的局限 &#x1f62b; // Vue2响应式实现 let data { count: 0 }; Object.defineProperty(…

c++解决动态规划

一、引言: 在我们学习了算法之后,我们一定遇到过贪心算法。而在贪心算法中就有着这样一个经典的例子——凑钱。 Eg: 你有面额为10、5、1的纸币,当你买菜时需要花费26元,请问需要最少的纸币张数是多少。 当我们用贪心算法去解决这个问题的时候,我们…

Qwen 2.5 VL 多种推理方案

Qwen 2.5 VL 多种推理方案 flyfish 单图推理 from modelscope import Qwen2_5_VLForConditionalGeneration, AutoTokenizer, AutoProcessor from qwen_vl_utils import process_vision_info import torchmodel_path "/media/model/Qwen/Qwen25-VL-7B-Instruct/"m…

机器视觉检测Pin针歪斜应用

在现代电子制造业中&#xff0c;Pin针&#xff08;插针&#xff09;是连接器、芯片插座、PCB板等元器件的关键部件。如果Pin针歪斜&#xff0c;可能导致接触不良、短路&#xff0c;甚至整机失效。传统的人工检测不仅效率低&#xff0c;还容易疲劳漏检。 MasterAlign 机器视觉对…

经典算法问题解析:两数之和与三数之和的Java实现

文章目录 1. 问题背景2. 两数之和&#xff08;Two Sum&#xff09;2.1 问题描述2.2 哈希表解法代码实现关键点解析复杂度对比 3. 三数之和&#xff08;3Sum&#xff09;3.1 问题描述3.2 排序双指针解法代码实现关键点解析复杂度分析 4. 对比总结5. 常见问题解答6. 扩展练习 1. …

1022 Digital Library

1022 Digital Library 分数 30 全屏浏览 切换布局 作者 CHEN, Yue 单位 浙江大学 A Digital Library contains millions of books, stored according to their titles, authors, key words of their abstracts, publishers, and published years. Each book is assigned an u…

地理人工智能中位置编码的综述:方法与应用

以下是对论文 《A Review of Location Encoding for GeoAI: Methods and Applications》 的大纲和摘要整理&#xff1a; A Review of Location Encoding for GeoAI: Methods and Applications 摘要&#xff08;Summary&#xff09; 本文系统综述了地理人工智能&#xff08;G…

(C语言)算法复习总结2——分治算法

1. 分治算法的定义 分治算法&#xff08;Divide and Conquer&#xff09;是一种重要的算法设计策略。 “分治” 从字面意义上理解&#xff0c;就是 “分而治之”。 它将一个复杂的问题分解成若干个规模较小、相互独立且与原问题形式相同的子问题&#xff0c;然后递归地解决这…

爱普生FC1610AN5G手机中替代传统晶振的理想之选

在 5G 技术引领的通信新时代&#xff0c;手机性能面临前所未有的挑战与机遇。从高速数据传输到多任务高效处理&#xff0c;从长时间续航到紧凑轻薄设计&#xff0c;每一项提升都离不开内部精密组件的协同优化。晶振&#xff0c;作为为手机各系统提供稳定时钟信号的关键元件&…

Android 接口定义语言 (AIDL)

目录 1. 本地进程调用(同一进程内)2. 远程进程调用(跨进程)3 `oneway` 关键字用于修改远程调用的行为Android 接口定义语言 (AIDL) 与其他 IDL 类似: 你可以利用它定义客户端与服务均认可的编程接口,以便二者使用进程间通信 (IPC) 进行相互通信。 在 Android 上,一个进…

关于QT5项目只生成一个CmakeLists.txt文件

编译器自动检测明明可以检测,Kit也没有报红 但是最后生成项目只有一个文件 一&#xff1a;检查cmake版本&#xff0c;我4.1版本cmake一直报错 cmake3.10可以用 解决之后还是有问题 把环境变量加上去&#xff1a;

uniapp小程序位置授权弹框与隐私协议耦合(合而为一)(只在真机上有用,模拟器会分开弹 )

注意&#xff1a; 只在真机上有用&#xff0c;模拟器会分开弹 效果图&#xff1a; 模拟器效果图&#xff08;授权框跟隐私政策会分开弹&#xff0c;先弹隐私政策&#xff0c;同意再弹授权弹框&#xff09;&#xff1a; manifest-template.json配置&#xff08; "__usePr…

[Godot] C#人物移动抖动解决方案

在写一个2D平台跳跃的游戏代码发现&#xff0c;移动的时候会抖动卡顿的厉害&#xff0c;后来研究了一下抖动问题&#xff0c;有了几种解决方案 1.垂直同步和物理插值问题 这是最常见的可能导致画面撕裂和抖动的原因&#xff0c;大家可以根据自己的需要调整项目设置&#xff0…