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 – 执行下一条语句
[温馨提示]:该文章由原博客园导入而来,如排版效果不佳,请移步:http://www.cnblogs.com/coderzh/archive/2008/08/19/1271347.html
作者:CoderZh
微信关注:hacker-thinking (代码随想)
本文出处:https://blog.coderzh.com/2008/08/19/1271347/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。