linux环境使用gdb调试


安装插件

安装peda

git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit

偏好设置

设置汇编样式

set disassembly-flavor intel

调试控制

进入gdb

gdb executable_namegdb -q executable_name

设置断点

b function_name,如b main
b *addr,如b *0x12345ab
b num,在第num行设置断点,行号可以通过l命令获取

查看断点信息

info breakpoints

删除断点

delete num删除标号为num的断点
delete num1-num2删除标号为num1至num2的断点

运行程序

r

反汇编

disas function_name

单步跳过

n

单步进入函数

s

执行到下一个断点

c

回车自动执行上一条命令

Enter

查看和修改内存

查看某地址的字符串

x/s addr,如x/s 0x123456ab

打印从某变量开始的n个字节

p /x (char[n])*var_name,如p /x (char[10])*buff

修改寄存器的值

set $eax = 0

修改某块内存的值

set {int}addr=num,如set {int}0x123456ab=4