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

发布时间:2017-06-02 10:25

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

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

gdb基本使用方法及常用命令一、编译、链接成可执行文件

记得加入-g选项

gcc -g gdbtest.c -o test

二、启动gdb

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

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

或者

gdb

(gdb)file filename,如下图:

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

三、退出

(gdb)quit

四、基本操作

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

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

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

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

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

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

b.显示compute函数 list compute

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

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

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

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

list gdbinc.h:1

list gdbinc.h:max

(2)运行程序run

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

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

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

(3)设置断点break

a.在某行设置断点 break 7

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

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

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

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

e.查询断点信息info break

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

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

如:break 8 if a == 10

g.开启和关闭断点

disable 断点号 (关闭)

enable 断点号 (开启)

enable once 断点号 (开启一次)

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

h.删除断点

delete 断点号

clear 清除当前行的断点

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

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

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

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

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

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

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

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

(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查看当前方法的参数

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

c.info stack查看调用堆栈

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

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

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

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 按浮点数格式显示变量。

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

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

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

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

2.c语言函数调用过程

3.嵌入式培训心得

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

gdb基本使用方法及常用命令的评论条评论