问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用VSCODE 对 C 进行调试

发布网友 发布时间:2024-08-20 12:13

我来回答

1个回答

热心网友 时间:2024-09-01 01:07

背景:使用 vscode remote 在 linux 云主机上进行远程 C 开发

由于 vscode remote 赋予了图形化界面,因此基于 linux 平台进行图形化调试成为可能

首先确保在 linux 上已安装 C 开发必要的程序包:

必要的 vscode 扩展:

local:

ssh-linux:

C/C++

接下来创建调试引导文件(launch.json)

如果当前 workshop 没有调试引导文件(launch.json),则可以通过侧边栏调试按钮>Run and Debug 创建默认 launch.json

在弹出的环境选择框中,选择 C++ 即可

如此便会在 yourworkshop/.vscode/ 创建 launch.json 文件

下面对 launch.json 文件进行一些修改,(说明在注释里)

一般修改 "program" 字段,在这里我改成 "${fileDirname}/${fileBasenameNoExtension}",其中:

如果在 yourworkshop/.vscode/ 已有 launch.json 文件,则可以根据需要对 "configurations" 字段添加 launch 实例

接下来就是调试

一个简单的调试示例

test.c:

foo.c:

首先确保 "program" 字段指向的调试程序已存在, 由于我设置成 "${fileDirname}/${fileBasenameNoExtension}",即 ./test 已生成(可以通过手动 gcc 编译生成,或通过 make 等命令,记得加上 -g 或者 -ggdb 选项)

在调试侧边栏选择 launch 实例(由 "name" 字段标识),通过 F5 或者绿色三角即可启动调试

vscode 支持四种断点:

前三种可以在行号左侧通过右键增加

函数断点可以通过侧边栏最下面的断点栏手动增加

当程序运行至断点处会中断,并会在侧边栏显示当前局部变量,监视变量以及堆栈跟踪

此时可以进行单步运行等操作

值得注意的是:如果某函数没有携带调试信息,那么无法进行单步进入(step into)

下方 debug console 窗口,可以和 gdb 进行交互(因为某些功能 vscode 没有提供)

最常见的功能为查看内存

-exec 表示命令

x 表示查看内存命令

/4 表示查看4个连续单元

p 表示内存起始地址(这里为指针 p)

输出变量

-exec 表示命令

print 表示输出命令

num1 需要输出的表达式

还可以设置 gdb 环境变量(可以和当前局部变量交互)

事实上 vscode C/C++ 的调试机制只是对 linux 上的 gdb 命令行调试工具进行了包装
使用VSCODE 对 C 进行调试

在调试侧边栏选择 launch 实例(由 "name" 字段标识),通过 F5 或者绿色三角即可启动调试 vscode 支持四种断点:前三种可以在行号左侧通过右键增加 函数断点可以通过侧边栏最下面的断点栏手动增加 当程序运行至断点处会中断,并会在侧边栏显示当前局部变量,监视变量以及堆栈跟踪 此时可以进行单步运行等操作...

vscode怎么调试c语言

1、打开你要写c++程序的文件夹,我们这里新建一个Test文件夹并打开test,打开后:使用VScode运行调试C/C++,在左侧打开的目录中新建一个 main.cpp 文件。2、新建后点左侧的调试按钮(英文:Debug),可以看到,目前没有调试配置。3、这时我们需要配置自己的调试配置,回到资源管理器界面,我们可以看到目录...

vscode 配置 c/c++(markdown)

要充分利用VSCode配置C/C++环境,首先确保已安装了VSCode、mingw64和相关的C/C++插件。为了保持代码结构清晰,建议为cpp和c的示例程序分别创建独立文件夹。配置过程从创建配置文件开始:通过快捷键Ctrl+Shift+P,选择"C/C++ Configuration (UI)",然后点击"C_cpp_properties.json",进行文件设置。接着,按...

mac上使用VScode 编译配置C/C++程序完整图文教程

首先,你需要从官方网站下载并安装适用于Mac的VScode。 安装必要的插件:打开VScode后,通过快捷键"⇧⌘X",进入扩展商店,搜索并安装"C/C++"和"C/C++ Clang Command Adapter"。安装完毕后,别忘了重启VScode以激活插件。 接着,新建项目。在已经打开的文件夹中,点击"打开文件夹",接...

vscode如何配置c语言运行环境?

在系统环境变量中添加GCC的bin目录路径,确保VScode能正确识别GCC。安装VScode插件,增强其C语言支持,提高编程效率。创建项目文件夹,确保路径中无英文字符,便于后续操作。编写简单的“Hello World”代码,验证环境搭建是否成功。配置launch.json文件,设置调试参数,实现C语言程序的运行与调试。至此,C语言开发...

一键搞定 VSCode 下的 C/C++基本开发环境配置

