GDB 使用手册
(转自 http://baike./view/)
GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。或许,各位比较喜
欢那种图形界面方式的,像 VC、BCB 等 IDE 的调试,但如果你是在 UNIX 平台下做软
件,你会发现 GDB 这个调试工具有比 VC、BCB 的图形化调试器更强大的功能。所谓“寸有
所长,尺有所短”就是这个道理。一般来说,GDB 主要帮忙你完成下面四个方面的功能:
1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、动态的改变你程序的执行环境。
一、列文件清单
List
(gdb) list line1,line2
二、执行程序
要想运行准备调试的程序,可使用 run 命令,在它后面可以跟随发给该程序的任何参
数,包括标准输入和标准输出说明符(<和> )和 shell 通配符(*、?、[、])在内。如果你使
用不带参数的 run 命令,gdb 就再次使用你给予前一条 run 命令的参数,这是很有用的。利
用 set args 命令就可以修改发送给程序的参数,而使用 show args 命令就可以查看其缺省参
数的列表。
(gdb)set args –b –x
(gdb) show args
backtrace 命令为堆栈提供向后跟踪功能。
Backtrace 命令产生一张列表,包含着从最近的过程开始的所有有效过程和调用这些过
程的参数。
三、显示数据
利用 print 命令可以检查各个变量的值。
(gdb) print p (p 为变量名)
print 是 gdb 的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达
式。表达式除了包含你程序中的变量外,还可以包含以下内容:
对程序中函数的调用
(gdb) print find_entry(1,0)
数据结构和其他复杂对象
(gdb) print *table_start
={e=reference=’\000’,location=0x0,next=0x0}
值的历史成分
(gdb)print (为历史记录变量,在以后可以直接引用的值)
人为数组
人为数组提供了一种去显示存储器块(数组节或动态分配的存储区)内容的方法。早期
的调试程序没有很好的方法将任意的指针换成一个数组。就像对待参数一样,让我们查看内
存中在变量 h 后面的 10 个整数,一个动态数组的语法如下所示:
******@length
因此,要想显示在 h 后面的 10 个元素,可以使用 ******@10:
(gdb)print ******@10
=(-1,345,23,-234,0,0,0,98,345,10)
whatis 命令可以显示某个变量的类型
(gdb) whatis p
type = int *
四、断点(breakpoint)
break 命令(可以简写为 b)可以用来在调试的程序中设置断点,该命令有如下四种形
式:
break line
GDB使用手册 来自淘豆网m.daumloan.com转载请标明出处.