到现在没有使用过gdb工具,这肯定是不行的。
从零开始学习——最起码得学会基本的功能。
参考博客:https://www.cnblogs.com/arnoldlu/p/9633254.html
1、直接在目标板上运行gdb调试
①b <文件:行号> <函数><文件名:函数名>等
②delete clear 删除
③disable 和enable 可以临时的停用和启用
④可以使用配置文件
# gdb.ini set logging on gdb.log b square if i == 5 commands bt full i locals p total print "Hit break when i == 5" end
⑤运行r 或者run <file>
⑥bt命令显示栈等信息
⑦继续执行continue
⑧单步执行next和step,区别是step的基本单位是函数,step是语句,该命令可以进入到库函数的内部
⑨监控一个变量:watch。不同的形式代表不同情况,如awatch何rwatch
⑩gcore生成转储文件
二、远程调试
有时候目标板由于性能原因只有gdbserver,无法本地调试,就需要远程调试
和ssh连接一样,两边都需要安装服务
①目标板:gdbserver
②主机:目标板架构的gdb
主机配置安装gdb-8.3,还是老三样。配置、编译、安装。只不过需要在配置时指定目标架构为--target=aarch64-linux-gun
使用时,在目标板执行gdbserver :<指定端口> 待调试程序 参数
主机执行目标板的gdb:aarch64-linux-gnu-gdb,然后输入tar remote 目标板ip:端口
目标板响应即可。