嵌入式系统程序调试

本文介绍了GDB调试器的基本概念、常用命令以及调试步骤。GDB不仅支持多种编程语言,还能实现远程调试。通过设置断点、查看代码、监控变量和调用堆栈,开发者能有效调试程序。学会使用GDB对于嵌入式系统程序调试至关重要。
摘要由CSDN通过智能技术生成

嵌入式系统程序调试

GDB调试器及其调试方法

(1).GDB简介

GDB : GNU Debugger,是GNU工程为GNU操作系统开发的调试器,但它的使用不局限于GNU操作系统, GDB可以运行在UNIX、Linux甚至Microsoft Windows。
GDB可以调试C、C++、Objective-C、Pascal、Ada等语言编写的程序;被调试的程序可以跟GDB运行于同一台电脑,也可运行于不同电脑。

(2).GDB命令

file 装入想要调试的可执行文件。
kill 终止正在调试的程序。
list 列出产生执行文件的源代码的一部分。
next 执行一行源代码但不进入函数内部。
step 执行一行源代码而且进入函数内部。
run 执行当前被调试的程序。
c 继续运行程序。
quit 终止gdb。
watch 使你能监视一个变量的值而不管它何时被改变。
backtrace 栈跟踪,查出代码被谁调用。
print 查看变量的值。
make 使你能不退出gdb就可以重新产生可执行文件。
shell 使你能不离开gdb就执行UNIX shell命令。
whatis 显示变量或函数类型。
break 在代码里设断点,这将使程序执行到这里时被挂起。
info break 显示当前断点清单,包括到达断点处的次数等。
info files 显示被调试文件的详细信息。
info func 显示所有的函数名称。
info local 显示当函数中的局部变量信息。
info prog 显示被调试程序的执行状态。
delete [n] 删除第n个断点。
disable[n] 关闭第n个断点。
enable[n] 开启第n个断点。
ptype 显示结构定义。
set variable 设置变量的值。
call name(args) 调用并执行名为name,参数为args的函数。
Finish 终止当前函数并输出返回值。
return value 停止当前函数并返回value给调用者。
break命令的使用
根据行号设置断点:
(gdb) break linenum
根据函数名设置断点:
(gdb) break funcname
执行非当前源文件的某行或某函数时停止执行:
(gdb) break filename:linenum
(gdb) break filename:funcname
根据条件停止程序执行:
(gdb) break linenum if expr
(gdb) break funcname if expr

(3)GDB调试方法

(1)编写一个示例程序
在这里插入图片描述(2)启动GDB

在这里插入图片描述(3)分步进行调试
显示代码及行号
在这里插入图片描述在这里插入图片描述设置断点
在这里插入图片描述在这里插入图片描述在这里插入图片描述执行程序
在这里插入图片描述逐步运行
在这里插入图片描述GDB还有很多操作命令,这里就不赘述了,大家可以自己再多加尝试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值