0


Visual Studio Code调试方法总结

关键词:
VSCode、Docker、remote-ssh、remote-development
摘 要:
介绍在Windows侧使用Visual Studio Code工具几种场景下的调试方法,语言为C++/C。

一、Visual Studio Code安装

1、下载安装包

下载地址:官方地址
在这里插入图片描述
本文以Windows环境为例,推荐大家下载.zip的版本,使用VSCode工具的老用户,可能会发现使用安装版本的VSCode其默认安装的插件以及用户数据目录都在系统盘,这样长时间使用就会导致系统盘空间被大量占用,虽然可以通过修改快捷方式的运行参数来指定相应的目录,但是也经常会发生在VSCode升级后,这些数据会莫名消失,本人经历过几次,不堪忍受其苦。

2、安装、配置

. zip的安装非常简单,你可以理解为绿色版或者便携版,直接解压即可使用,但为了真正达到便携的目的,可在VSCode根目录手动创建data文件夹,这样用户数据与插件都存放在这个目录下面了,后续VSCode版本升级,直接把data拷到新版本对应目录即可,非常的方便。
另外,便携版本没有右键支持功能,借鉴网上资源修改注册表脚本如下:

@ECHO OFF 
PUSHD %~DP0 
TITLE VSCode 
Md "%WinDir%\System32\test_permissions"2>NUL||(Echo 请使用右键管理员身份运行&&Pause >NUL&&Exit) 
Rd "%WinDir%\System32\test_permissions"2>NUL 
SetLocal EnableDelayedExpansion 

SET /P ST=输入a添加右键菜单,输入d删除右键菜单:

if /I "%ST%"=="a" goto :Add 
if /I "%ST%"=="d" goto :Remove 

:Add 
echo"开始添加右键菜单..."
reg add"HKEY_CLASSES_ROOT\*\shell\VSCode" /t REG_SZ /v "" /d "&VSCode" /f 
reg add"HKEY_CLASSES_ROOT\*\shell\VSCode" /t REG_EXPAND_SZ /v "Icon" /d "%~dp0Code.exe" /f 
reg add"HKEY_CLASSES_ROOT\*\shell\VSCode\command" /t REG_SZ /v "" /d "%~dp0Code.exe \"%%1\"" /f 
echo"添加右键菜单结束"exit 

:Remove 
reg delete "HKEY_CLASSES_ROOT\*\shell\VSCode" /f 
exit

可以复制上述脚本保存.bat文件中,并存放于VSCode根目录,注意bat脚本命名,不要尝试使用reg.bat这样的命名试,否则会出现惊奇的效果。然后使用管理员方式运行脚本,根据提示操作即可。

二、本地调试

1、插件安装

在vscode左侧找到插件库,安装 c/c++ 插件

2、编译、调试环境

  1. 安装Visual Sutdio 2017 相关下载资源充足,可自行搜索下载。
  2. 安装MingW 官方下载地址

3、cl调试

创建如下图所示的目录以及代码文件,代码内容如下所示:
在这里插入图片描述

#include<iostream>intmain(){
    std::cout <<"vscode debug test"<< std::endl;return0;}

启动需要使用Visual Studio 2017中“开发人员命令行工具”,并使用该工具启动VSCode如下图:
在这里插入图片描述
然后执行菜单[Run]->[Add Configuration],选择c++(Windows),然后再点击cl.exe,如下图所示:
在这里插入图片描述
在这里插入图片描述
此时会在.vscode目录生成launch.json、tasks.json两个文件,不用修改,直接F5就可以进行代码调试了,如下图所示:
在这里插入图片描述

3、gdb调试

大部分操作同上,选择调试工具时有所不同,如下图所示:
在这里插入图片描述

三、本地docker容器调试

1、插件安装

在vscode左侧找到插件库,安装 Docker 插件

2、docker安装

官方下载地址
注意:安装系统要求Windows10专业版本以上版本,并要求开启Hyper-V服务功能。

3、gdb调试

  1. 启动容器,挂载本地代码目录
docker run -dit--init--privileged-v f:/WorkSpace/vscode/:/workspace 10.67.43.10/aias/devel-nvidia-cuda110-ubuntu1804:0.4

