【C 语言系统入门教程】第 8 讲:VS 实用调试技巧 | 零基础学习笔记
【C 语言系统入门教程】第 8 讲VS 实用调试技巧 | 零基础学习笔记前言写代码一定会遇到错误调试Debug是程序员必须掌握的核心技能。本讲专门讲解VS 编译器最实用的调试方法包括 Debug/Release 区别、常用快捷键、监视窗口、内存观察并用 3 个经典案例带你实战调试彻底告别 “盲改代码”。系列往期笔记第 1 讲C 语言常见概念第 2 讲C 语言数据类型和变量第 3 讲分支和循环上第 4 讲分支和循环下第 5 讲数组第 6 讲函数第 7 讲数组和函数实践扫雷游戏 本讲学习目标理解bug、调试、Debug、Release的基本概念。掌握 VS最常用调试快捷键F5、F9、F10、F11。学会使用监视、自动窗口、内存窗口观察变量。能独立调试 3 个经典错误案例。学会调试扫雷游戏这类综合项目。能区分编译错误、链接错误、运行时错误并对应解决。 核心学习内容1. 什么是 bugbug程序中隐藏的缺陷、问题、漏洞。由来1947 年计算机继电器里飞进一只飞蛾导致故障从此沿用 bug 表示程序错误。2. 什么是调试debug发现程序错误 → 定位问题位置 → 分析原因 → 修复代码 → 重新测试这个找错、改错的过程就是调试。3. Debug 和 Release 版本类型含义特点文件大小Debug调试版本含调试信息不优化供程序员调试较大Release发布版本全速优化无调试信息给用户使用更小、更快【重点】调试必须切到 DebugRelease 不能调试。【配图预留】release版本和debug版本的对⽐4. VS 调试快捷键必背F9设置 / 取消断点F5启动调试直接跳到下一个断点F10逐过程不进函数F11逐语句进入函数内部Ctrl F5运行不调试5. 监视和内存观察5.1 监视窗口调试启动后调试 → 窗口 → 监视 → 监视 1可输入变量名实时查看值变化。打开监视窗⼝在监视窗⼝中观察5.2 内存窗口调试 → 窗口 → 内存 → 内存 1输入地址 变量、数组名可查看内存存储数据。内存窗⼝设置列示例代码#include stdio.h int main() { int arr[10] { 0 }; int num 100; char c w; int i 0; for (i 0; i 10; i) { arr[i] i; } return 0; }6. 调试举例 1阶乘求和错误题目求 1!2!…10!错误代码#include stdio.h int main() { int n 0; int i 1; int sum 0; int ret 1; for(n1; n10; n) { for(i1; in; i) { ret * i; } sum ret; } printf(%d\n, sum); return 0; }错误原因ret 没有每次重置为 1。调试方法F10 逐步观察 ret 和 sum 的变化。7. 调试举例 2数组越界死循环#include stdio.h int main() { int i 0; int arr[10] {1,2,3,4,5,6,7,8,9,10}; for(i0; i12; i) { arr[i] 0; printf(hehe\n); } return 0; }现象死循环原因栈区从高地址到低地址使用数组越界覆盖了变量 ii 被改成 0循环永远不结束8. 调试举例 3扫雷游戏调试技巧在函数入口打断点F9F5 直接跳到函数F11 进入函数内部监视窗口输入一维数组数组名,10二维数组数组名[0],119. 编程常见错误归类9.1 编译型错误语法写错、少分号、括号不匹配双击错误行直接跳转到问题位置9.2 链接型错误函数名写错、未包含头文件、未实现函数提示无法解析的外部符号9.3 运行时错误逻辑错、死循环、越界、崩溃必须用调试解决 课后习题一、选择题调试程序时VS 必须切换到A. DebugB. ReleaseC. 都可以D. 随便想要进入函数内部调试使用快捷键A. F5B. F9C. F10D. F11数组越界导致死循环通常发生在A. 堆区B. 栈区C. 全局区D. 常量区二、判断题Release 版本可以正常调试。F10 是逐过程不会进入函数。运行时错误必须靠调试才能定位。三、实操题打开阶乘求和错误代码用 F10 调试找到错误并修复。对扫雷游戏的SetMine函数打断点调试观察布雷过程。 参考答案一、选择题ADB二、判断题×√√ 本讲总结调试是程序员必备技能不会调试就不会写代码。Debug 用于调试Release 用于发布。必背快捷键F9 断点、F5 运行、F10 逐过程、F11 进函数。监视窗口、内存窗口可以看清程序内部。错误分三类编译错、链接错、运行错调试专治运行时错误。学会调试你就能真正掌控代码。 版权说明本文为个人学习笔记整理配套课程课件内容未经允许禁止转载如有错误欢迎评论区指正