1.gdb安装
首先检查一下电脑中是否已经安装gdb:gdb --version
如果已经安装gdb会显示gdb版本号。
如果没有,ubuntu安装gdb命令:sudo apt-get install gdb。
2.gdb运行
当需要使用gdb调试代码时,需要在gcc\g++编译选项中添加-g选项,
如:gcc -g test.c -o test
gdb+程序名,进入gdb调试:gdb test
3.常用调试命令
list命令:
list //打印当前行后面的代码,如:list
list - //显示当前行前面的代码,如:list -
list lineNumber //打印出行第lineNumber行前后的代码,如:list 10
list FunctionName//打印出行函数FunctionName前后的代码,如:list main
break命令:
break < function > //在进入指定的函数function时停止运行,如break main
break < lineNumber> //在指定的代码行打断点,如break 10
break +offset/break -offset //在当前行的前面或后面的offset行打断点,offset为自然数,如break + 10
break filename:lineNumber //在名称为filename的文件中的第lineNumber行打断点,如:break test.c:10
break filename:function //在名称为filename的文件中的function函数入口处打断点,如:break test.c:main
break *address //在程序运行的内存地址处打断点
break … if < condition>
在处理某些循环体中可使用此方法进行调试,其中…可以是上述的break lineNumber、break +offset/break -offset中的参数,其中condition表示条件,在条件成立时程序即停止运行,如设置break if i=100表示当i为100时程序停止运行。
查看断点时,也可以使用info命令如info breakpoints [n]、info break [n]其中n 表示断点号来查看断点信息。
info b //查看所有断点详细信息
delete num //删除第num个断点,如:delete 1
delete //删除所有断点