wscode中vscode无法打开文件夹解析变量${workspaceFolder},请打开一个文件夹什么意思?c++运行不了

本系列第一篇已经对 Dev-C++ 集成开发环境进行了分享介绍。

本系列第二篇已经对 Code::Blocks 集成开发环境进行了分享介绍。

本系列第三篇已经对基于MinGW-w64构建C/C++语言基础开发环境进行了分享介绍。

本文接着补充本系列第四篇对利用Visual Studio Code进行调试入门进行介绍。

本次分享内容的目录如下:

代码调试入门(启动调试会话、调试控制面板介绍、设置断点、设置监视、执行调试)



Step3:然后从新的建议列表中选择“ gcc.exe - 生成和调试活动文件“。

launch.json文件中相关参数说明如下:

  • "name":用于配置本调试名称(将会在启动配置的下拉菜单中显示),按给出的默认值即可。
  • "program":用于指示将要进行调试程序的路径及文件名(完整路径),按给出的默认值即可。
  • "args":用于给程序调试时传递上面程序的命令行参数,如果不涉及程序运行时输入参数,则按给出的默认值(空)即可。
  • "stopAtEntry":用于指示调试器是否应该在目标的入口点停止,按给出的默认值(false)即可。
  • "cwd":用于指示调试程序时的工作目录,按给出的默认值(${workspaceFolder})即可。
  • "environment":用于针对调试的程序要添加到环境中的环境变量,按给出的默认值(空)即可。
  • "externalConsole":用于指示调试时是否开启新的终端执行程序,false表示使用内置终端,true表示开启新的终端。
  • "MIMode":用于指示要使用的调试工具,如gdb
  • "preLaunchTask":用于指示调试会话前执行的任务,按给出的默认值即可。

另外再介绍一个launch.json文件中没出现的一个参数logging:用于确定应将哪些类型的消息记录到调试控制台中。

  • exceptions:用于确定异常消息是否应记录到调试控制台的可选标志,默认为true
  • moduleLoad:用于确定模块加载事件是否应记录到调试控制台的可选标志,默认为true
  • programOutput:用于确定程序输出是否应记录到调试控制台的可选标志,默认为true
  • engineLogging:用于确定诊断引擎日志是否应记录到调试控制台的可选标志,默认为false
  • trace:用于是否应将诊断适配器命令跟踪记录到调试控制台的可选标志,默认为false
  • traceResponse:用于确定是否应将诊断适配器命令和响应跟踪记录到调试控制台的可选标志,默认为false

调试配置完成后,就可以开始进入调试环节了。

Step1:在左侧的资源管理器中选中待调试的源码文件(如:test.c),然后按快捷键F5 或 执行主菜单栏【运行】下的【启动调试】子菜单项,开始启动调试会话。

  • 变化1:在代码编辑器顶部(图示标号1处),将增加显示一个“调试控制面板”(可以通过抓住左侧的点在屏幕上移动它)。
  • 变化2:在窗体左侧(图示标号2处),显示调试信息(如变量区域、监视区域、调用堆栈区域、断点区域)。
  • 变化3:在代码编辑器出现醒目标识的代码行(图示标号3处)。
  • 变化4:在代码编辑器底部出现【集成终端】(图示标号4处),可以看到相关信息(编译信息、等待输入以及程序输出信息)。
  • 变化5:在代码编辑器底部出现【调试控制台】(图示标号5处),可以看到指示调试器已经启动并正在运行输出相关信息。
  • 变化6:在窗体最底部的状态栏(图示标号6处)显示调试状态。

下面对“调试控制面板”上的6个按钮按从左到右顺序逐一进行介绍:

可以在Visual Studio Code软件中设置断点来进行协助调试。可以通过菜单栏【运行】下的【新建断点】子菜单项下的4个子菜单项来创建四类断点:条件断点、内联断点、函数断点和记录点。

Step1:在代码编辑器中将插入点放在对应代码行;

Step2:然后按快捷键F9或菜单栏【运行】下的【切换断点】子菜单项,会看到在左侧的装订线中出现了一个红点,指示已在此行上设置断点。

Step3:类似Step1Step2完成其他代码行断点设置。

例下图中给代码第8行、第10行设置了2处调试断点:

注:每次新设置断点后,会在主窗体左侧的最下方【断点区域】看到已经设置断点的对应文件代码行号。

方法同设置断点,再次按下快捷键F9或菜单栏【运行】下的【切换断点】子菜单项,即可取消已经设置的断点。

注:每次取消已设置的断点后,在主窗体左侧的最下方【断点区域】能看到会同步取消已经取消断点的对应文件代码行号。

三、可以启用、禁用或删除所有已经创建的断点。

可以在主窗体左侧的【监视区域】通过在变量上设置观测点来实现在程序执行时跟踪具体表达式的变化。

如希望在【监视区域】能实时看到变量 ifact 值的变化情况,可以通过如下操作步骤实现:

Step1:将插入点放在循环内。在【 监视区域】中,单击加号+添加要监视的表达式,如ifact等。

Step2:然后逐步执行代码,此时请注意观察【监视区域】各变量值的变化情况。如执行了一次【单步调试】后的值情况如下:

执行一次单步调试后的监视表达式值

