GDB调试时的总结

gdb调试

查看内存

  • x/<n/f/u> <addr>

    • n ,f ,u 是可选的参数, addr 表示需要查看的内存的地址。
    • n 是一个正整数,表示显示内存的长度
    • f 表示显示的格式,以二进制或十六进制来存储。
    • u 表示以多少个字节将一个值取出来,gdb默认是4个字节
  • f 可供选择的参数

    • x 按照十六进制格式
    • d 按照十进制格式
    • u 按照十六进制显示无符号整形
    • o 按照八进制格式
    • t 按照二进制格式显示
    • a 按照十六进制格式显示
    • f 按照浮点数格式显示
  • u 可供选择的参数

    • b 表示单字节
    • h 表示双字节
    • w 表示四字节
    • g 表示八字节
(gdb) p &frame
$4 = (CanMsg *) 0x7fffeed84c50
(gdb) x/4tb 0x7fffeed84c50
0x7fffeed84c50: 00000001        00000001        00000000        00000000
(gdb) x/10tb 0x7fffeed84c50
0x7fffeed84c50: 00000001        00000001        00000000        00000000        00000111        00000000        10001001        00100000
0x7fffeed84c58: 00001001        10010010
(gdb) x/13tb 0x7fffeed84c50
0x7fffeed84c50: 00000001        00000001        00000000        00000000        00000111        00000000        10001001        00100000
0x7fffeed84c58: 00001001        10010010        00100000        00001001        00000000

ARM开发板上gdbserver调试

  1. 将编译好的gdbserver 移植到开发板的 /bin 目录下。
  2. 运行arm-imx6ul-linux-gnueabihf-gdbserver 10.10.75.73:5000 main, 10.10.75.73 是编译服务器的ip, 5000是端口号。
  3. 编译服务器上运行 arm-imx6ul-linux-gnueabihf-gdb main 然后运行 target remote 10.10.112.158:5000

layout使用方法

layout:用于分割窗口,可以一边查看代码,一边测试。主要有以下几种用法:
layout src:显示源代码窗口
layout asm:显示汇编窗口
layout regs:显示源代码/汇编和寄存器窗口
layout split:显示源代码和汇编窗口
layout next:显示下一个layout
layout prev:显示上一个layout
Ctrl + L:刷新窗口
Ctrl + x,再按1:单窗口模式,显示一个窗口
Ctrl + x,再按2:双窗口模式,显示两个窗口
Ctrl + x,再按a:回到传统模式,即退出layout,回到执行layout之前的调试窗口。

threads 调试

  1. gdb中设置 set non-stop on 表示线程被打断时,其他线程还在运行
  2. 通过ps可以查看进程PID,通过ps -T查看进程中的线程
  3. gdb界面中使用 info threads, 查看线程数量。thread + 线程id来切换线程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值