确保你的环境已经配好,下面就是操作调试器最直接的方法,没有多余步骤。

 

1. 设置断点

在你想暂停的那一行代码的行号左侧,用鼠标点一下 → 出现一个 红点(断点)。

1 断点示例
这里我给第8、9行设置了断点

2. 启动调试

        按 F5(最常用)

        或点击左侧“运行和调试”图标(虫子🐞),然后点顶部的绿色三角 ▶

程序会运行,并在第一个断点处 自动暂停(当前行有高亮)。

step1 启动后我们看到程序运行到第一个断点停止并高亮

3. 控制程序执行(调试工具栏)

暂停后,屏幕上方会出现一个小工具栏(或按快捷键):

或按快捷键

操作快捷键作用
继续F5执行到下一个断点,或运行至结束
单步跳过F10执行当前行,不进入函数内部
单步进入F11如果当前行有函数,进入函数内部
单步跳出Shift + F11执行完当前函数的剩余代码,返回调用处
停止调试Shift + F5立即结束调试
重启调试Ctrl + Shift + F5停掉当前调试并重新开始

> 你可以把鼠标悬停在工具栏按钮上,也能看到对应的快捷键

我们来试试不同的操作会有什么效果:

step2 :在step1的基础上按一次F5或点击工具栏第一个continue按钮
step3:在step2基础上按一次F10或第二个step over按钮我们得到,最后再按F5运行完整个程序

这样的运行结果是:

我们点击restart按钮或按Ctrl + Shift + F5重新回到step1,再按F11或step into按钮:

step4:在调用函数的断点语句按F11或工具栏,我们来到了函数内部

我们接下来按step out按钮或Shift + F11,跳出函数内部:

step5:我们看到第八行语句被执行并来到了下一个断点。

 若此时我们终止程序,按stop按钮或Shift + F5,则调试结束。

 

4. 查看和修改变量的值

调试暂停时,看左侧的 “变量”(VARIABLES) 区域:

  • 展开 “局部”,能看到当前函数里的所有变量及其值。

  • 鼠标悬停在代码的变量上,会弹出一个小窗显示当前值。

  • 双击变量的值,可以直接修改(比如把 feet = 12 改成 feet = 5),然后继续运行 → 程序会按新值执行,方便测试不同分支。

    feet = 5 的执行结果

5. 监视表达式(Watch)

在左侧 “监视”(WATCH) 区域,点击 + 号,输入你想跟踪的表达式,比如:

text

i * 2 + 3

每步执行后,它都会自动计算并显示最新结果。

6. 调用堆栈(Call Stack)

左侧 “调用堆栈”(CALL STACK) 显示当前函数是怎么一层一层被调用的。
点击其中任何一行,编辑器会立刻跳转到对应的代码位置,方便追踪错误来源。

一个简单的演练示例(C 程序)

假设你有这样一个程序:

#include <stdio.h>
int add(int a, int b) {
    return a + b;
}
int main() {
    int x = 3, y = 5;
    int sum = add(x, y);
    printf("%d\n", sum);
    return 0;
}


操作顺序

  1. 在第 6 行 int sum = add(x, y); 左侧点击 → 设置断点。

  2. 按 F5 → 程序在第 6 行暂停。

  3. 鼠标悬停在 x 和 y 上,看到分别是 3 和 5。

  4. 按 F11(单步进入)→ 进入 add 函数内部。

  5. 在 add 函数里,可以看 a 和 b 的值。

  6. 按 Shift + F11(单步跳出)→ 返回 main 函数。

  7. 按 F5(继续)→ 程序执行完并退出。

常见小提醒

  • 如果断点是灰色空心圆:说明编译时没加 -g 选项,回顾 tasks.json 里是否有 "-g"

  • 如果调试时没有停在断点:确认你打开了包含断点的源文件,且编译生成的可执行文件与当前源代码是对应的(重新编译一次)。

  • 如果想在程序启动时立即停在第一行:在 launch.json 里设置 "stopAtEntry": true


这样就算完全掌握了调试器的基本操作。接下来你遇到任何逻辑错误,都可以用 F10/F11 一步步走,看变量变化,很快就能找到问题所在。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