板子内存不够可使用gdbserver+gdb+VSCode工具调试
准备arm格式的gdb及gdbserver工具
一般SDK或者交叉编译工具里都有,没有的话需要自己下载源码交叉编译
vscode创建launch.json文件并修改
修改配置文件
- 其中需要修改"program",这是我们需要调试的程序
- 其中,miDebuggerPath表示的是arm格式gdb的路径;miDebuggerServerAddress表示的是我们server端的地址,如:192.168.3.12为开发板的ip,9001为端口号,可自行设置,其范围为:065536,01023 的端口一般由系统分配给特定的服务程序
把gdbserver传到开发板上/usb/bin下
然后输入命令开始调试
gdbser命令格式 板端ip地址:端口 程序
注意:我们首先需要启动开发板上的gdbserver,pc端才能连接进行调试
vscode启动gdb调试
程序段错误可以在调用堆栈查看具体信息
- 其中红色为导致程序断开的堆栈
- 下面有对应哪个函数哪一行导致的程序重启
关于vscode运行gdb的一些报错
问题一
- 一开始由于ubuntu缺少gdb工具所需的各种库导致的运行失败,可以将所需库cp到 /lib/下或者添加环境变量后vscode重新加载窗口
- cp库的时候要注意,当你即使cp +了 -d so库还报红时,可通过ln -s自己重新创建一个软链接即可解决问题(记得使用绝对路径)
问题二
这个问题后面我发现是因为我ssh配置问题,访问不了root导致,后面我把程序拷贝到家目录即可解决