学习啦>学习电脑>操作系统>Linux教程>

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

时间: 志艺942 分享

  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.简洁的英语简历范文模板

2805467