无需手动创建.vscode文件夹,直接在VSCode中按F5,插件将自动生成launch.json和tasks.json,它们已预设为基本运行和调试的配置。C++项目选择g++.exe编译器即可。进阶:多文件项目 若项目包含多个文件,如mod.h和mod.c,只需在tasks.json中配置编译参数,VSCode会帮助你处理多文件项目的构建。疑问:tasks....

Linux环境下使用VScode调试CMake工程

接下来,调试CMake工程就变得简单了。编译完成后,VSCode会自动识别生成的可执行文件helloCMake。在launch.json中,需要配置使用gdb调试器,指定要调试的文件和断点位置。只需在helloCMake.cpp文件中设置断点,通过F5键即可启动调试。总的来说,通过VSCode和CMake的结合,即使在Linux环境中,管理和调试C++...

vscode C++ debug 配置(ubuntu 20.04)

1. 安装VSCode和相关环境:确保VSCode、gcc、g++、gdb等工具已安装在系统中。2. 项目调试配置:在VSCode中,关键配置文件包括.vscode文件夹下的tasks.json、launch.json和c_cpp_properties.json。2.1. IntelliSense配置:通过安装C/C++插件,为VSCode提供代码提示功能。2.2. tasks.json文件:用于指定编译...

vscode配置C++环境

在VSCode中,新建一个简单的C++项目及cpp文件。通过调试界面添加配置,选择C++(GDB/LLDB)并配置g++.exe。此时,VSCode会自动生成launch.json配置文件,您需要在此文件中添加具体配置,例如设置程序路径、启动参数、工作目录等。确保您的launch.json配置文件如下所示,包括设置名称、请求类型、程序路径、环境...

vscode怎么配置c语言的断电调试啊?请大神们教一下啊

一、VC下单步调试的基本步骤: 1、F5进入调试; 2、F10单步调试(F11进入子函数单步调试)。二、调试常用快捷键:逐过程调试—F10 逐语句调试—F11跳到光标处—Ctrl+F10 跳出本循环—Shift+F11 设定断点—F9 删除所有断点—Ctrl+Shift+F9 开始编译 F7 重新编译 –Ctrl+F7 开始调试--F5 停止调试—...

vs如何进行调试 VS2015无法调试 如何用vs调试程序 vs为什么不能调试 vs逐语句调试 vs如何调试 vs怎么逐语句调试 vs调试看数据窗口 vs为什么不能开始调试
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
联通用户登陆联通网查询话费,要输入服务密码,服务密码是什么... 山东省平原县1.3升夏利n5车船税多少钱 江淮同悦标配与夏利N5高配哪个好?12月份买车合适吗?听说明年要取消优惠... 赛鸥强险费用为什么比夏利N5便宜? 在网上查话费清单,让输入网站密码???是什么?中国移动的 2014年9月2号买的夏利n5汽车车船税交多少 树挪死人挪活是什么意思 树挪死人挪活的意思介绍 硬盘开盘数据恢复什么情况下需要进行开盘数据恢复 数据恢复硬盘开盘全过程介绍_数据恢复硬盘开盘全过程是什么 硬盘开盘数据恢复开盘数据恢复所需的环境 使用VScode在Windows调试Linux的GUI程序 vsc软件快捷键(vscode的快捷键) vsc软件运行快捷键(vscode快捷键大全) 为什么有些人不喜欢吃洋葱? 湿气重怎样调理 怎么调理湿气重 10个提高Web开发效率的VS Code插件 Bigfish VSCode 插件开发实践 闲谈Monaco Editor-基本使用 VSCode远程开发指南 防雷检测企业 我的学籍在学信网注册时,学校误把我的名字注错一个字,学校说不能改是... 学校改名了,学信网上会改吗? 江苏奥凯环境技术有限公司怎么样 lol排位更新时间 lol排位什么时候重置-排位重置时间一览 一岁半小孩半夜哭闹是什么原因 四岁宝宝晚上睡觉哭闹是什么原因 宝宝九个月了晚上老醒是怎么回事 婴儿佝偻病的症状 小儿佝偻病的症状是什么 晧和皓有什么区别? 匪患怎么禀报皇帝 煎药壶多大适宜?如何选择? 膀胱癌T3是晚期吗 膀胱癌如何分期 膀胱癌分期有哪些? 煎药壶的最佳容量是多少?如何挑选? 肌层浸润膀胱癌T3期能治好吗 膀胱癌的分期标准 膀胱癌分期 膀胱癌怎么分期 诗经内容简介 樟宜机场有哪些店 新加坡樟宜机场转机 胆子大的水虎鱼品种 手机拍照怎样把蓝底变成白底? 怎样将蓝底照片背景变成白底的? 植筋锚固长度规范GB50367是什么 植筋锚固长度规范GB50367是什么意思? 植筋锚固长度规范