忽略点十四:gdb的使用
在Linux系统下如果想要调试一个项目,我们应该怎么做?
有些童鞋可能会说:IDE呀!
没毛病老哥~非常标准的答案。除此之外,我们还可以使用gdb,为什么使用gdb,它有什么优势呢?它可以在终端下使用,它短小精悍,功能强大~
嗯嗯嗯,我就是这样说服自己的~
要注意!!使用gdb前,我们在编译项目文件时需加-g
作为一个编译参数(否则你将看不见函数名、变量名,而只能看到运行时的内存地址),再通过gdb运行可执行文件,例:
gcc -o program -g main.c
gdb ./program
执行完上述命令,会看到关于 gdb 的说明和如下所示的调试命令行:
(gdb)
关于gdb的基本使用:
——输入l
(list 首字母)gdb 会列出10行代码,l
后可加参数代表从第参数行开始列出(例如希望列出第 2 到11行时,我们可以写l 2
)
——输入b
(breakpoint首字母),表示设置程序运行的断点,程序运行到断点处就会暂停运行。b
后既可以加函数名作参数,使程序在调用某函数时暂停;也可以加行号作为参数,使程序在运行至某一行时暂停。
——输入r
(run 首字母),程序会开始运行,并在第一个断点处暂停
——运行暂停时,输入p 表达式
(print 的首字母) 表示在当前断点处运行该表达式并查看它的值。例如p ++age[0]
表示我们希望让age[0]
自增并查看自增后的值(表达式会对之后程序运行造成影响)
——运行暂停时,输入n
(next 的首字母)程序会执行暂停位置后的下一条语句并再次暂停
——运行暂停时,输入c
(continue 的首字母)程序会继续执行到下一个断点处并暂停(如果没有断点就会执行直到结束)
以上就是gdb的简单用法,具体用法请参考官方文档~
如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢!