赞
踩
获取所需的交叉编译工具和调试工具,例如交叉编译工具mips-linux-gnu-gcc,远程交叉调试工具gdb和gdbserver
1、进入Visual Studio Code官网下载vscode并安装,建议deb包
下载地址: 点击下载官方安装包
2、解压缩deb包后会自动进行安装。
sudo dpkg -i <file>.deb
3、依据提示进行本地环境升级。
sudo apt-get install -f
安装必须的插件,Ctrl+Shift+P进入插件应用商店,
汉化搜索框搜索:Chinese 找到相应插件后进行下载
安装后,在 locale.json 中添加 “locale”: “zh-cn”,即可载入中文(简体)语言包。要修改 locale.json,你可以同时按下 Ctrl+Shift+P 打开命令面板,之后输入 “config” 筛选可用命令列表,最后选择配置语言命令
其中C/C++为必装,提供C/C++支持
Code Runner必装,提供编译后程序的运行环境
C/C++ Snippets建议 提供一些常用的C/C++片段,如for(;?{},安装后写代码方便(tip.如果想要添加自己写的代码段可以点左下角齿轮->用户代码片段)
这时已经能够编译运行文件但是还不能debug调试。
VScode官方调试使用参考文档
按F5会弹出launch.json文件。
如:
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "enter program name, for example ${workspaceFolder}/a.out", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] }, }
然后进入菜单 “调试”-> “添加配置”打开配置文件 launch.json,做如下配置:
{ "name": "gdb server",//配置名称;在启动配置下拉菜单中显示 "type": "cppdbg",//配置类型。 "request": "launch",//请求配置类型。可以是“启动”或“附加”。 "program": "${workspaceFolder}/program",//需要调试的可执行文件 "args": [],//传递给程序的命令行参数。 "stopAtEntry": false,//可选参数。如果为true,则调试器应在目标的入口点停止。如果传递了进程ID,则无效。 "cwd": "${workspaceFolder}",//目标的工作目录 "environment": [],//要添加到程序环境中的环境变量。示例:[“name”:“squid”,“value”:“clam”]。 "externalConsole": false,//如果为true,则为调试对象启动控制台。如果为false,则在Linux和Windows上,它将出现在集成控制台中。 "linux": {//特定于 Linux 的启动配置属性。 "MIMode": "gdb",//指示midebugengine将连接到的控制台调试器。允许值为“gdb”“lldb”。 "miDebuggerPath": "/home/user/chains/mips-gcc520-glibc222/bin/mips-linux-gnu-gdb",//调试器的路径。 }, "preLaunchTask": "adb forward",//调试会话开始前要运行的任务。 "postDebugTask": "adb forward remove",//调试会话结束后运行的任务。 "miDebuggerServerAddress": "127.0.0.1:5000",//要连接到的调试器服务器的网络地址(例如:localhost:1234)。 "setupCommands": [//要执行的一个或多个gdb/lldb命令,以便设置底层调试器。 { "description": "Enable pretty-printing for gdb",//命令的可选说明。 "text": "-enable-pretty-printing",//要执行的调试器命令。 "ignoreFailures": true,//如果为true,则应忽略来自命令的失败。默认值为假。 } ] }
注意:需要本地和远程机器上都有我们要调试的程序,并且架构保持一致。
如果我们的代码是在本地机器上交叉编译的,可以将本地上编译好的二进制复制到开发板上(虽然本地程序它并不会被执行,但依然需要保留一份)。
按F5调试会提示没有找不到"adb forward",点击配置任务,使用tasks.json模板新建一个Others任务
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "adb forward",//任务的用户界面标签 "type": "shell",//定义任务是被作为进程运行还是在 shell 中作为命令运行。 "command": "adb forward tcp:5000 tcp:5000",//要执行的命令。可以是外部程序或 shell 命令。 }, { "label": "adb forward remove", "type": "shell", "command": "adb forward --remove tcp:5000", }, ] }
按照上面的说明配置好后,先在在远程机器上运行 gdbserver:
./gdbserver :5000 /program
配置好launch.json后,F5启动调试,可以通过F9设断点,F11单步等来调试程序。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。