嵌入式调试器 gdb的使用

来源:互联网 发布:python退出命令 编辑:程序博客网 时间:2024/04/24 11:41

1.gdb简介

2.gdb常用命令及举例

3.调试的方法补充

一、gdb简介

在任何的程序开发过程中每一个程序开发员都避免不了程序的出错,为此程序的调试对于每个程序员是必不可少的。

gcc调试C程序时只能根据gcc编译时发出的错误警告进行修改,而gdb可以有更强的调试功能。gdb调试器是由GNU开发的一款调试器,它可以和Visual C++、Visual Basic等开发工具的调试器媲美。

gdb主要有下列这些功能:

1.可以在指定的断点处让被调试程序停止

2.启动被调试程序,可以按自己的意愿运行程序

3.可以动态地改变程序的执行环境

二、gdb的常用命令及举例

1.生成调试信息

在使用gdb调试器时,编译时我们必须将gdb的调试信息加到可执行文件中,我们通过-g实现。

gcc -g filename


2.启动gdb



3.gdb下的常用命令及命令举例

命令

命令描述

run

运行程序

List(l)

列出源代码,接着上次的位置往下列,每次列10

break

设置断点

next(n)

一步步执行下一行语句,不会进入子函数

info

列出信息

print(p)

打印表达式的值

step

单步执行下一语句,遇到函数时会进入函数去一步步执行

break 函数名

在调用到某一函数时停止

delete 断点号

删除某一断点

Continue

运行到下一断点结束,无断点则一直执行

finish

执行完当前函数返回到调用它的函数


运行程序:run


源代码罗列:list(或l)


断点设置:break


删除断点:delete



三、调试的方法补充

程序员在开发一项软件时通常有两个版本,一个是测试版本,一个是发行版本。通常测试版本里含有测试信息,而发行版本则不显示这些信息。通常他们采用的是在程序中添加下面这样的一个头文件。

通常其中定义有_DEBUG_这一宏定义,此处没有定义,这一头文件用于发行版程序。#define debug_msg(fmt, args...) printf(fmt, ##args)这一语句表示当定义了_DEBUG_这一宏时将源代码中的debug_msg(fmt, args...)替换成printf(fmt, ##args),这样程序员在调试时就可以很容易发现错误的位置并进行修改。


若要在头文件中添加宏定义_DEBUG_,可在编译hello.c文件时输入gcc hello.c -D_DEBUG_,-D的功能是在编译hello.c文件时在其头文件中添加-D后的宏定义。




0 0