为什么需要用GDB
作为一名程序员,最大的梦想就是写出不带bug的代码,但是现实难免有时候不如人意;所以我们常常需要借助一些工具帮我们查找代码的语法错误和逻辑错误。编译时我们会采用gcc进行语法错误的检查,而gcc并不能为我们检查程序上逻辑的错误,所以需要通过调试工具来协助我们排查逻辑错误,而linux下常用的调试工具就是GDB了。或许各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX与linux平台下做软件,你会发现GDB这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。所谓“尺有所短,寸有所长”就是这个道理。
GDB的功能
(1)启动你的程序,可以按照你的自定义的要求随心所欲的运行程序
(2)可让被调试的程序在你所指定的调置的断点处停住
(3)当程序被停住时,可以检查此时你的程序中所发生的事
(4)你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG
以centos7举例,使用root用户登录,使用如下命令进行安装
yum -y install gdb
备注:上述指令可以多次执行,当你安装过一次后,再次执行则会去检查是否有更新,有的话就会自动安装最新版本的gdb
使用gdb可以分为两个步骤,第一步是编译,第二步就是运行调试
编译
默认gcc编译出来的可执行文件是不包含源代码的,所以编译时后需要加入-g参数进行编译
gcc -g -o test test.c
调试gdb test