GDB使用方法
来源:互联网 发布:波尔津吉斯体测数据 编辑:程序博客网 时间:2024/05/16 14:20
GDB使用
print variable 查看变量print *array@len 查看数组(array是数组指针,len是需要数据长度)缩写为p
可以通过添加参数来设置输出格式:
/x 按十六进制格式显示变量。/d 按十进制格式显示变量。/u 按十六进制格式显示无符号整型。/o 按八进制格式显示变量。/t 按二进制格式显示变量。/a 按十六进制格式显示变量。/c 按字符格式显示变量。/f 按浮点数格式显示变量。
2 examine 查看内存
examine /n f u + 内存地址(指针变量)缩写为x
n 表示显示内存长度
f 表示输出格式(见上)
u 表示字节数制定(b 单字节;h 双字节;w 四字节;g 八字节;默认为四字节)
如:
x /10cw pFilePath (pFilePath为一个字符串指针,指针占4字节) 查看pFilePath后的10个字符
x /x p (p是一个int*) 以16进制形式查看p指向内容(默认p大小为4字节,长度为1即4个字节)
3 disassemble 查看汇编
disassemble
不加参数会显示整个程序的汇编码,后面可以加函数名,或地址范围。nexti stepi
和 next step
的区别在于不是执行一条C语句而是一条机器指令即一条汇编语句。x /ni $pc
或 display /ni $pc
(其中n是数字) 用来查看下面将要执行的n条汇编语句,区别在于后者GDB每次停下都会显示下面将要执行的n条汇编语句而前者只显示这一次,对于后者可以用 undisplay
来取消。
Emacs下可以GUD->GDB window->disassembly.
4 display
可以用 display variable-name
使GDB每次暂停时都显示指定变量,前面的 display /i $pc
显示下条汇编语句。
用 undisplay variable-name
取消每次都显示, undisplay不加参数表取消所有显示,display不加参数显示一次所有每次暂停都要显示的内容。
5 list
可以查看即将执行的语句.
6 until
后跟行数,表一直执行到第几行。也可以跟函数名表遇到此函数就暂停。
7 finish
从一个stack中返回,即退出当前函数(在主函数中没用)
8 查看寄存器
info registers
查看所有寄存器的内容。p $eax
查看指定寄存器的内容。
9 快捷键
手册
10 Trick
- 不退出GDB,重新编译源码,此时再继续使用GDB时会检测到执行文件有更新会重新加载执行文件。
- 加载执行文件
file filename
,可以用cd
切换目录 - 删除所有断点
delete breakpoints
- GDB使用方法
- gdb 使用方法
- gdb 使用方法
- gdb 使用方法
- GDB使用方法
- GDB使用方法
- gdb使用方法
- GDB使用方法
- GDB使用方法
- gdb使用方法
- gdb基本使用方法
- GDB的使用方法
- gdb使用方法【经典实用】
- (转贴) GDB的使用方法
- GDB的使用方法
- (转载)gdb使用方法
- gdb基本使用方法
- GDB的使用方法
- eclipse svn link 安装
- C++宏定义详解
- App调试内存泄露之Context篇(上)
- Linux操作系统文件系统基础知识
- NYOJ 题目236 心急的C小加
- GDB使用方法
- hdu 3333 Turing Tree
- [SQL-码农]数据库错误:在执行批处理时出现错误。错误消息为: 目录名无效
- 关于jboss与tomcat的远程调试
- java 编码方式
- 探测目标哪些端口可用
- kernel thread completion demo
- 完美配置Tomcat的Https
- App调试内存泄露之Context篇(下)