启动VSCode,就可以在左侧Docker插件中看到本地启动的docker容器,并右键该容器选择“Attach Visual Studio Code”,如下图:
在这里插入图片描述
2. 容器内安装插件C/C++,在线无法安装,可选择离线安装方式,下载地址,将离线包拷贝到容器挂载的本地目录中,VSCode左侧找到插件库,点击“…”选择“Install from VSIX…”,然后再选择离线包就可以安装了,如下图:
在这里插入图片描述
3. 然后执行菜单[Run]->[Add Configuration],选择c++(GDB/LLDB),再选择相应的编译器版本就可以了,如下图所示:
在这里插入图片描述
4. 此时会在.vscode目录生成launch.json、tasks.json两个文件,不用修改,直接F5就可以进行代码调试了,如下图所示:
在这里插入图片描述

四、远程宿主机调试

1、插件安装

  1. 使用VSCode安装C/C++插件至远程宿主机,选择离线安装方式,下载地址,将离线包拷贝到远程宿主机,VSCode左侧找到插件库,点击“…”选择“Install from VSIX…”,然后再选择离线包就可以安装了,如下图:在这里插入图片描述
  2. 远程宿主机需要安装gcc/g++/gdb环境
  3. VSCode左侧找到remote-ssh插件进行安装,同时其配置文件路径最好自己指定位置,使用默认位置可能出现奇怪的错误,如下图:在这里插入图片描述

2、gdb调试

  1. VSCode左侧找到Remote-Explorer,添加远程宿主机环境,同时添加代码目录,如下图所示:

在这里插入图片描述
2. 然后执行菜单[Run]->[Add Configuration],选择c++(GDB/LLDB),再选择相应的编译器版本就可以了,如下图所示:
在这里插入图片描述
3. 此时会在.vscode目录生成launch.json、tasks.json两个文件,不用修改,直接F5就可以进行代码调试了,如下图所示:
在这里插入图片描述

五、远程docker容器调试

1、插件安装

在vscode左侧找到插件库,安装 Docker 、Remote Development插件,然后VSCode里配置远程docker容器所在的宿主机参数docker.host,如下图:
在这里插入图片描述

2、ssh免密登录配置

  1. 创建公钥
ssh-keygen -t rsa 

无视它出来的任何提示,欢快的一路回车到底吧。
2. 把公钥 id_rsa.pub 复制到远程机器的 /home/username/.ssh目录 并命名为 authorized_keys
方法1: 一步到位:

scp ~/.ssh/id_rsa.pub username@hostname:~/.ssh/authorized_keys

方法2: 复制

scp ~/.ssh/id_rsa.pub username@hostname:~

登陆

ssh username@hostname

追加

cat id_rsa.pub >> .ssh/authorized_keys

3、gdb调试

  1. 远程宿主机启动容器,挂载代码目录
docker run -dit--init--privileged-v /home/jianhongwei/vscode/:/workspace 10.67.43.10/aias/devel-nvidia-cuda110-ubuntu1804:0.4

启动VSCode,就可以在左侧Docker插件中看到本地启动的docker容器,并右键该容器选择“Attach Visual Studio Code”,如下图:

  1. 容器内安装插件C/C++,在线无法安装,可选择离线安装方式,下载地址,将离线包拷贝到容器挂载的目录中,VSCode左侧找到插件库,点击“…”选择“Install from VSIX…”,然后再选择离线包就可以安装了,如下图:在这里插入图片描述
  2. 然后执行菜单[Run]->[Add Configuration],选择c++(GDB/LLDB),再选择相应的编译器版本就可以了,如下图所示在这里插入图片描述
  3. 此时会在.vscode目录生成launch.json、tasks.json两个文件,不用修改,直接F5就可以进行代码调试了,如下图所示:在这里插入图片描述
标签: vscode ide 编辑器

本文转载自: https://blog.csdn.net/jackiejane/article/details/131740594
版权归原作者 简宏伟 所有, 如有侵权,请联系我们删除。

“Visual Studio Code调试方法总结”的评论:

还没有评论