gdb基本使用方法及常用命令

2017-06-02

GNU调试器(GNU Debugger, GDB)是一个开源的源代码级的调试工具,其性能优良、功能齐全、易于使用,在嵌入式系统开发过程中扮演着越来越重要的角色。接下来是小编为大家收集的gdb基本使用方法及常用命令,希望能帮到大家。

gdb基本使用方法及常用命令

一、编译、链接成可执行文件

记得加入-g选项

gcc -g gdbtest.c -o test

二、启动gdb

gdb filename ---- 本例中是gdb test,如下图:

或者

gdb

(gdb)file filename,如下图:

三、退出

(gdb)quit

四、基本操作

(1)列出源代码list,在提示符下打入list,会出现一部分源代码,接着按回车会重复上一次命令

可以利用help list查询list的使用方法

a.list 10 -- 以第10行为中心显示

b.显示compute函数 list compute

c.列出10-15行的源代码 list 10,15

d.列出其他文件的相应行或函数

list gdbinc.h:1

list gdbinc.h:max

(2)运行程序run

如果需要参数可以在run后面跟上参数

(3)设置断点break

a.在某行设置断点 break 7

b.在某函数设置断点 break compute

c.在其他文件设置断点(行或函数名) break gdbinc.h:2 break gdbinc.h:max

d.在某个地址设置断点 break *address (当你调试的程序没有源程序时使用)

e.查询断点信息info break

f.条件断点 break <linenum>or<func> if condition

如:break 8 if a == 10

g.开启和关闭断点

disable 断点号 (关闭)

enable 断点号 (开启)

enable once 断点号 (开启一次)

enable delete 断点号(开启一次后删除)

h.删除断点

delete 断点号

clear 清除当前行的断点

i.继续执行continue,当执行到某处中断时,使其继续执行

(4)单步执行不进入函数next

(5)单步执行进入函数step

(6)终止正在调试的程序kill

(7)监视值变动watch expression(当你运行run后,你想知道哪些值在运行中被改变了,可以设置此)

(8)监视值被读rwatch expression(基本同上)

(9)在运行时打印变量的值print expression

print/F expression,其中F为格式(x--16进制,d--有符号十进制,u--无符号十进制,f--浮点格式)

(10)修改变量值set variable=value

(11)执行shell命令[shell 命令名]

(12)不退出gdb产生可执行文件[make,必须有Makefile文件]

(13)info命令(此命令用处广泛)

a.info break查看断点信息(见上面断点)

b.info args查看当前方法的参数

c.info stack查看调用堆栈

d.info source查看当前源文件的信息

e.info sources查看所有在程序中的源文件路径

(14)查看内存命令 x/<n/f/u> <addr> n、f、u是可选的参数。<addr>表示一个内存地址。

n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。

f 表示显示的格式,参见上面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。

u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字节,g表示八字节。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。

输出格式

一般来说,GDB会根据变量的类型输出变量的值。但你也可以自定义GDB的输出的格式。例如,你想输出一个整数的十六进制,或是二进制来查看这个整型变量的中的位的情况。要做到这样,你可以使用GDB的数据显示格式:

x 按十六进制格式显示变量。

d 按十进制格式显示变量。

u 按十六进制格式显示无符号整型。

o 按八进制格式显示变量。

t 按二进制格式显示变量。

a 按十六进制格式显示变量。

c 按字符格式显示变量。

f 按浮点数格式显示变量。

比如:上图中 x/4dw 0xbffff650 指的是显示4个单元的内容,以10进制显示,每个单元长度为4个字节

看了“gdb基本使用方法及常用命令”还想看:

1.2014年9月计算机二级Access无纸化预测选择题

2.c语言函数调用过程

3.嵌入式培训心得

4.简洁的英语简历范文模板

更多相关阅读

最新发布的文章