![f8b8579659dbe1272619b20fe0240485.png](https://img-blog.csdnimg.cn/img_convert/f8b8579659dbe1272619b20fe0240485.png)
一、简介
GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。目前gdb v10.1,默认支持ada、asm、c、c++、d、fortran、go、minimal、modula-2、objective-c、opencl、pascal、rust语言。
![3a21477761f2e696abf3cd3a190bdd0f.png](https://img-blog.csdnimg.cn/img_convert/3a21477761f2e696abf3cd3a190bdd0f.png)
程序员在编译程序时,需加上-g参数,方可将调试信息植入可执行程序,然后运行gdb *.exe 才可对程序进行调试。
![a6f73e3f4a9afb84390442086c03029b.png](https://img-blog.csdnimg.cn/img_convert/a6f73e3f4a9afb84390442086c03029b.png)
调试思路一般是进入程序,设置断点,即让程序运行到断点处自动停止,然后单步运行程序,可单步运行高级语言程序,也可单步运行汇编代码。在程序员自己单步运行程序的时候,程序员可以查看内存栈的信息,寄存器的信息、内存信息、程序中变量等。根据这些信息对程序的bug进行定位。
二、单进程/线程
下面以调试0~10累加为例,介绍gdb调试单进程/线程程序。
源码:
![3464a9ab3cb1090e1695857635c6de60.png](https://img-blog.csdnimg.cn/img_convert/3464a9ab3cb1090e1695857635c6de60.png)
输入命令:gdb testgdb3或者gdb --se testgdb3均可调试界面。
![a3b6dd05cdfe276f30f4c107d8f752a0.png](https://img-blog.csdnimg.cn/img_convert/a3b6dd05cdfe276f30f4c107d8f752a0.png)
输入 list(简写l)可显示代码。