GDB使用
- 格式:doc
- 大小:253.50 KB
- 文档页数:29
gdb调试命令的使用及总结
gdb是一个功能强大的调试器,用于调试C、C++等编程语言的程序。
它提供了许多命令和功能,可以帮助开发人员诊断和修复程序中的错误。
下面我将从使用和总结两个方面来回答你的问题。
首先是gdb的使用。
要使用gdb调试程序,首先需要在编译时包含调试信息。
这意味着在使用gcc或g++编译程序时,需要添加`-g`选项。
例如:
gcc -g -o program program.c.
然后可以使用以下命令启动gdb并加载程序:
gdb program.
一旦进入gdb,可以使用一系列命令来控制程序的执行和检查程序状态。
例如,可以使用`run`命令来运行程序,`break`命令来设置断点,`step`和`next`命令来逐行执行程序等等。
此外,还可以使用`print`命令来打印变量的值,`backtrace`命令来查看函数调用栈等等。
现在来总结一下gdb的使用。
gdb是一个非常强大的调试工具,它可以帮助开发人员快速定位和修复程序中的错误。
通过设置断点、逐行执行程序、查看变量的值等操作,开发人员可以深入了解程序
的执行过程,找出其中的问题。
此外,gdb还提供了丰富的文档和
在线帮助,可以帮助开发人员更好地利用它的功能。
总的来说,gdb是一个非常有用的调试工具,它可以帮助开发
人员提高程序调试的效率和准确性。
通过学习和熟练掌握gdb的使用,开发人员可以更快地修复程序中的错误,提高自己的编程水平。
希望这个回答能够帮助你更好地了解gdb的使用和功能。
100个gdb小技巧(最新版4篇)目录(篇1)1.引言2.gdb基本用法3.gdb高级用法4.gdb在调试中的应用5.结论正文(篇1)gdb是一个强大的调试工具,对于程序员来说,熟练掌握gdb的使用技巧是非常重要的。
以下是100个gdb小技巧,帮助您更好地利用gdb进行调试。
1.在gdb启动时,可以指定要调试的可执行文件的路径。
例如,如果可执行文件名为“myprogram”,则可以使用以下命令启动gdb:gdb/path/to/myprogram2.在gdb中,可以使用“run”命令来运行程序,并使用“break”命令在指定的行上设置断点。
例如,如果要在第10行设置断点,则可以使用以下命令:break 103.在gdb中,可以使用“next”命令来逐行执行程序,使用“step”命令来进入函数调用,使用“continue”命令来继续运行程序。
例如,如果要从第10行开始逐行执行程序,则可以使用以下命令:next或step 104.在gdb中,可以使用“delete”命令来删除已经设置的断点。
例如,如果要删除第10行的断点,则可以使用以下命令:delete 105.在gdb中,可以使用“info”命令来查看当前的状态信息,例如变量值、调用栈等。
例如,如果要查看变量x的值,则可以使用以下命令:info variables x6.在gdb中,可以使用“print”命令来查看变量的值。
例如,如果要查看变量x的值,则可以使用以下命令:print x7.在gdb中,可以使用“display”命令来显示变量的值。
例如,如果要显示变量x的值并在程序运行时更新显示结果,则可以使用以下命令:display x8.在gdb中,可以使用“watch”命令来监视一个变量的值的变化。
例如,如果要监视变量x的变化并打印出每次的变化结果,则可以使用以下命令:watch x9.在gdb中,可以使用“set”命令来设置程序的运行环境。
gdb 使用方法GDB是GNUDebugger的缩写,是一种强大的调试工具,可以用于C、C++、汇编等语言的程序调试。
在本文中,我们将介绍 GDB 的一些基本使用方法。
1. 编译程序在使用 GDB 调试程序之前,首先需要编译程序,以便在调试时能够获取程序的符号表信息。
在编译时,需要使用 -g 选项生成调试信息。
例如:```shell$ gcc -g -o my_program my_program.c```2. 启动 GDB启动 GDB 的方法很简单,只需要在命令行中输入 gdb 命令,后跟要调试的程序的名称。
例如:```shell$ gdb my_program```3. 设置断点在程序中设置断点可以帮助我们在程序执行到特定位置时停下来,方便我们进行调试。
在 GDB 中,可以使用 break 命令设置断点。
例如:```shell(gdb) break main```上面的命令会在程序执行到 main 函数时设置一个断点。
4. 运行程序在设置好断点之后,可以使用 run 命令运行程序。
例如:```shell(gdb) run```5. 调试程序程序运行过程中,可以使用 GDB 提供的一些命令进行调试。
例如:- step:单步执行程序,进入函数内部。
- next:单步执行程序,不进入函数内部。
- print:打印变量的值。
- watch:监视一个变量,当变量的值发生变化时停下来。
- continue:继续执行程序直到遇到下一个断点或程序结束。
6. 查看程序状态在调试程序时,可以使用 GDB 提供的一些命令查看程序的状态。
例如:- info breakpoints:查看当前设置的断点。
- info locals:查看当前函数的局部变量。
- info registers:查看当前 CPU 寄存器的值。
- info threads:查看当前程序中的线程信息。
7. 退出 GDB在调试完成后,可以使用 quit 命令退出 GDB。
gdb基本用法GNU调试器(GNU Debugger,简称GDB)是一个强大的、功能丰富的调试工具,它可以帮助我们找出程序中的错误。
在程序出错时,GDB 可以帮助我们找出出错的原因,以及出错时程序的状态。
本文将介绍GDB的基本用法。
一、GDB概述GDB是一个基于命令行的调试器,它允许开发者在程序出错时,通过一系列的命令来查看、改变程序的状态,从而找出出错的原因。
GDB支持多种编程语言,包括C、C++、Fortran等。
1. 启动GDB要启动GDB,需要先打开一个终端窗口,然后在该窗口中输入`gdb`命令,后面跟上需要调试的程序。
例如,如果要调试一个名为`myprogram`的可执行文件,可以输入`gdb myprogram`。
2. 设置断点在程序中设置断点,可以让GDB在程序执行到该位置时暂停,从而方便我们查看此时程序的状态。
可以通过`break`命令来设置断点,例如`break function_name`会在函数`function_name`处设置断点。
当程序执行到该处时,GDB会暂停程序的执行。
3. 运行程序在GDB中,可以使用`run`命令来运行程序。
默认情况下,`run`命令会从上次停止的地方继续执行程序。
如果需要在其他位置开始执行程序,可以使用`continue`命令。
4. 查看程序状态在程序暂停时,可以通过GDB的命令来查看当前程序的状态。
例如,可以使用`print`命令来查看变量的值,使用`info`命令来查看变量的类型、值等详细信息。
还可以使用`backtrace`命令来查看当前函数的调用栈。
5. 改变程序状态除了查看程序状态外,GDB还提供了许多命令来改变程序的状态。
例如,可以使用`step`命令来逐行执行代码,使用`continue`命令来继续执行程序直到下一个断点或程序结束,使用`kill`命令来停止程序的执行。
还可以使用一些命令来修改变量的值,例如使用`set variable = new_value`来改变变量的值。
gdb使用教程GDB是GNU调试器的缩写,是一个功能强大的命令行调试工具,用于帮助开发人员在调试过程中定位和修复程序中的错误。
以下是GDB的使用教程:1. 编译程序时添加调试信息:在使用GDB进行调试之前,需要确保程序在编译时包含了调试信息。
可以通过在编译命令中添加`-g`选项来实现。
例如:`gcc -g main.c -o main`。
2. 启动GDB:在命令行中输入`gdb`命令,然后输入可执行文件的路径作为参数。
例如:`gdb ./main`。
3. 设置断点:断点是在程序执行到指定位置时停下来的标记。
可以使用`break`命令来设置断点。
例如:`break main`可以在`main`函数的开头设置一个断点。
4. 开始执行程序:使用`run`命令来运行程序。
例如:`run`。
5. 执行程序并停在断点处:当程序开始运行后,会在达到断点处停下来等待输入。
此时可以使用一些GDB命令来检查程序的状态,如查看变量的值、栈帧等。
6. 单步执行:使用`next`命令来逐行执行程序。
例如:`next`。
7. 跳出函数:使用`finish`命令可以跳出当前正在执行的函数,并停在调用该函数的上一个函数中。
8. 继续执行:使用`continue`命令可以接着执行程序直到下一个断点或程序结束。
9. 查看变量的值:使用`print`或简写的`p`命令可以查看变量的值。
例如:`print i`可以查看变量`i`的值。
10. 修改变量的值:使用`set`命令可以修改变量的值。
例如:`set i = 10`可以将变量`i`的值修改为10。
11. 查看函数调用栈:使用`backtrace`或简写的`bt`命令可以查看函数调用栈。
12. 退出GDB:使用`quit`命令可以退出GDB。
以上是一些常用的GDB命令,使用GDB进行调试时还有很多其他的功能和命令可以使用,可以通过阅读GDB的文档来更详细地了解。
gdb调试命令的使用及总结GDB是GNU调试器的简称,是一个非常强大的调试工具,可用于调试C、C++等编程语言的程序。
通过GDB,开发人员可以在程序运行过程中查看变量的值、跟踪函数的执行、定位错误的原因等。
下面将介绍一些常用的GDB调试命令及其使用方法。
1. 启动GDB调试器:在命令行中输入"gdb"命令即可启动GDB调试器。
然后使用"gdb <可执行文件名>"命令加载要调试的可执行文件。
2. 设置断点:使用"break <行号>"命令在指定行号上设置断点。
可以使用"break <函数名>"命令在指定函数的入口处设置断点。
使用"info breakpoints"命令可以查看当前设置的断点。
3. 运行程序:使用"run"命令运行程序。
如果程序需要输入参数,则可以使用"run <参数1> <参数2> ..."的形式运行。
4. 单步执行:在断点处停下来后,可以使用"next"命令执行下一行代码。
使用"step"命令进入函数内部执行。
使用"finish"命令执行完当前函数并返回上一层调用。
5. 查看变量值:使用"print <变量名>"命令可以查看指定变量的值。
使用"display <变量名>"命令可以设置自动显示变量值。
6. 查看堆栈信息:使用"backtrace"命令可以查看函数调用的堆栈信息。
使用"frame <帧号>"命令可以切换到指定的堆栈帧。
7. 修改变量值:使用"set <变量名>=<新值>"命令可以修改指定变量的值。
gdb的安装及使用流程1. 简介gdb是GNU Debugger的缩写,是一款功能强大的调试工具,可用于调试C、C++等程序。
本文将介绍如何安装和使用gdb。
2. 安装gdb以下是在Ubuntu系统上安装gdb的步骤:1.打开终端。
2.输入以下命令安装gdb:sudo apt-get install gdb3.输入系统密码确认安装。
4.等待安装完成。
3. 使用gdb进行调试以下是使用gdb进行调试的基本流程:1.编写带有调试信息的程序。
2.编译程序时需要添加-g选项,以保留调试信息。
例如:gcc -g -o program program.c3.在终端中输入以下命令启动gdb:gdb program这里的program是编译后生成的可执行文件。
4.使用gdb的命令进行调试。
下面是一些常用的gdb命令:•run:运行程序。
•break:设置断点。
•continue:继续执行程序直到下一个断点。
•next:单步执行程序。
•print:打印变量的值。
•finish:执行完当前函数并返回到调用该函数的地方。
•quit:退出gdb。
5.根据需要重复步骤4进行调试,直到找到和解决问题。
4. 调试示例下面以一个简单的C程序进行演示:```c #include <stdio.h>int factorial(int n) { if (n == 1) return 1; else return n * factorial(n-1); } int main() { int n = 5; printf(。
GDB的使用1:gdb是一个主要用来调试C、C++程序的功能强大的调试器2:gdb调试:如果要使用gdb(arm-linux-gdb)调试,那么在用gcc(arm-linux-gcc)编译源文件时必须在命令最后加上“-g”,使可执行文件包含调试信息调试步骤:首先:输入#gdb 可执行文件名(arm-linux-gdb 可执行文件名)然后会进入gdb命令行:(gdb)命令名gdb包含的命令有:1:查看文件:(gdb)l(list)2:设置断点:(gdb)b(break)行号设置临时断点,到达后被自动删除:(gdb)tbreak 行号或函数名在指定文件的对应行设置断点:(gdb)break filename 行号在内存某一位置处暂停:(gdb)break <0x……>设置条件断点,在循环中使用非常方便:(gdb)break 行号if 条件3:删除断点:(gdb)d(delete)断点号清除对应行的断点:(gdb)clear 要清除断点的行号4:查看断点情况:(gdb)info b(break)可用于查询断点号查看断点或观察点的情况:(gdb)info breakpoints/watchpoints5:运行代码:(gdb)r(run);在r后面加上行号即可从程序中指定行开始运行6: 查看变量:(gdb)p(print)变量名;7:修改变量的值:(gdb)p 变量=要修改的值8:执行一行源程序并进入函数内部:(gdb)s(step)9: 执行一行源程序而不进入函数内部:(gdb)n(next)10: 继续程序运行直到再次遇到断点:(gdb)c(continue)11: 退出gdb:(gdb)q(quit)12:执行其后的shell命令:(gdb)shell13:终止正在调试的程序:(gdb)kill14:让所设断点暂时失效:(gdb)disable 断点编号;如要让多个断点失效可将编号之间用空格隔开让所设断点有效:(gdb)enable 断点编号15:显示被调试程序的各种信息:(gdb)[break/files/cocal/var]16: 不退出gdb就可以重新生成可执行文件:(gdb)make17:显示指定调试命令的帮助(gdb) help [command]18: 查看函数调用:(gdb)where19:在某一循环处观察一个变量的变化情况:(gdb)watch 变量设置一个观察点,当变量被程序读时,程序被暂停:(gdb)awatch 变量或(gdb)watch 变量设置一个观察点,当变量被读出或写入时程序被暂停:(gdb)rwatch 变量GDB中数据相关命令:1:显示表达式的值:(gdb)display 表达式;使用了该命令后,每当程序运行到断点处都会显示表达式的值2:显示当前所有要显示值的表达式的有关情况:(gdb)info display3:删除一个要显示的表达式:(gdb)delete display 编号;调用这个命令删除一个表达式后,被删除的表达式将不被显示4:使一个要显示的表达式暂时无效:(gdb)disable display 编号5:使一个要显示的表达式有效:(gdb)enable display 编号6:结束某个表达式值的显示:(gdb)undisplay display 编号7:显示某个表达式的数据类型:(gdb)whatis 变量8:打印变量或表达式的值:(gdb)p(print) 变量或表达式9:改变程序中一个变量的值:(gdb)set 变量=变量值GDB调试运行环境相关命令:1:设置运行参数:(gdb)set args2: 参看运行参数:(gdb)show args3: 切换工作目录:(gdb)cd 工作目录4:一直运行到函数返回:(gdb)Finish5:运行到函数某一行:(gdb)until 行数6:改变程序流程,直接结束当前函数,并将指定值返回:(gdb)Return <返回值>7:在当前位置执行所要运行的函数:(gdb)call 函数堆栈相关命令:1:打印栈帧指针,也可以再该命令后加上要打印的栈帧指针的个数:(gdb)backtrace/bt 2:打印栈帧:(gdb)frame3:查看寄存器使用情况:(gdb)info reg4:查看堆栈情况:(gdb)info stack5:跳到上一层函数:(gdb)up6:跳到下一层函数:(gdb)down注意:在n行设置了断点,则程序会运行到第n-2行,n-1行并没有运行3:使用arm-linux-gdb实现交叉调试:Arm-linux-gdb实现远程交叉调试,通过gdb主机与目标系统上的gdb代理之间的互相协作来进行的,它们之间的通信遵循“gdb远程串行协议”,gdb交叉调试是在gdb调试器与调试代理gdbserver或KGDB之间进行的。
gdb 使用方法一、基本用法1. 启动gdb可以通过在命令行中输入"gdb"命令来启动gdb,并指定要调试的可执行文件作为参数。
例如,要调试名为"program"的可执行文件,可以输入以下命令:```gdb program```2. 设置断点断点是一个程序中的特定位置,当程序执行到该位置时,会暂停执行,从而可以检查程序的状态。
可以使用"gdb"命令设置断点。
例如,要在程序的第10行设置一个断点,可以输入以下命令:```break 10```可以使用"break"命令指定函数名或文件名和行号来设置断点。
3. 运行程序在gdb中运行程序时,可以使用"run"命令。
如果程序需要命令行参数,可以在"run"命令后面添加这些参数。
例如,要运行程序并传递参数"arg1"和"arg2",可以输入以下命令:```run arg1 arg2```4. 执行程序在gdb中执行程序时,可以使用"continue"命令。
该命令会让程序继续执行,直到遇到下一个断点或程序结束。
5. 单步执行在gdb中,可以使用"next"命令逐行执行程序。
该命令会执行当前行,并将程序指针移到下一行。
如果当前行是函数调用,"next"命令会将程序指针移到函数的第一行。
6. 查看变量的值在gdb中,可以使用"print"命令查看变量的值。
例如,要查看变量"var"的值,可以输入以下命令:```print var```7. 修改变量的值在gdb中,可以使用"set"命令修改变量的值。
例如,要将变量"var"的值设置为10,可以输入以下命令:```set var = 10```8. 退出gdb在gdb中退出调试会话时,可以使用"quit"命令。
gdb教程GDB是一个功能强大的调试器,它可以帮助开发人员定位和解决程序中的错误。
本教程将介绍如何使用GDB进行调试。
1. 安装GDB在开始使用GDB之前,首先需要在您的机器上安装它。
您可以通过在终端中运行以下命令来检查是否已安装GDB:```gdb --version```如果显示了GDB的版本信息,则表示已安装。
如果没有安装,可以通过系统包管理器或从GDB官方网站上下载安装包进行安装。
2. 编译程序在使用GDB之前,需要确保程序是以调试模式编译的。
在编译时,可以使用`-g`选项来启用调试信息的生成。
例如:```gcc -g -o myprogram myprogram.c```这样会生成一个名为`myprogram`的可执行文件,其中包含调试信息。
3. 启动GDB运行以下命令以启动GDB并加载程序:```gdb myprogram```这将启动GDB并将`myprogram`加载到调试器中。
4. 设置断点断点是GDB中的一个重要特性,它可以让您在程序执行时暂停并进行调试。
您可以使用`break`命令来设置断点。
例如,要在`main`函数的第10行设置一个断点,运行以下命令:```break main:10```当程序执行到该行时,它将暂停并等待您执行下一步操作。
5. 执行程序您可以使用`run`命令来执行程序。
例如:```run```程序将开始执行,并在遇到断点或程序结束时停止。
6. 调试命令一旦程序暂停,您可以使用各种GDB命令来查看和操作程序状态。
以下是一些常用的命令:- `next`: 执行下一行代码。
- `step`: 进入函数并执行下一行代码。
- `print <variable>`: 打印变量的值。
- `backtrace`: 打印函数调用堆栈。
- `continue`: 继续执行程序直到下一个断点或程序结束。
可以使用`help`命令来获取有关其他命令的更多信息。
7. 查看内存和寄存器GDB还可以让您查看程序的内存和寄存器状态。
GDB概述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。
或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。
所谓“寸有所长,尺有所短”就是这个道理。
一般来说,GDB主要帮忙你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。
(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、动态的改变你程序的执行环境。
从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。
让我们一一看来。
一个调试示例——————源程序:tst.c1 #include <stdio.h>;23 int func(int n)4 {5 int sum=0,i;6 for(i=0; i<n; i++)7 {8 sum+=i;9 }10 return sum;11 }121314 main()15 {16 int i;17 long result = 0;18 for(i=1; i<=100; i++)19 {20 result += i;21 }2223 printf("result[1-100] = %d \n", result );24 printf("result[1-250] = %d \n", func(250) );25 }编译生成执行文件:(Linux下)hchen/test>; cc -g tst.c -o tst使用GDB调试:hchen/test>; gdb tst <---------- 启动GDBGNU gdb 5.1.1Copyright 2002 Free Software Foundation, Inc.GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions.There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-suse-linux"...(gdb) l <-------------------- l命令相当于list,从第一行开始例出原码。
1 #include <stdio.h>;23 int func(int n)4 {5 int sum=0,i;6 for(i=0; i<n; i++)7 {8 sum+=i;9 }10 return sum;(gdb) <-------------------- 直接回车表示,重复上一次命令11 }121314 main()15 {16 int i;17 long result = 0;18 for(i=1; i<=100; i++)19 {20 result += i;(gdb) break 16 <-------------------- 设置断点,在源程序第16行处。
Breakpoint 1 at 0x8048496: file tst.c, line 16.(gdb) break func <-------------------- 设置断点,在函数func()入口处。
Breakpoint 2 at 0x8048456: file tst.c, line 5.(gdb) info break <-------------------- 查看断点信息。
Num Type Disp Enb Address What1 breakpoint keep y 0x08048496 in main at tst.c:162 breakpoint keep y 0x08048456 in func at tst.c:5(gdb) r <--------------------- 运行程序,run命令简写Starting program: /home/hchen/test/tstBreakpoint 1, main () at tst.c:17 <---------- 在断点处停住。
17 long result = 0;(gdb) n <--------------------- 单条语句执行,next命令简写。
18 for(i=1; i<=100; i++)(gdb) n20 result += i;(gdb) n18 for(i=1; i<=100; i++)(gdb) n20 result += i;(gdb) c <--------------------- 继续运行程序,continue命令简写。
Continuing.result[1-100] = 5050 <----------程序输出。
Breakpoint 2, func (n=250) at tst.c:55 int sum=0,i;(gdb) n6 for(i=1; i<=n; i++)(gdb) p i <--------------------- 打印变量i的值,print命令简写。
$1 = 134513808(gdb) n8 sum+=i;(gdb) n6 for(i=1; i<=n; i++)(gdb) p sum$2 = 1(gdb) n8 sum+=i;(gdb) p i$3 = 2(gdb) n6 for(i=1; i<=n; i++)(gdb) p sum$4 = 3(gdb) bt <--------------------- 查看函数堆栈。
#0 func (n=250) at tst.c:5#1 0x080484e4 in main () at tst.c:24#2 0x400409ed in __libc_start_main () from /lib/libc.so.6 (gdb) finish <--------------------- 退出函数。
Run till exit from #0 func (n=250) at tst.c:50x080484e4 in main () at tst.c:2424 printf("result[1-250] = %d \n", func(250) );Value returned is $6 = 31375(gdb) c <--------------------- 继续运行。
Continuing.result[1-250] = 31375 <----------程序输出。
Program exited with code 027. <--------程序退出,调试结束。
(gdb) q <--------------------- 退出gdb。
hchen/test>;好了,有了以上的感性认识,还是让我们来系统地认识一下gdb吧。
使用GDB一般来说GDB主要调试的是C/C++的程序。
要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。
使用编译器(cc/gcc/g++)的-g 参数可以做到这一点。
如:>; cc -g hello.c -o hello>; g++ -g hello.cpp -o hello如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。
当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试它。
启动GDB方法有以下几种(program应该在PATH环境变量中搜索得到):1、gdb <program>;program也就是你的执行文件,一般在当然目录下。
2、gdb <program>; core用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump 后产生的文件。
3、gdb <program>; <PID>;如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。
gdb 会自动attach上去,并调试他。
GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。
我在下面只例举一些比较常用的参数:-symbols <file>;-s <file>;从指定文件中读取符号表。
-se file从指定文件中读取符号表信息,并把他用在可执行文件中。
-core <file>;-c <file>;调试时core dump的core文件。
-directory <directory>;-d <directory>;加入一个源文件的搜索路径。
默认搜索路径是环境变量中PATH所定义的路径。
启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看。
gdb的命令很多,gdb把之分成许多个种类。
help命令只是例出gdb的命令种类,如果要看种类中的命令,可以使用help <class>; 命令,如:help breakpoints,查看设置断点的所有命令。
也可以直接help <command>;来查看命令的帮助。
gdb中,输入命令时,可以不用打全命令,只用打命令的前几个字符就可以了,当然,命令的前几个字符应该要标志着一个唯一的命令,在Linux下,你可以敲击两次TAB键来补齐命令的全称,如果有重复的,那么gdb会把其列出来。
示例一:在进入函数func时,设置一个断点。
可以敲入break func,或是直接就是b func(gdb) b funcBreakpoint 1 at 0x8048458: file hello.c, line 10.示例二:敲入b按两次TAB键,你会看到所有b打头的命令:(gdb) bbacktrace break bt(gdb)示例三:只记得函数的前缀,可以这样:(gdb) b make_ <按TAB键>;(再按下一次TAB键,GDB把所有make开头的函数全部例出来)make_a_section_from_file make_environmake_abs_section make_function_typemake_blockvector make_pointer_typemake_cleanup make_reference_typemake_command make_symbol_completion_list(gdb) b make_示例四:调试C++的程序时,有可以函数名一样。