gdb调试

要使用gdb去调式汇编程序,在使用as编译时要加上-gstabs选项,在使用gcc编译时加上-g选项,

gdb有个bug,就是在_start符号处设置了断点,使用run命令去运行程序时也不会在这个断点处停下来。

gdb命令

1程序运行

(1)run

运行程序,可以在后面加上命令行参数,可以使用命令show args打印出有哪些命令行参数

(2)continue

继续执行后面的程序

(3)next

单步执行,不进入函数内部

(4)step

单步执行,遇到函数时进入函数内部执行

2断点

break设置断点,后面可以跟行号或者函数名,我们可以使用info breakpoints打印出有哪些断点以及它的断点号

delete [bpnum1] [bpnum2]...删除断点,后面跟的是断点号

clear也可以删除断点,只是后面跟的是行号或者函数名

disabel [bpnum1] [bpnum2]... disable断点

enable [bpnum1] [bpnum2]... enable断点

3值查看

info registers显示所有寄存器值

print显示指定寄存器值或变量值

print /d以十进制显示数值

print /t以二进制显示数值

print /x以十六进制显示数值

默认是十进制显示数值

例如print $eax

x显示指定内存单元值

x命令格式

x/nyz

n表示显示多长

y取值为c,dx,分别表示字符,十进制和十六进制

z表示显示的大小,b,hw分别表示字节,半字和字

例如x/4cb&output

0x80490ac<output>: 84 'T' 104 'h' 101 'e' 32 ' '

4其他命令

quit退出gdb调试

help查看命令帮助


你可能感兴趣的:(c,汇编,gcc,delete)