VSCode 调试
更全面的信息可以参考官方 调试手册 ,以下记录我用 VSCode 调试的一些经验。
想要在 VSCode 里调试,需要配置两个文件 tasks.json 和 launch.json 。
这两个文件按 F5 后会自动在 .vscode 目录下生成。
一般默认生成的 tasks.json 文件如下:
我们需要关注的选项有:
深入理解 tasks.json 文件的作用与 "command" 选项的用法,我们就能灵活地配置构建工程。
tasks.json 文件是用来构建工程的,当我们按 F5 进行调试时,VSCode 首先会执行 tasks.json 文件里 "command" 选项后的命令,并传入 "args" 参数,这样整个工程就被重新编译链接一遍了。
以 hello.c 文件和上述 tasks.json 为例,按 F5 进行调试时,最终会在命令行执行下述命令构建工程:
当然,如果一个工程有多个文件,"command" 就不能是简单的 gcc 了,需要根据实际的构建系统选择。
如果构建系统使用的是 Makefile ,那我们可以配置
这样在构建项目时就会使用命令
这跟我们平时使用 make 构建项目是一致的。
又比如配置 Zephyr 环境,
这样在构建项目时相当于执行命令
launch.json 文件用于配置调试环境。一般默认生成的文件如下:
我们需要关注的选项有:
VSCode 预定义了一些变量,可以在 Variables Reference 查看意思。
有时候我们的程序需要访问硬件资源,这一般需要 root 权限,而 VSCode 一般是在用户权限下启动的,这就需要特殊配置 VSCode 才能调试程序。
下面介绍如何利用 VSCode 以 root 权限调试程序。
首先需要注意到 launch.json 文件里的 "miDebuggerPath" 这个选项,它是调试器的路径,如果这个调试器可以以 root 权限运行,那么就达成了我们的目的了。
在 /home/user_name 目录下创建文件 gdb,user_name 需要替换为实际的用户名。
然后编辑该文件 vim gdb ,加入下述内容:
给 gdb 添加执行权限,
在修改 "miDebuggerPath" 成为
即可。这样我们就可以在 VSCode 里以 root 权限调试程序了,只不过每次都需要输入密码,因为有一个 sudo 过程。
为了解决这个麻烦,我又在网上找到了方法,将 /home/user_name/gdb 加入 sudo 的免密认证即可。
输入
编辑 /etc/sudoers 文件,修改成下述内容即可,
其中 jackis 是我的用户名,需要根据实际用户名替换。
NOPASSWD: 后的命令 sudo 时都不需要密码。退出 Shell,再重新打开一个命令行界面,输入 sudo apt update ,会发现没有提示输入密码了。
参考:
How to debug programs with “sudo” in VSCODE
How to Run sudo Commands Without Password
vscode 配置
1.单行注释 ctrl+/ //注释
2.多行注释 alt+shift+a /**/注释
3.Alt + Click 插入光标-支持多个
4.终端打开方法
使用快捷键: ctrl + · 即可;注意那个点是键盘上 esc 下面的那 个;
或者:
选择vscode的 “查看”,然后选择“集成终端” ,打开即可;
5.左下角显示大纲(显示所有函数方法) Shift+Ctl+P - View: Quick Open View - 大纲
6.编写并实时预览Markdown 先按Ctrl + K,然后放掉,紧接着再按 v,也能调出实时预览框
1.Beautify 插件配置
在VSCode的配置文件里添加 editor.formatOnSave:true 即可实现保存时自动格式化
VSCode格式化laravel的blade文件
2.KoroFileHeader插件配置
自动生成文件头部注释和函数注释
3.DocBlocker插件
PHP注释
vscode运行汇编代码要查找ini扩展
vscode运行汇编代码要查找ini扩展步骤如下。
1、重启vscode。
2、可能是连接的网络出现问题,检查一下网络状况,或者连接新的网络。
3、可以在自己电脑的时间设置里设置一下,自动更新时区。
4、查看是否禁止了某些域名,如防火墙带来的问题。
vscode 基础知识点查看
vscode全局搜索快捷键: ctril+shift+f
margin与padding理解
(1)margin-left:10px; 左外边距
(2)margin-right:10px; 右外边距
(3)margin-top:10px; 上外边距
(4)margin-bottom:10px; 下外边距
(5)margin:10px; 四边统一外边距
(6)margin:10px 20px; 上下、左右外边距
(7)margin:10px 20px 30px; 上、左右、下外边距
(8)margin:10px 20px 30px 40px; 上、右、下、左外边距
padding与margin一样