gdb经常使用的命令

时间:2023-03-08 18:39:39

gdb经常使用的命令gdb经常使用的命令在调试程序的时候,gdb是一柄利器,恰当的使用gdb能够解决掉程序的很多bug。

gdb经常使用的命令gdb经常使用的命令gdb并不检查语法错误。那是gcc或者g++的事情,gdb干的是调试的事情。

gdb经常使用的命令gdb经常使用的命令说明:

gdb经常使用的命令gdb经常使用的命令(1)gdb 程序名
[corefile]之类的是代表命令的使用方法。[]中间的内容是可选项,即你能够加。也能够不加。

gdb经常使用的命令gdb经常使用的命令(2)假设须要反复运行一条命令,不须要每次都键入命令。gdb记住了最后一个被运行的命令。仅仅要简单的按enter键就能够反复运行最后的命令。

1.  gdb命令

gdb经常使用的命令gdb经常使用的命令该命令主要用来启动调试。

gdb经常使用的命令gdb经常使用的命令gdb
程序名 [corefile]

gdb经常使用的命令gdb经常使用的命令corefile是可选的。但能增强gdb的调试能力。Linux默认是不生成corefile的。所以须要在.bashrc文件里加入

ulimit -c unlimited

gdb经常使用的命令gdb经常使用的命令改动完.bashrc文件后记得.
.bashrc让改动生效。

gdb经常使用的命令

gdb经常使用的命令

gdb经常使用的命令gdb经常使用的命令以下是一个没有语法错误,可是存在逻辑错误的代码:

gdb经常使用的命令

gdb经常使用的命令gdb经常使用的命令一执行立刻就会提示错误:

gdb经常使用的命令gdb经常使用的命令Segmentation
fault (coredumped)

gdb经常使用的命令gdb经常使用的命令我们列出当前文件夹下的文件,发现多了一个core.*之类的文件,这就是系统给我们生成的core文件。

gdb经常使用的命令gdb经常使用的命令我们如今能够启动gdb进行调试了。

gdb经常使用的命令gdb经常使用的命令gdb
1 core.1997

gdb经常使用的命令gdb经常使用的命令当中1是代码生成的程序,core.1997是出错后系统给我们生成的core文件。

gdb经常使用的命令gdb经常使用的命令假设你不喜欢一大堆的软件信息。能够通过-q參数关闭软件信息

gdb经常使用的命令gdb经常使用的命令gdb
-q 1 core.1997

gdb经常使用的命令gdb经常使用的命令#0 
0x080483c4 in test () at test.c:5

gdb经常使用的命令gdb经常使用的命令5              
*p = 2;

gdb经常使用的命令gdb经常使用的命令能够看到gdb通过core告诉你,程序哪条语句出现故障

2.  run命令

gdb经常使用的命令

gdb经常使用的命令gdb经常使用的命令该命令使得程序跑起来,须要注意:gdb命令并没有执行程序,仅仅是进入了gdb状态。

3.  continue命令

gdb经常使用的命令gdb经常使用的命令与run相对的是continue命令,记住。run是開始运行,continue是继续运行。两者是不同的,程序在断点处听下之后,你假设输入run。程序会又一次启动,而输入continue。程序会从断点处向下继续运行。

4.  where命令

gdb经常使用的命令gdb经常使用的命令where命令。能够显示导致段错误的运行函数处。

gdb经常使用的命令

gdb经常使用的命令gdb经常使用的命令#0 
0x080483c4 in test () at test.c:5

gdb经常使用的命令gdb经常使用的命令#1 
0x080483e6 in main () at test.c:10

5.  list命令

gdb经常使用的命令gdb经常使用的命令知道函数出错行的上下文对调试程序是非常有帮助的。

gdb经常使用的命令gdb经常使用的命令list[m,n],m,n是要显示包括错误首次出现位置的起始行和结尾行。

不带參数的list将显示附近的10行代码。

gdb经常使用的命令

gdb经常使用的命令

6.  break命令

gdb经常使用的命令gdb经常使用的命令break命令主要用来设置断点。详细使用方法例如以下:

gdb经常使用的命令gdb经常使用的命令break
linenum
在文件的linenum行设置断点;

gdb经常使用的命令gdb经常使用的命令break
funcname
对funcname函数设置断点。每次该函数被调用都会触发断点;

gdb经常使用的命令gdb经常使用的命令break
filename:linenum
在filename文件的linenum行设置断点;

gdb经常使用的命令gdb经常使用的命令break
filename:funcname
在filename文件对funcname函数设置断点。

gdb经常使用的命令

gdb经常使用的命令gdb经常使用的命令对于上面的一段代码。我们对test函数设置断点。在第10行设置断点:

gdb经常使用的命令

gdb经常使用的命令gdb经常使用的命令info
break能够查看已有的断点的信息。

gdb经常使用的命令gdb经常使用的命令delete
+ 断点序号能够删除断点。

7.  单步调试命令

gdb经常使用的命令gdb经常使用的命令step命令:step顾名思义。就是一步一步运行。当遇到一个函数的时候,step将进入函数,每次运行一条语句,相当于step
into。

gdb经常使用的命令gdb经常使用的命令next命令:当遇到一个函数的时候,next将运行整个函数,相当于step
over。

8.  print命令

gdb经常使用的命令gdb经常使用的命令gdb最实用的功能之中的一个就是它能够显示被调试程序中不论什么表达式、变量的值。

gdb经常使用的命令gdb经常使用的命令print
变量,表达式

gdb经常使用的命令gdb经常使用的命令print
‘file’::变量,表达式
, ‘’是必须的。以便让gdb知道指的是一个文件名称。

gdb经常使用的命令gdb经常使用的命令print
funcname::变量。表达式

gdb经常使用的命令gdb经常使用的命令我们先对test函数设置断点。然后单步运行,然后输出i的值:

gdb经常使用的命令

gdb经常使用的命令gdb经常使用的命令我们能够看到。print命令确实强大,方便地输出了变量的值。

9.  whatis命令

gdb经常使用的命令gdb经常使用的命令whatis 命令能够告诉你变量的类型,ptype
告诉你结构的定义。

gdb经常使用的命令

10.     return命令

gdb经常使用的命令gdb经常使用的命令return
[value]

gdb经常使用的命令gdb经常使用的命令停止运行当前函数,将value返回给调用者。相当于stepreturn。

gdb经常使用的命令gdb经常使用的命令运行该命令。会让当前的函数立刻退出,而且返回。

gdb经常使用的命令

11.     set命令

gdb经常使用的命令gdb经常使用的命令该命令能够改变一个变量的值。

gdb经常使用的命令gdb经常使用的命令set
variable varname = value

gdb经常使用的命令gdb经常使用的命令varname是变量名称,value是变量的新值。

gdb经常使用的命令

gdb经常使用的命令gdb经常使用的命令当然gdb还有许多复杂的命令,只是它们用到的机率很低,熟练地掌握了上面的命令,一般应付大部分的调试都不存在问题。

gdb经常使用的命令gdb经常使用的命令http://pan.baidu.com/s/1kThC6k3

版权声明:本文博主原创文章,博客,未经同意不得转载。