GDB用法及常用命令列表

2 篇文章 0 订阅

http://blog.chinaunix.net/uid-20901038-id-1832064.html


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相对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值