在windows中的vscode下在线调试arm板中的linux应用程序
想要在window下的vscode中在线调试arm板中运行的linux程序。需做到一下三点
- arm能运行
gdbserver
程序。用于向gdb客户端传输调试数据。 - linux端需要运行
arm-linux-gnueabihf-gdb
.这也就是我们所说的gdb客户端,用于和gdbserver
交换调试数据。 - vscode需要将
arm-linux-gnueabihf-gdb
客户端可视化。也就是跟keil中调试程序一样,用户可以直接在程序中添加断点,查看变量等。
上面的三个条件中,前两个我们都熟悉。就是我们所说的gdb+gdbserver
调试。有关移植和使用请参看arm板gdbserver移植。
而第三点比较麻烦,重点是windows下的vscode无法运行arm-linux-gnueabihf-gdb
等linux下才能运行的调试工具链。幸好微软推出了vscode下的Remote - WSL
插件。允许我们直接从vscode中使用Linux的Windows子系统(WSL)作为您的开发环境(类似在linux中安装的vscode)。这样我们就可以直接使用这个插件来解决第三个问题了。因此,在windows中的vscode下在线调试arm板中linux应用程序完全可以实现。
调试环境搭建步骤
- 下载
wsl
(适用于Linux的Windows子系统).关于wsl的下载安装请参看链接 适用于Linux的Windows子系统安装指南 (Windows 10).- wsl介绍:通俗来说就是一个虚拟机下linux操作系统。类似简易版ubuntu。
- wsl的优点:可以方便的访问windows的资源。它将windows的c盘、d盘等都直接挂载到了
/mnt/c/
等目录下。直接实现了两个系统之间的资源共享。
- 在
wsl
中安装交叉编译工具链arm-linux-gnueabihf-
。- 测试交叉编译工具链是否好使
- 使用
arm-linux-gnueabihf-gcc -v
测试gcc。 - 使用
arm-linux-gnueabihf-gdb -v
测试gdb。有可能此时gdb不好使,问题及解决方式如下:- 问题一:提示缺少
libpython2.7.so.1.0
.解决方法为安装此库。sudo apt-get install libpython2.7-dev
,如果安装失败,可先用sudo apt-get update
更新,然后再安装。 - 如果测试通过,则用于
gdb+gdbserver
调试的的gdb客户端我们已经解决。
- 问题一:提示缺少
- 使用
- 测试交叉编译工具链是否好使
- 在windows中的VScode下安装插件
Remote - WSL
。- 如何在VScode中安装插件太简单,就不用说了。安装完成,重启vscode后就可以在左下角看到
><
的图标。点击此图标(或者直接在命令面板中搜索remote-swl
),就会在命令面板中出现remote-swl
的各种命令。 - 选择
remote-swl:new-window
命令便可打开一个新的vscode窗口.这时的vscode窗口我们就称它为RemoteVscode
吧.此时的vscode窗口就相当于linux下打开的vscode窗口,此时在vscode中执行命令的环境都是linux。 - 在
RemoteVscode
窗口中安装C/C++ IntelliSense, debugging, and code browsing.
插件来安装c调试环境。这是咱们上面说的把vscode和gdb连接起来的一个重要步骤。
- 如何在VScode中安装插件太简单,就不用说了。安装完成,重启vscode后就可以在左下角看到
- 配置要编译、调试的
c
工程文件夹。- 在
RemoteVscode
打开工程文件夹。(因为wsl和windows共享文件夹,所以直接可以到相应目录下寻找打开)。 - 配置
tasks.json
和launch.json
.关于具体的配置,参看vscode编译调试环境搭建。
- 在
- 向arm板移植
gdbserver
.关于具体移植,请参看arm板gdbserver移植。 - 到此环境搭建步骤完事。
编译、调试
RemoteVscode
中的编译、调试和vscode的编译调试一样。参看vscode编译调试环境搭建。
最终效果图如下.
关于技术交流
此处后的文字已经和题目内容无关,可以不看。
qq群:825695030
微信公众号:嵌入式的日常
如果上面的文章对你有用,欢迎打赏、点赞、评论。