简介
VS Code(全称Visual Studio Code)是一个轻量且强大的代码编辑器,支持Windows,OS X和Linux。内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装插件来支持C++、C#、Python、PHP等其他语言。
步骤一安装调试插件
在VS Code Extensions里下载并安装支持C/C++的调试插件:
安装好后确认插件为以下状态,如果不是则点击重新加载:
步骤二打开VS Code项目工程
在Env控制台进入qemu-vexpress-a9 BSP根目录,然后输入命令code . (注意:code后面有一个点)打开VS Code,表示使用VS Code打开当前目录。
VS Code打开后会自动打开qemu-vexpress-a9 BSP文件夹,如下图所示。
步骤三编译RT-Thread
点击VS Code “查看->终端”打开VS Code内部终端,在终端里输入命令scons即可编译工程,终端会打印出编译信息。
编译完成后输入.qemu.bat命令就可以运行工程。终端会输出RT-Thread启动logo信息,QEMU也运行了起来。
Note
注:1、调试BSP工程前需要先编译工程生成rtthread.elf文件。2、可以使用scons --target=vsc -s命令更新VS Code需要用到的C/C++头文件搜索路径信息。不是每次都需要更新,只有在使用了menuconfig重新配置了RT-Thread或更改了rtconfig.h头文件时才需要。
步骤四修改qemu-dbg.bat文件
开始调试前需要编辑qemu-vexpress-a9目录下的qemu-dbg.bat文件,在qemu-system-arm前加入start :
步骤五调试工程
如下图所示,在VS Code里点击调试菜单(小虫子图标),调试平台选择Windows,然后按F5就可以开启QEMU调试模式,断点停留在main函数。VS Code调试选项如下图所示:
QEMU也运行了起来,如下图所示。
在VS Code里可以使用GDB命令,需要在最前面加上-exec。 例如-exec info registers命令可以查看寄存器的内容:
其他一些主要命令介绍如下所示:
n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义
f表示显示的格式,参见下面。如果地址所指的是字符串,那么格式可以是s。其他格式如下表所示:
u表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。
addr表示一个内存地址。
Note
注:严格区分n和u的关系,n表示单元个数,u表示每个单元的大小。
示例: x/3uh 0x54320表示从内存地址0x54320读取内容,h表示以双字节为一个单位,3表示输出三个单位,u表示按十六进制显示。
查看当前程序栈的内容: x/10x $sp-->打印stack的前10个元素
查看当前程序栈的信息: info frame----list general info about the frame
查看当前程序栈的参数: info args---lists arguments to the function
查看当前程序栈的局部变量: info locals---list variables stored in the frame
查看当前寄存器的值:info registers(不包括浮点寄存器) info all-registers(包括浮点寄存器)
查看当前栈帧中的异常处理器:info catch(exception handlers)
提示:输入命令时可以只输入每个命令的第一个字母。例如:info registers可以只输入i r。
Note
注:如果在VS Code目录中额外添加了文件夹,会导致调试不能够启动。 每次开始调试都需要使用Env工具在BSP根目录使用code .命令打开VS Code才能正常调试工程。
常见问题
Env工具的相关问题请参考《Env用户手册》常见问题小节。
Q:提示找不到‘qemu-system-arm’。
A:直接打开VS Code调试工程会有这个错误,每次调试请使用Env工具在BSP根目录使用code .命令打开VS Code。
Q: VS Code调试选项没有出现Debug@windows选项或者其他不能调试问题。
A:请更新RT-Thread源代码到v3.1.0及以上版本。
Q: VS Code出现错误提示:Unable to start debugging.Unexpected GDB output from command "-interpreter-exec console" ........
A:请修改qemu-dbg.bat文件,特别是有更新源代码的情况下。有问题请按照文档步骤检查一遍是否每一步都做了。
本文描述了在Windows 平台使用 VS Code 开发 RT-Thread qemu-vexpress-a9 BSP 工程。
|