gdb调试程序

1. 查看寄存器

info registers
查看寄存器的情况。(除了浮点寄存器)
info all-registers
查看所有寄存器的情况。(包括浮点寄存器)
info registers ebp

查看所指定的寄存器的情况。

2. 查看汇编

disassemble func

3. 去除GCC的Buffer Overflow Protect

gcc -g -fno-stack-protector test.c -o test

4. 查看内存中的值

 

用gdb查看内存

格式: x /nfu <addr>

说明
x 是 examine 的缩写

n表示要显示的内存单元的个数

f表示显示方式, 可取如下值
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
i 指令地址格式
c 按字符格式显示变量。
f 按浮点数格式显示变量。

u表示一个地址单元的长度
b表示单字节,
h表示双字节,
w表示四字节,
g表示八字节

5. gdb执行一般流程

$gcc -g test.c -o test          -- 调试编译

$gdb                                 -- 启动gdb

(gdb)file test                    -- 打开被调试文件test

(gdb)b 10                         -- 在第10行设置断点

(gdb)b func                      -- 在函数func处设置断点

(gdb)clear                         -- 清除所有断点

(gdb)r                                -- 运行

(gdb)c                                -- 继续运行

(gdb)n                                -- 执行下一条语句

 

posted @ 2008-08-19 16:04  CoderZh  阅读(2109)  评论(0编辑  收藏  举报