前言
例如:linux的调试基本没有很好的图形化界面,对于初学者来说,调试代码就变成一个很困难的事情了,利用vscode强大的功能,我们可以想调试vc一样去调试代码。
一、安装gdb
安装gdb的来源:
http://ftp.gnu.org/gnu/gdb/
下载好gdb后安装,我选择的是7.5版本的。
编译gdb,gdbserver
tar xjf gdb-7.4.tar.bz2
cd gdb-7.4/
./configure --target=arm-linux
make
mkdir tmp
make install prefix=$pwd/tmp
把arm-linux-gdb复制到/bin目录
调试 /bin/arm-linux-gdb ./test
cd gdb/gdbserver/
./configure --host=arm-linux
make
cp gdbserver /work/nfs_root/fs_mini
编译要调试的应用,编译时加上-g选项
二、使用步骤,调试方法
1.在arm开发板上
gdbserver 192.168.0.106:1234 ./sun
./sun 是我们编译的应用程序,192.168.0.102是我们虚拟机的ip
gdbserver 192.168.0.102:1234 ./sun
Process ./sun created; pid = 778
Listening on port 1234
2.在虚拟机上
/bin/arm-linux-gdb ./sun
输入:target remote 192.168.0.106:1234
然后: 使用gdb命令来控制程序
book@www.100ask.org:/work/project/zhangtao$ /bin/arm-linux-gdb ./sun
Reading symbols from /work/project/zhangtao/sun…done.
(gdb)target remote 192.168.0.106:1234
Remote debugging using 192.168.0.106:1234
vscode配置
以上的方式实现之后就是直接在vscode里面实现了,由于时间有限我就直接把vscoed的配置文件发给大家吧
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
//"name": "gcc - 生成和调试活动文件",
"name": "sun",
"type": "cppdbg",
"request": "launch",
//"program": "${fileDirname}/${fileBasenameNoExtension}",
"program": "/work/project/zhangtao/sun",
"args": [],
"stopAtEntry": false,
"cwd": "/work/project/zhangtao",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
//"preLaunchTask": "C/C++: gcc build active file",
//"miDebuggerPath": "/usr/bin/gdb",
"miDebuggerPath": "/usr/bin/arm-linux-gdb",
"miDebuggerServerAddress": "192.168.0.106:1234"
}
]
}