GDB调试器的简单使用(图文)
来源:嵌入式大杂烩发布时间:2022-04-181039浏览
询问 AI原文: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
新闻来源:嵌入式大杂烩,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。


