【Debug】vscode代码方法

本文详细介绍了Visual Studio Code中的调试功能,包括Continue继续、StepOver单步跳过、StepInto单步调试、StepOut单步跳出、Restart重启和Stop停止。通过实例演示了如何在遇到自定义函数和断点时灵活运用这些工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vscode调试方法

1. Continue 继续:

在这里插入图片描述

继续执行程序,直到遇到下一个断点为止。

Pause 停止:在程序运行时,continue 按钮会变成 pause。点击后在当前运行行停下来(对于小型程序你根本反应不过来就执行到下一断点/结束了,所以都看不到变成pause的样子)

我们通过while写个死循环的方式,看到了暂停按钮,如图2:
在这里插入图片描述
【图2】在程序运行时,“继续”键变成“暂停”键。

2. Step Over 单步跳过:

在这里插入图片描述

在普通代码行运行时,会逐行运行程序。

若遇到调用自定义函数命令,且在该定义的函数里没有断点,则直接运行完该函数,不会进入该函数并逐行运行该函数内的代码。(对比3 Step Into)如图3。
在这里插入图片描述
【图3】 (Step Over 单步跳过)执行到自定义函数后,自定义函数内没有断点,则直接执行完整个自定义函数。

否则,若在函数(def块)内有断点,则会在自定义函数里执行到的第一个断点停下,如图4:
在这里插入图片描述
【图4】(Step Over 单步跳过)执行到自定义函数后,自定义函数内有断点,则直接执行到自定义函数中的第一个断点。

3. Step Into 单步调试:

在这里插入图片描述

逐行顺序运行程序。若遇到自定义函数(def),则进入该函数,逐行运行该函数内的代码。即,该步骤会按顺序走程序里的每一步,如图5:
在这里插入图片描述
【图5】(Step Into 单步调试)按顺序走程序中的每一步。

总结一下:第2,3个按钮(单步跳过/单步调试),在自定义函数外都是逐行运行代码,区别在于执行到自定义函数时,是否会进入到该自定义函数内继续逐行运行。

4. Step Out 单步跳出:

在这里插入图片描述
当前运行在自定义函数(def)里时,如果在该自定义函数里没有断点,则会直接运行完当前自定义函数,停在调用函数的那一行。如图6:
在这里插入图片描述
【图6】(Step Out 单步跳出) 自定义函数里没有断点,单步跳出后,会直接运行完函数,回到调用函数的第16行。

5. Restart 重启:字面意思。重开。

在这里插入图片描述

6. Stop 停止:立即停止整个程序运行

在这里插入图片描述

### C++调试扩展推荐 对于C++开发而言,`C/C++`插件提供了强大的IntelliSense、调试功能和代码浏览能力[^1]。此插件由Microsoft官方提供支持,确保了其稳定性和可靠性。 为了更好地进行调试工作,除了基本的`C/C++`插件之外,还可以考虑安装其他辅助性的扩展: #### 1. Code Runner Code Runner允许开发者直接在编辑器内快速运行各种编程语言的小片段或整个文件,非常适合测试简单的逻辑或是学习新概念时使用。不过需要注意的是,在处理复杂项目时可能不如完整的构建流程那样严谨[^4]。 ```json { "code-runner.runInTerminal": true, "code-runner.executorMap": { "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt" } } ``` #### 2. Native Debug Native Debug是一个轻量级的GDB/Lldb前端界面,专为那些希望通过图形化方式管理断点、查看变量等内容的人设计。它能够很好地补充`C/C++`插件中的某些不足之处,特别是在面对更复杂的场景时表现出色[^3]。 ```json { "launch": { "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.out", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build hello world", "miDebuggerPath": "/path/to/gdb", // 需要根据实际情况修改路径 "logging": { "trace": true, "traceResponse": true, "engineLogging": true }, "internalConsoleOptions": "openOnSessionStart" } ] } } ``` #### 3. CMake Tools 当涉及到较大规模的应用程序开发时,采用CMake作为构建系统将会极大地简化依赖管理和跨平台移植等问题。此时配合`CMake Tools`插件可以让整个过程变得更加顺畅自然。 ```json { "cmake.configureSettingsFile": ".vscode/settings.json", "cmake.buildDirectory": "${workspaceRoot}/build", "cmake.sourceDirectory": "${workspaceRoot}" } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宇光_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值