gdb实用操作命令

这里说的都是实用的操作命令


操作符号

add-symbol-file   vmlinux 0xc0000000

将vmlinux的符号信息加载到 0xc0000000地址


symbol-file

移除当前调试文件的符号


断点

break start_kernel

在start_kernel函数处下断点,前提是必须加载了符号表。


break *0xc048e2e0

在地址为0xc048e2e0处下断点


对于break main.c:123表示在main.c的123行断下。不推荐使用这种,

由于编译的时候很多优化可能导致错误,因此不推荐。


不同调试方式

使用tcp方式开启调试。

target remote 192.168.0.2:2333

连接192.168.0.2:2333号端口实现远程调试(远端有gdbderver)。如果是本机的gdbserver可以不写ip 直接用 target remote :2333



数据查看

查看内存

x/[number][format][size] address

number是查看数据的个数

 format是查看的数据的格式 o(octal), x(hex), d(decimal), u(unsigned decimal), t(binary), f(float), a(address), i(instruction), c(char) and s(string)

size是每个数据的字节  b(byte), h(halfword), w(word), g(giant, 8 bytes)

 address是地址 

例如

x/10xw 0xc00000

表示以16进制显示从地址0xc00000开始的10个word数据。

x/[10个数据][x表示以16进制显示][w表示每个数据是WORD] 


查看基本寄存器

info registers 可以简写为 i r

查看单个寄存器 例如i r eax 或者i r r0

查看所有寄存器

info all-registers


反汇编查看

disas assress,+length

例如

disas 0xc048e2e4,+40

表示查看从0xc048e2e4开始 40字节的反汇编代码



调试操作

c   等于continue。表示让程序跑起来。和go一个意思。

si 表示step instruction 单步执行一条语句 后面可以带数字n。表示单步执行n条指令.si 2表示单步执行两条指令





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值