C语言初阶————调试实用技巧1

2026年1月13日学习总结:

开始学习新篇章------调试,在这章中我们将更熟悉编写代码的应用和自己的代码,本次关于学习主要分为以下三个部分:

**本文章的调试以VS 2022为例**

(1)什么是Bug? 导致程序运行不正常的错误。

历史上第一个Bug是导致计算机错误的飞蛾,这同时也是第一个计算程序错误。

(2)调试是什么?有多重要? 我们平常是如何写程序的?对于初学者而言基本就是复制,粘贴地去模仿他人的程序; 那么我们平常出现错误是如何找错?通常迷信式找错:一个又一个可能出错点去试,但这样消耗时间大大增加,这显然不是正确的方法。 所以我们得找寻正确的方法,一名优秀的程序员也是一名出色的"侦探"。侦探在查案时通常坚信"所以发生的事情都一定有迹可循,如果问心无愧就不需要掩盖也没有踪迹,但如果问心有愧就必然需要掩盖,那就一定有痕迹,痕迹越多就容易顺藤而上。"的推理过程,顺着这条途径顺流而下就是犯罪,逆流而上就是真相。而我们程序员在对于自己写的程序发生Bug时就需要学习侦探的推理去解决Bug,也就是我们通常所说的调试。

1.调试是什么?

调试,又叫除错,是发现和减少计算程序或电子仪器设备中程序错误的一个过程。

2.调试的基本过程:

①发现程序错误的存在(发现的对象:程序员自己、测试人员、用户)

②以隔离、消除等方式对错误进行定位

③确定错误产生的原因

④提出纠正错误的解决方法

⑤对程序错误给予改正,重新测试

3.Debug和Release的介绍

①Debug称为调试版本 包含调试信息,并且不作任何优化,便于程序员调试程序

②Release称为发布者版本 通常进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户更好使用。(不能逐步调试)

当对于同一个函数使用不同的版本运行后存放程序的文件夹会分别出现相应的文件夹。 两个不同的文件夹中的应用程序(.exe)的大小有很大区别: Debug文件夹中 Release文件夹中 相对来说Release文件夹中的应用程序的内存较小。

(3)Windows环境VS调试介绍

1.调试环境的准备------选择Debug

2.学会快捷键:

常用快捷键:

F5:启动调试 经常用来直接跳到下一个断点处 (一般按下后会出现如下图所示的调试相关窗口,可查看变量和内存以及随着操作的相关内容的实时变化)*出现该窗口的前提是程序中有设置的断点*

F9:创建/取消断点 断点:a.可以在任意位置设置; b.使程序直接执行到该位置,然后一步步执行下去。

如图设置断点后就会在对应行出现小红点。断点还可以更细节的设置,将光标移动到断点上会出现菜单,单击设置会出现以下菜单选项:(可以根据需要进行选择设置)

F10:逐过程调试(不进入调用函数内) 应该过程:a.一次函数调用;b.一条语句。

F11:逐语句调试 一个语句,可以进入被调用函数内部(最常用)

cs 复制代码
int Add(int n, int m)
{
	return n + m;
}
int main()
{
	int a = 20;
	int b = 10;
	int c = Add(a, b);
	printf("%d\n",c);
	return 0;
}

由上述程序为例如果设置断点在Add函数中,按下F10会从main函数中逐步运行到程序最后,当然会进入Add函数中;按下F11会直接从Add函数中再一步步运行到从该函数内部到调用该函数的main函数的地方到主函数结尾。

Ctrl+F5:开始执行不调试(直接运行程序)

注意:单功能键在大多数笔记本电脑中因为被规定的特定功能,所以在VS的快捷键可能不起作用,为了使用可以借助辅助功能键Fn,在使用时加上Fn或者关掉Fn。

当然调试不仅仅是快捷键可以操作,当然也可以在菜单中选择"调试",单击在弹出的菜单中进行选择。

注意:在调试时可以跳回已运行的步骤,但是不建议,因为向前调试后的参数值一般不准确,向前调没有太大意义。

相关推荐
Sammyyyyy2 小时前
Gemini CLI 进阶:构建安全的MCP连接与验证策略
开发语言·ai·ai编程·servbay
老蒋每日coding2 小时前
驾驭并发之力:Go语言构建高可用微服务完全指南
开发语言·微服务·golang
努力学习的小洋2 小时前
Python训练打卡Day4:缺失值处理
开发语言·python
郝学胜-神的一滴2 小时前
Python类属性与实例属性详解及MRO算法演进
开发语言·python·程序人生·算法
一颗青果2 小时前
短线重连代码实现
开发语言·网络·c++
AI视觉网奇2 小时前
audio2face 实时驱动 2026笔记
开发语言·python
陳10302 小时前
C++:list(1)
开发语言·c++
小CC吃豆子2 小时前
如何在 VS Code 中调试 C++ 程序?
开发语言·c++
Overt0p2 小时前
抽奖系统(7)
java·开发语言·spring boot·redis·tomcat·rabbitmq