
原文:https://blog.csdn.net/fangye945a/article/details/85254627
在ARM、Linux平台开发C/C++项目时,多多少少会遇到一些程序上的bug。小工程还好,如果是个大工程,代码量又大,就很难定位问题了。这时候使用gdb调试器便能轻松的帮忙定位代码bug。
关于GDB的使用,之前也有分享过:
手把手教你使用VSCode + gdb + gdbserver调试ARM程序
可结合阅读。
一、使用方法
如下为示例代码:

在编译代码的时候,加上调试选项 -g,如下所示:
gcc -g test.c -o test
利用gdb调试器来运行程序:gdb <可执行程序名>

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

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

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

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

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

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

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

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

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

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

11、程序运行时输入 ctrl+c
,回到gdb调试模式,输入(gdb) signal <信号>
,向程序发送信号。

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

三、相关连接
程序编译:
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
暂无评论哦,快来评论一下吧!

