gdb是一个用来调试C/C++程序的功能强大的调试器,它能在程序运行时观察程序内部结构和内存的使用情况。
主要功能包括:
- 监视程序中变量值的变化。
- 设置断点,使程序在指定的代码行上暂停执行,便于观察。
- 单步执行代码。
- 分析崩溃程序产生的core文件。
命令形式:
gdb [filename]
命令设置:
//在main()处设置断点
(gdb)break main
//执行程序
(gdb)run
//此刻,程序运行到main()处停止
//使用下面命令,直到遇到下一断点或结束才停止,下面两种功能一样
(gdb) count N
(gdb) continue N
//使断点恢复
(gdb)enable 断点编号
//使断点失效
(gdb)disalbe 断点编号
//删除断电
(gdb)delete 断点编号或表达式
//清楚断点
(gdb)clear 要清除断电所在行号
//可以受用单步跟踪命令跟踪程序代码,它一次只执行程序的一行代码(快捷键s)
(gdb)step
//它可以打印表达式的值,还可以用来打印内存中某个变量开始的一段区域的内容
(gdb)print 打印表达式
//print命令后的表达式有两个符号具有特殊意义,$和$$,$为给定序号的前一序号,$$为给定序号的前两个序号
(gdb)print i
$1=30
(gdb)print $
$2=30
(gdb)print $$
$3=30
(gdb)print $$3
$4=30
//dispaly可以用来观察一些表达式的变化
(gdb)display 要显示表达式的值
//不需要跟踪某一段代码时使用,它不能跟踪到程序里(快捷键n)
(gdb)next