解决什么问题:从“猜”到“查”
对于刚接触 C/C++ 开发,尤其是需要在 Linux 环境下进行服务端或嵌入式编程的程序员来说,最大的痛点往往不是编写逻辑,而是逻辑出错后的排查。当程序出现段错误、内存泄漏或死锁时,仅靠打印日志不仅效率极低,甚至可能因为频繁重启导致现场丢失。这门课的核心价值,在于系统性地引入 GDB 这一底层调试工具。它不只教你敲命令,而是教你建立“调试思维”:如何通过断点定位错误发生时刻,如何查看寄存器与内存状态来理解硬件级行为,以及如何在多线程并发场景下追踪线程交互。学完这门课,你不再需要面对崩溃栈感到无措,而是能独立剖析复杂故障,具备处理高难度线上 Bug 的基本功底。
适合谁学及入门门槛
这门课适合已经掌握 C/C++ 基础语法,并熟悉 Linux 命令行基本操作(如编译命令 make/g++)的学习者。你不需要成为算法专家,但必须对指针、内存模型和多线程同步机制有基本认知,因为 GDB 调试的本质是在观察程序在内存中的实时状态。如果连指针解引用和线程互斥量概念都不清楚,直接上 GDB 会非常痛苦。建议学习者先准备一个 Linux 环境(Linux 主机或虚拟机均可),并编译好一个包含简单错误的 C++ 程序作为练习靶子。不要试图在 Windows 上运行所有示例,部分底层内存操作在 Windows 下行为不同,为了还原课程效果,统一在 Linux 环境下实践最佳。
学习路径与资料配合策略
资料包中的视频内容逻辑清晰,建议分三步走。第一步,重点攻克基础操作模块,包括启动调试、断点管理、变量与内存查看。这一阶段的目标是形成肌肉记忆,确保你能在 30 秒内完成设置断点和单步执行。每看完一节视频,立即在本地项目中复现,不要只看不练。第二步,深入线程调试与高级断点技巧,如观察点(Watchpoints)和捕获点(Catchpoints)。这部分内容对应真实工作中最棘手的并发竞争问题,建议专门编写一个多线程死锁或数据竞争的小程序,用 GDB 逐步排查,体会线程切换时的状态变化。第三步,综合应用。尝试调试一个稍复杂的开源小项目,模拟真实开发场景。学完并能独立运用这些技能后,你具备的能力是:面对一个未知的崩溃现场,能迅速通过调用栈定位代码行,通过内存检查判断是否越界,通过线程分析找出竞态条件,最终给出修复方案。这种能力在转行 C++ 后端或嵌入式岗位时,是区别于初级求职者的关键竞争力。
课程目录
596a3d044818163-103-600x173.jpg (14. 88 KB, ) 2025-1-4 20: 20 上传 1-1linuxcc++调试准备工作.mp4 1-2启动调试.mp4 1-3调试断点管理.mp4 1-4变量查看与修改.mp4 1-5内存查看与修改.mp4 1-6寄存器查看与修改.mp4 1-7源代码管理查看搜索.mp4 1-8源代码管理查看搜索2.mp4 1-9函数调用栈管理.mp4 2-10为线程执行命令.mp4 2-11线程日志信息控制.mp4 2-12执行外部命令以及保存命令及输出.mp4 2-1观察点使用.mp4 2-2捕获点使用.mp4 2-3为断点执行命令.mp4 2-4gdb多窗口管理.mp4 2-5查看对象类型.mp4 2-6多线程基础.mp4 2-7c++跨平台多线程知识.mp4 2-8多线程调试管理.mp4 2-9线程查找线程断点.mp4 3-1跳转执行-任意执行代码穿越到过去和未来.mp4 3-2反向执行-调试中的undo.mp4 3-3调试子进程.mp4 3-4多进程调试.mp4 3-5调试时调用内部外部函数.mp4 3-6调试时跳过指定函数.mp4 3-7制作调试发行版.mp4 3-8软件补丁制作-直接编辑二进制程序.mp4 4-1内存泄漏检测.mp4 4-2检测各种内存问题检查泄漏栈溢出野指针等.mp4 4-3远程调试.mp4 4-4多线程死锁调试.mp4 4-5核心转储coredump基础.mp4 4-6栈溢出核心转储coredump分析.mp4 4-7无调试符号coredump分析.mp4 4-8软件






