AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
C++
C++
级别 34
调试器做什么:暂停与单步执行
C++ SELF
等级 34,
课时 0
我们来讲解 C++ 中调试的基础机制:什么叫“程序暂停”,
debug session
与普通运行有什么区别,单步执行(
Step
/
Continue
)是如何工作的,为什么一行代码不一定只对应一步,以及为什么
Debug
构建需要调试符号。最后通过带有
std::cout
/
std::cin
的小例子巩固概念,并抓出一个真实的逻辑错误(把
+=
误写成
=+
),它会导致已完成任务的计数出错。
Breakpoints — 普通断点与条件断点
C++ SELF
等级 34,
课时 1
解析调试器中断点的工作方式:为什么 breakpoint 在执行该行代码之前触发(
在
执行行之前),以及最好在哪里设置它们(在
if
之前、在
for
内、在
return
之前),如何临时禁用断点以及如何使用条件断点来处理罕见情况(例如
i
==
999'999
)。在 PocketBudget 小项目上练习,使用
std::vector
<
int
>
,学习如何快速找到错误而不用“打印树”。
Call stack 和 stack frames — 如何阅读调用栈
C++ SELF
等级 34,
课时 2
解析什么是
call stack
和
stack frame
,如何在 IDE 中正确读取调用栈(哪个是“顶部”,哪个是“底部”)、为什么切换帧时变量会“消失”,以及调用栈如何帮助定位隐藏在调用链上方的错误。在 C++ 的教学示例中巩固:
main()
→
handle_done_command()
→
set_done_by_id()
→
find_task_index_by_id()
,另外单独查看递归以及
Step Into
/
Step Out
对栈的影响。
Watches:查看变量、表达式和容器
C++ SELF
等级 34,
课时 3
讲解如何在调试器中使用
Watches
窗口来监控变量和表达式,而不是通过
std::cout
不停地“刷屏”:如何构造假设,设置3–8个观测项,跟踪不变式(例如,
i
<
size()
),安全地查看
std::vector
元素,捕捉与
std::string
相关的问题,理解
scope
和
stack frame
的影响,以及快速找到逻辑“出错”的位置。
调试策略
C++ SELF
等级 34,
课时 4
我们分析在 C++ 中的工程化调试方法:如何稳定复现 bug、定位发生位置、提出可验证的假设并通过
breakpoint
、
watch
与
call stack
来验证。通过包含
std::vector
的小案例展示典型错误原因(整数除法、除以零、越界)并学习以最小改动修复问题,而不是“重写整个项目”。
Please enable JavaScript to continue using this application.