原文:https://blog.csdn.net/fangye945a/article/details/85254627
在ARM、Linux平台开发C/C++项目时,多多少少会遇到一些程序上的bug。小工程还好,如果是个大工程,代码量又大,就很难定位问题了。这时候使用gdb调试器便能轻松的帮忙定位代码bug。
关于GDB的使用,之前也有分享过:
GDB调试器原来那么简单
手把手教你使用VSCode + gdb + gdbserver调试ARM程序
可结合阅读。
如下为示例代码:
在编译代码的时候,加上调试选项 -g,如下所示:
gcc -g test.c -o test
利用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
版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。
猜你喜欢:
实用 | 如何远程登录开发板?
实用 | 10分钟教你搭建一个嵌入式web服务器
实用 | 10分钟教你通过网页点灯
GDB调试器原来那么简单
手把手教你使用VSCode + gdb + gdbserver调试ARM程序
在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总。