Chinaunix首页 | 论坛 | 博客
  • 博客访问: 77978
  • 博文数量: 66
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 31
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-14 23:13
文章分类

全部博文(66)

文章存档

2015年(38)

2014年(28)

分类: C/C++

2014-12-20 14:46:13

原文地址:GDB的使用 作者:hsq863

GDB的使用

1)使用GCC编译时加参数 –g        例:gcc tmp01.c –o tmp01 -g

2)gdb tmp01

3)(gdb) l            :      查看载入的文件(list)

4)(gdb) b 6        :      在第6行处设置断点

5)(gdb) info b    :      查看设置的断点情况

6)(gdb) r            :      开始运行程序,+行号可以从指定行开始运行

7)(gdb) p n        :      查看变量的值

8)(gdb) watch n :      设置观察点(变量)

9)(gdb) n           :      单步运行(next)

10)  (gdb) c          :      程度继续运行(continue)

GDB中常见断点设置与删除指令

 

break+设置断点的行号

用于在程序中对应行设置断点

 

tbreak+行号或函数名

设置临时断点,到达后被自动删除

 

break+filename+行号

用于在指定文件的对应行设置断点

 

break+<0x..>

用于在内存某一位置处暂停

 

break+行号+if+条件

用于设置条件断点,在循环中使用非常方便

 

info breakpoints/watchpoints

查看断点/观察点的情况

 

clear+要清除断点的行号

用于清除对应行的断点

 

delete+要清除断点的编号

用于清除断点和自动显示的表达式的命令。与clear的不同之处:clear要给出断点的行号,delete要给出断点的编号。用clear命令清除断点时GDB会给出提示,而用delete清除断点时GDB不会给出任何提示。

 

disable+断点编号

让所设断点暂时失效。如果要让多个编号处的断点失效可将编号之间用空格隔开。

 

enable+断点编号

disable相反

 

awatch+变量

设置一个观察点,当变量被读出或写入时程序被暂停

 

rwatch+变量

设置一个观察点,当变量被程序读时,程序被暂停

 

watch

awatch

 

GDB中数据相关指令

 

display+表达式

该命令用于显示表达式的值,使用了该命令后,每当程序运行到断点处都会显示表达式的值

 

info display

用于显示当前所有要显示值的表达式的有关情况

 

delete+display 编号

用于删除一个要显示价目表的表达工,调用这个命令删除一个表达式后,被删除的表达式将不被显示

 

disable+display 编号

使一个要显示的表达式暂时无效

 

enable+display 编号

disable display 的反操作

 

undisplay+display 编号

用于结束某个表达式值的显示

 

whatis+变量

显示某个表达式的数据类型

 

print(p)+变量或表达式

用于打印变量或表达式的值

 

set+变量=变量值

改变程序中一个变量的值

 

GDB调试运行环境相关命令

set args

设置运行参数

show args

参看运行参数

set width+数目

设置GDB的行宽

cd+工作目录

切换工作目录

run

程序开始执行

step(s)

进入式(会进入到所调用的子函数中)单步执行

next(n)

非进入式(不会进入到时所调用的子函数中)单步执行

finish

一直运行到函数返回

until+行数

运行到函数某一行

continue(c)

执行到下一断点或程序结束

return <返回值>

改变程序流程,直接结束当前函数,并将指定值返回

call+函数

在当前位置执行所要运行的函数

GDB中堆栈相关命令

backtrace/bt

用来打印栈侦指针,也可以在该命令后加上要打印的栈侦指针的个数

frame

用于打印栈侦

info reg

查看寄存器的使用情况

info stack

查看堆栈情况

up

跳到上一层函数

down

up相对

阅读(381) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~