嵌入式调试器---GDB

一:GDB的概述:GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。

二:GDB的四个方面的功能:(1):启动你的程序,可以按照自己定义的要求随心所欲的运行程序,进行程序调试。

(2):可以让被调试的程序在你所指定的的调试的断点处停住。(断点可以是条件表达式)

(3):当程序被停住时,可以检查此时程序所发生的事。

(4):动态的改变你程序的执行环境。

GDB调试的缺点:没有图形调试界面。

GDB的调试方法:gcc -g hello.c -o hello  进入GDB  对hello.c文件进行调试生成可调试文件hello。

接下来用gdb hello 开始调试。

(-g)是对文件进行调试,(-o)是进行优化。一般都是一起用,不过可以不进行优化,有时候优化会导致调试时文件中的某些代码不显示。

如果一些正常,GDB将被启动并在屏幕上输出出版权信息,启动GDB时的另一个有用的命令行选项是:“-d dirname”,其中敌人那么是一个目录名。该目录是告诉GDB应该到哪去寻找源代码,一旦出现GDB的命令提示符(gdb),就表明GDB已经准备好,用户可以进行各种调试命令了。

命令:

run:简写r 让被调试的程序运行起来,

run 行数:简写r 行数 再指定行数执行,如果之后有断点,运行到直到断点行的前一行 

list【m,n】:表示显示从m行到n行结束的代码段。

list:表示显示最近10行的源代码。

list - :显示从当前开始的前10行的源代码。

设置断点:break linenum 根据行号设置断点,break funcname根据函数名设置断点。

break:简写b:设置断点。

b 10(break 10):设置断点,在源程序第10行。

b func(break func):设置断点,再函数func函数入口处停下。

info b(break):查询所有断点信息。

delete 数:删除此数的断点  例如:delete 1:删除断点1。  delete 不加数,删除所有断点。

disable 1:该命令禁止断点1。同时将断点信息的(Enb)域将变为n。

enable 1:该命令将允许断点1,同时将断点信息(Enb)域将变为y。

clean 行号:清除源文件中某一代码行上的所有断点。删除刚才停止处的断点。

查看变量值:

p;print的简写,查看当前变量n的值,GDB通过 $N($1 , $2) 来显示变量的值,下次查看变量值得时候就可以用 $N 代替变量名了。

继续运行程序:

c:continue(c)的简写,查看完当前程序情况后,就可以让程序继续往下运行了。

单步运行:

step:简写s,可以在发生函数调用时进入函数内部运行。

finish:退出该函数返回它的调用函数中。

next:简写n,让程序一步一步执行下去,n不会进行函数内部运行。

return:强制从当前函数返回。

make:使用户不退出gdb就可以产生可执行文件。

quit:退出gdb。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值