嵌入式,代码调试----GDB扫盲
本文为Android嵌入式学习系列笔记 三
GDB, 是GNU项目的调试工具(the GNU Project debugger),G—>GNU,DB--->debuger, gdb允许我们观察被调试程序在运行时的内部状态,也可以查看一个程序crash时状态。
gdb可以做四种操作:
1.运行程序,标识任何可能影响程序运行行为的事物;
2.支持断点调试;
3.检查程序停止时的状态;
4.支持改变变量的值;
gdb下载http://www.gnu.org/software/gdb/download/
通过gdb yourprogram可以启动gdb调试,启动gdb之后可以通过quit或Ctrl - d退出,gdb还可以调试在运行中的进程gdb program 1234 ,其中1234标识进程的id。
在gdb调试过程中,如果你突然想执行摸个shell命令,可以直接键入shell yourcommand,也就是在命令前加上shell,同理也可以执行make xxx
需要注意的是:
源文件编译后切包含调试信息才能够被gdb调试,通常是gcc加上-g参数表示编译时附带调试信息,当然还可以再跟上-o来指定输出文件,也可以不指定采取默认。
调试相关参数
run/r 启动gdb
step/s 进入,相当于step into
next/n 下一步, 相当于step over
continue/c 继续执行
break place 在place处加断点,place可以是行号,函数名,多文件调试时,place可以加上文件名用于区别
print x 输出变量x的当前值
info break/ i b 显示所有断点
delete break place 删除断点
references:
1GDB homepage.http://www.gnu.org/software/gdb/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?