使用 VSCode 在 Mac 上配置 C/C++ 调试环境
Background
VSCode是微软开发的一款开源代码编辑器,具有可拓展性强,多语言支持,跨平台等优点,在不同的个性化配置下几乎可以用作所有的轻量级开发。我在初学C的时候也使用的是类似于Xcode、Visual Studio等大型IDE来新建一个C语言工程,编写一个仅含有main函数的文件,显得过于大材小用了。后来学校推荐使用的Code::Blocks和Dev C++也已经多年没有更新,且界面古老,对Mac的支持也很差。直到使用了VSCode并正确配置了之后,我似乎找到了当下最适合用于学习C/C++的代码编辑器。
下载与安装
https://code.visualstudio.com/
配置调试环境
首先你需要在你的硬盘上新建一个文件夹用于存放你的代码文件。我这里使用的是LearningRepo。在新建一个C或者C++文件后会自动提示安装Extension For C/C++ Support。你也可以在插件页手动安装。如果你喜欢中文界面,直接在插件中搜索Chinese就可以得到中文语言支持。
此时你已经可以新建代码文件并编辑。但为了能在终端中直接调试代码,我们还需要配置Launch.json和task.json。
配置 launch.json
进入左侧的调试页面,选择[添加配置…],就会自动在你的工作目录下新建一个.vscode文件来存放你的调试配置。这里我们选择C/C++: (lldb) Launch。
对于这里的配置,官方的文档里( https://go.microsoft.com/fwlink/?linkid=830387 )有详细的说明。对于一般用户,我在这里修改成了如下配置。
{"preLaunchTask": "build c++","name": "Launch C++","type": "cppdbg","request": "launch","program": "${workspaceFolder}/temp/${fileBasenameNoExtension}.out","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "lldb", }
大部分保持默认,需要修改的地方如下:
preLaunchTask:手动添加的参数,稍后我们会自行编辑的一个任务,其作用是将当前文件编译成可执行文件。
program:需要和稍后配置的task相对应,即打算运行的程序。需要设置为二进制程序目录而不是源代码文件。
externalConsole:设置为true来在外置终端(macOS自带的)中运行程序。该选项设置为false的话会在内置终端中运行,无法输入数据(应该有解决方法,但我目前没有发现)
如果你需要打开日志来排查问题,加入以下内容:
"logging": {// "engineLogging": true,"trace": true,"traceResponse": true,}
这个运行任务的意思就是首先运行一个build c++的task来,得到可执行文件,接着再运行并调试这个文件。
配置 task.json
对于默认快捷键,点击command+P并输入>task来新建一个生成任务。
在该文件里,我们配置一个名为build c++的task,将文件编译到工作目录下temp文件夹下的对应文件(你也可以自行配置生成目录,但需要和上面的launch.json相对应。我的build c++配置如下:
{"label": "build c++","type": "shell","command": "g++","args": ["${file}","-std=c++17","-o","${workspaceFolder}/temp/${fileBasenameNoExtension}.out","-g"],"group": "build","presentation": {"echo": true,"focus": false,"panel":"shared","showReuseMessage": true,"clear": false,"reveal": "silent"}, },
大多数配置保持默认即可。我这里修改的地方主有:
label:任务名称,和launch.json对应
command:g++来编译C++,gcc来编译C
args:即命令行运行参数。我在这里使用的C17标准。-o下面的一个参数即为输出目录。其中${fileBasenameNoExtension}表示没有拓展名的文件名。
配置好以上两个文件后,你应该就可以在调试界面运行程序并设置断点、监视变量了。如果出现变量未验证(Unverified Breakpoint)的问题,文末有一个常见的解决方案。
个性化
之前Visual Studio特别吸引人的一点就是在输入完一行代码后,编辑器会自动帮我在诸如运算符左右的地方加上空格并整理大括号的位置。这一Auto Formatting功能在VSCode下也得到了保留。可以按需在设置里开启Format On Paste, Format on Save, Format On Type的选项。
此外,在商店市场里还有许多配色主题和图标主题可以选择。
一些 Tips
无法设置断点的解决方案
前阵子会很莫名其妙地遇到部分c语言文件中的断点无法正常停止的问题。所有断点打开后都会提示Unverified Breakpoint,但有些文件却可以正常打断点。搜索许久未果,为此还特地开了一个GitHub的的issue(https://github.com/Microsoft/vscode-cpptools/issues/3246)。
后来其实解决方案很简单。文件目录里不要有空格就好了。
(摔
将你的文件夹托管到 GitHub
使用GitHub Desktop可以可视化地将代码托管到GitHub。但VSCode也内置了源代码管理。大多数基本操作都可以在这里完成。你还可以下载Git History插件来查看提交情况。如果该文件夹还没有一个Git仓库,只需要点击初始化就可以了。
提交的时候如果你没有配置过你的用户名和密码,可能会报错。这时候使用快捷键control+`打开终端,配置一下默认用户名和邮箱:
git config --global user.name "用户名" git config --global user.email "用户邮箱"
在Push更改的时候,会需要输入你的GitHub账户和密码。如果想要保存账户和密码,在终端中使用git config --global credential.helper store
即可保存你的凭据。
对于 Linux 的更改
VSCode同样提供具有GUI的Linux系统版本。如果你使用虚拟机并在虚拟机中共享同一个工作文件夹,lldb的调试配置文件可能会无法运行。这时候只需要将你的Launch.json中的”MIMode”配置由lldb改成gdb即可。
一些值得推荐的插件
这里是我觉得一些比较不错的插件,会有极小几率持续更新。
- Markdown All in One:
- 增强的Markdown预览,支持了LaTeX公式,并可以格式化美化源文件。
- sftp:玩服务器的话可以试一试,小规模操作可以丢掉FileZilla了。直接使用VSCode编辑服务器文件简直太棒了。
- Markdown PDF:Markdown党的福音,可以利用Chromium内核将md导出美观的pdf文件。
- Nasc VSCode Touchbar:自定义TouchBar上的功能,可以添加注释、批量重命名、跳转定义等功能,更加接近Xcode的TouchBar体验。
- FontSize Shortcuts:可以使用Command + +/-快速调整编辑器中文本字体大小而不影响其他部分的大小。
- CodeRunner:免配置一件快速运行多种语言的代码,不支持断点调试。
- VSC Netease Music:网易云音乐的VSCode插件?实用性需考证,更像一个玩具。不过很好玩。
来源:https://billc.io/2019/03/mac-vscode-guide
转载于:https://www.cnblogs.com/BillChen2000/p/mac-vscode-guide.html
使用 VSCode 在 Mac 上配置 C/C++ 调试环境相关推荐
- mac 上配置 git send-email
背景:周末在家,因工作需要给社区发邮件,但在 mac上配置 git send-email时遇到了很多问题,折腾了两个半小时才搞定,值得记录一下. 在公司内网给社区发邮件时,只需要在所用的 Linux服 ...
- mac命令行配置代理服务器_如何在Mac上配置代理服务器
mac命令行配置代理服务器 When you configure a proxy server on your Mac, applications will send their network tr ...
- 如何在mac上配置Apache服务器
如何在mac上配置Apache服务器 1. 打开终端,开启Apache: //开启apache: sudo apachectl start //重启apache: sudo apachectl r ...
- mac 配置android home,mac上配置Android环境变量的方法
1.AndroidSDK路径查看 (1)AndroidStudio: 菜单栏AndroidStudio > Preferences > Appearences&Behavior & ...
- python数据分析开发环境_在MAC上搭建python数据分析开发环境
最近工作转型到数据开发领域,想在本地搭建一个数据开发环境.自己有三年python开发经验,马上想到使用numpy.scipy.sklearn.pandas搭建一套数据开发环境. ubuntu的环境,百 ...
- g++ linux 编译开栈_Linux下编写C++服务器(配置C++编译调试环境)
Linux下编写C++服务器(配置C++编译调试环境) 安装好linux虚拟机,确定能上网后,我们可以开始编写C++程序了,但在这之前我们需要下载编译器和调试器 下载gcc 1.在终端输入yum se ...
- python调用按键精灵插件_开发中IDE的选择?如何在VsCode上配置CC++,Java,Python环境...
前言 工欲善其事必先利其器,这也是老生常谈的事情了.在做日常开发中,让我感受到一个顺手的开发工具的重要性.截至目前对于不同语言自己也使用过很多开发工具,有一些简单的编辑器例如:notepad++.Ed ...
- Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
转自:http://blog.csdn.net/song_hui_xiang/article/details/42921537 准备工作: 下载cocos2d-js引擎,版本v3.2,要做的第一件事就 ...
- 使用 Karabiner 在 Mac 上配置非苹果键盘
偶然看到即刻上推送的一篇叫程序员的键盘使用指南的文章,记录一下自己的配置过程,大家也可以直接去看原文,分析的非常好. 首先需要下载一款名为Karabiner的软件. 调换win键和alt键 因为mac ...
最新文章
- 计算机二级vf知识点总结,2015年计算机二级考试《VFP》复习重点:第四章
- easyui messager 消息框 对话框
- 分隔链表Python解法
- 使用NoSQL实现实体服务–第2部分:合同优先
- 参数化查询为什么能够防止SQL注入
- opencart修改网站顶部电话联系方式
- C#俄罗斯方块代码完整版带部分注释
- Tex中关于字体更换的问题
- PyCharm添加背景图片
- 什么是黑盒测试?它的常用方法有哪些?
- 计算机二级考试用户名怎么查,计算机二级考试成绩查询方法与具体步骤
- Java第十二周作业
- 很喜欢这句话:将军赶路,不追小兔
- python算三角形面积怎么样保留两位小数_通过坐标计算三角形面积
- dataTable 查询,重置
- 贝叶斯优化调参-Bayesian optimiazation原理加实践
- 关于制定《传统蒙古文信息交换与处理字形字符标准编码》
- Android语音识别——谷歌语音识别与百度语音识别
- 微信图片消息 服务器故障,解决图片上传到微信服务器后无法显示问题
- java计算机毕业设计开发的校园情感网站源程序+mysql+系统+lw文档+远程调试