在VScode的debug使用中经常会遇到不同的报错,比如
unable to find executable for '/Users/xxx/Documents/Code/build/Debug/outDebug'
因此对于环境的配置需要一套比较完整的流程。需要说明的是,本次的系统是Mac系统,Windows系统需要手动下载MinGW编译器,并且配置完路径后才能使用。
扩展设置
首先要保证一些拓展已被添加,具体如下:
添加完了之后我们需要点Code Runner右下角的小齿轮点击扩展设置,设置一些适合我们的配置。
首先是Clear Previous Output勾选上,其作用很明显,就是清除之前的输出结果;
而后是Ignore Selection勾选上,其作用是防止你在误触等各种情况下选中了部分代码,系统不会默认只运行被选中的代码,而是总是运行完整的代码;
而后Run in terminal一定要打勾,否则无法输出;
Save All Files Before Run 打上勾,其作用即字面意思。
之后Code Runner的设置也就结束了
编译器配置
打开终端,输入
xcode-select --install
再输入clang查看编译器是否添加完成
clang
注意若输出no input files是正常现象,说明系统认识clang这一命令,只是没找到输入文件
注:command line tools是时常在更新,要及时推进更新
代码设置
一般而言,VScode以文件夹为单位配置文件,因此最好在固定文件夹内工作。
点击左上角资源管理器 后点击打开文件夹,可以自己创建,也可以打开已有文件夹。
打开文件夹后,点击
最左端的“新建文件”创建文件,然后对文件进行命名。本文章主要针对c#语言,我们需要把文件命名为“{具体名称}.cpp”或者“{具体名称}.c”的形式。
注意:文件夹和文件的名称最好是不要出现空格、中文以及其他默认不接受的字符
然后在所创建的文件中添加代码,以方便之后的调试,建议使用最简单的helloworld代码。代码书写完成后,若窗口内名称右侧有小白点,
说明此时还未实现实时保存,两种解决方案:
1、保存
2、(推荐)左下角齿轮点开,点击设置,将常用设置中的第一个Auto Save从off改成afterDelay
而后推荐在设置的时候顺便在搜索栏内搜索Debug Shortcut,将其取消勾选。其作用是将运行方式整合,去掉不必要的分支。
而后回到程序界面,点击右上角的小三角(RUN),即可运行程序。
Debug设置
使用快捷键Shift+command+P后输入task,就可以看到这样的选项
点击,若是c语言,点击clang,如果是c++,点击clang++;
而后进入tasks.json文件,此时先不用管它,但是先别关闭,点击左侧文件夹内的.vscode文件找到launch.json文件;若.vscode内无,则点击左侧框内debug选项,而后点击运行和调试下方的创建launch.json文件
打开launch.json文件后,点击右下角的添加配置,选择“(lldb)启动”,会得到以下的配置:
{
"name": "(lldb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "输入程序名称,例如 ${workspaceFolder}/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb"
},
其中,将"program": "输入程序名称,例如 ${workspaceFolder}/a.out"改成
"program": "${fileDirname}/${fileBasenameNoExtension}"
将"externalConsole": false中的false改成true,而后在"MIMode": "lldb"底下添加一行(注意行和行之间有英文逗号,请勿遗落):
"preLaunchTask": ""
之后到tasks.json文件中,找到
"label": "C/C++: clang++ 生成活动文件",
这一行,复制引号内的内容, 即C/C++: clang++ 生成活动文件
粘贴到"preLaunchTask": ""的""内,即
"preLaunchTask": "C/C++: clang++ 生成活动文件"
至此,debug的配置就结束了,可以点击debug选项内的“(lldb)启动”,之后便会弹出终端以供调试
注意:一定要调成“(lldb)启动”,否则依旧报错
另外debug名称可以修改,只需要将tasks.json文件中的
"name": "(lldb) 启动",
修改一下即可。