linux中gdb调试器的简单使用(图文)

        在ARM、Linux平台开发C/C++项目时,多多少少会遇到一些程序上的bug。小工程还好,如果是个大工程,代码量又大,就很难定位问题了。这时候使用gdb调试器便能轻松的帮忙定位代码bug。

一、使用方法

如下为示例代码:

linux中gdb调试器的简单使用(图文)_第1张图片

在编译代码的时候,加上调试选项 -g,如下所示:

gcc -g test.c -o test

利用gdb调试器来运行程序:gdb <可执行程序名>

linux中gdb调试器的简单使用(图文)_第2张图片
                
二、gdb的控制

1、(gdb) l(L),可查看源码,(gdb) L 1,从第一行开始查看。

linux中gdb调试器的简单使用(图文)_第3张图片

2、(gdb) r(run),即可从头开始运行代码,遇到设置的断点、段错误和程序运行结束时自动回到gdb命令行。

linux中gdb调试器的简单使用(图文)_第4张图片

3、运行代码时如需带参数,可在r 后面添加。如:(gdb)r arg1 arg2

4、(gdb) b n      在第n行设置断点(程序运行到这个位置会停下来)。

linux中gdb调试器的简单使用(图文)_第5张图片

5、(gdb) n    程序往下执行一行代码(不会进入函数里面)。

linux中gdb调试器的简单使用(图文)_第6张图片

6、(gdb) s(step)    程序往下执行一行代码。(会进入函数里面将函数展开)

linux中gdb调试器的简单使用(图文)_第7张图片

7、(gdb) p(print) <表达式>   打印表达式的值,表达式可以是任何C语言的有效表达式,如变量、数字、函数调用等。

linux中gdb调试器的简单使用(图文)_第8张图片

8、(gdb) c(continue)    程序将继续向下运行,遇到设置的断点、段错误和程序运行结束时自动回到gdb命令行 。

linux中gdb调试器的简单使用(图文)_第9张图片

9、(gdb) bt 或 where   显示程序堆栈信息,一般在遇到段错误时使用 。

linux中gdb调试器的简单使用(图文)_第10张图片

10、(gdb) q   然后输入 y,退出gdb调试。

linux中gdb调试器的简单使用(图文)_第11张图片
11、程序运行时输入ctrl+c,回到gdb调试模式,输入(gdb) signal <信号>,向程序发送信号。

 linux中gdb调试器的简单使用(图文)_第12张图片

12、(gdb) layout split 显示源代码和汇编窗口,能够看到断点位置,对照代码调试,更加直观。

linux中gdb调试器的简单使用(图文)_第13张图片

三、传送门

程序编译:

https://blog.csdn.net/csdn_kou/article/details/81407195

gdb更多用法:

https://blog.csdn.net/yimingsilence/article/details/72153049

http://www.cnblogs.com/qigaohua/p/6077790.html

调试多文件程序:

https://blog.csdn.net/niepangu/article/details/52887803

https://blog.csdn.net/timsley/article/details/51000667

调试多线程程序:

http://www.cnblogs.com/lsgxeva/p/8078670.html

你可能感兴趣的:(Linux基础学习,C语言学习,C++学习,工具使用)