Step3:要在断点处暂停执行时快速查看任何变量的值,只需用鼠标指针悬停在变量上即可。

常规执行调试步骤参考如下:

Step1:按F9执行【切换断点】设置断点。

一般会在要进行调试的自定义变量或自定义函数处,设置断点(断点数目可根据需要设置多个)。

Step2:按F5执行【启动调试】

此时代码编辑器中会直接定位到第一处断点(第8行,有醒目提示)

注:如果代码没有设置断点,且不存在需要交互输入的情况,按【继续】按钮后将会一次执行完所有代码,并在【集成终端】选项卡中输出相应结果。

Step3-1:按F5执行【继续调试】,会执行到第二处断点(第10行);再次按【继续】按钮后,会完成本次代码执行,并在【集成终端】输出相应结果。

注:在【调试控制台】选项卡中可以看到GDB输出的诊断信息。

执行【单步跳过】会跳过本次不执行的代码,同时在主窗体左侧【变量区域】和【监视区域】可以看到各个变量值和表达式的变化。

注:若当前语句内包括函数且函数内设置断点,则会跳到函数内部断点处。

如果当前代码语句中包含函数,想看更详细的调试信息,则执行单步调试进入函数内部。然后可以根据需要执行其他调试操作。

如果不想执行函数内部的语句,则可以执行单步跳出直接跳出当前函数,返回到调用源。然后可以根据需要执行其他调试等操作。

注1:在执行Step3-1Step3-2Step3-3Step3-4步骤后,按钮后,注意观察主窗体左侧的【变量区域】的相关变量值、【监视区域】的相关监视表达式、【调用堆栈区域】、【断点区域】的实时变化。

注2:在【调试控制台】选项卡中可以看到GDB输出的诊断信息。

Step3-5:在代码执行过程中,可以随时按【重启】按钮,重启开启调试对话,返回到Step1

Step3-6:在代码执行过程中,可以随时按【停止】按钮,以结束本次代码调试。

也可以在【调试控制台】选项卡窗口执行GDB命令调试。


相信各位 C 语言初学者们阅读完本文后,应该已经对如何在Window平台利用Visual Studio Code来对C/C++语言程序进行调试有了一个基本的了解掌握,接下来就可以再次进入到 C 语言的学习应用环节了。

希望本文能对您有所帮助!喜欢的话就点个赞加关注支持一下哈:)

    实例化Schema,然后调用save方法:

    当checkUserPasswd为true时代表帐号密码验证没问题,接下来先将刚才从mongoDB查询到的用户信息转换为JSON对象

    并把userObj中不想返给前端的敏感数据清理掉

    model文件夹中定义model,然后在api文件中定义接口处理方法,routes文件中定义接口路径,挂载api中定义的方法,并在router文件夹的routes.js中整合路由

    注册接口的逻辑是先查询数据库验证name和username是否有重复的,如果没有重复的,则通过new User 来生成Schema实例,然后将实例信息保存到数据库中,需要注意的一点是,密码因为是敏感数据,所以在存库前需要利用加密插件bcrypt进行处理,存储完数据后返回相应状态和数据给前端

    // 允许最大体积为5M // 监听文件上传错误

    项目中自己定义了一个公共的递归查询并创建文件夹的方法dirExists,
    其实递归创建文件夹的功能可以通过make-dir 这个库来进行快捷的实现(相当于我们自己封装的dirExists方法),但是在本项目中原生实现了

    进行完上面的操作后,接下来获取到图片的完整名称ext,定义好图片的储存路径dir,利用uuid生成一个不重复的数字,然后将ext和dir组合成文件的唯一的完整路径+名称

    8.项目运行异常问题处理

    1.为什么上传的图片大一点就不行了?目前10kb以内可以,大于10kb不可以,无法触发接口
    2.上传图片之后拿到的图片无法正常显示,访问返回401
    3.踩坑:安装以来的时候bcrypt插件因为需要以来python,所以需要先手动安装python,然后手动npm install bcrypt 单独安装这个插件才行。

  • 本文目录: 1.项目初始化 2.封装axios 3.验证码功能实现 4.登录接口 5.设置全局路由守卫拦截非法请求...

  • 上接第一节内容,本节我们主要说明在这个项目中运用到的模块以及遇到的问题如何处理 相关模块介绍 整个package....

  • 罗列下这几年开发iOS的一些坑和个人的一些技巧总结。全是回忆所得,并不完整。1.属性修饰符误写,例如float写了...

  • 声明:这篇文章主要面向python/Flask/web后端初级开发者,文章主要讲解了如何搭建一个基于Flask的纯...

  • 这是一篇学习笔记,写于2019年3月20号。在学习过程中有些技术已经更新了,跟着老师的课程会出现警告或者报错,都已...

  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...

  • 我是一名过去式的高三狗,很可悲,在这三年里我没有恋爱,看着同龄的小伙伴们一对儿一对儿的,我的心不好受。怎么说呢,高...

  • 这些日子就像是一天一天在倒计时 一想到他走了 心里就是说不出的滋味 从几个月前认识他开始 就意识到终究会发生的 只...

我要回帖

更多关于 vscode无法打开文件夹 的文章

 

随机推荐