收藏 分享(赏)

gdb常用命令的用法.doc

上传人:dzzj200808 文档编号:2328125 上传时间:2018-09-10 格式:DOC 页数:5 大小:67KB
下载 相关 举报
gdb常用命令的用法.doc_第1页
第1页 / 共5页
gdb常用命令的用法.doc_第2页
第2页 / 共5页
gdb常用命令的用法.doc_第3页
第3页 / 共5页
gdb常用命令的用法.doc_第4页
第4页 / 共5页
gdb常用命令的用法.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、 今天花了几分钟来学习使用 gdb 调试程序,有过以前使用 IDE 调试程序的基础,仅仅只需要花几分钟就能够很快的学会使用 gdb 命令来调试程序了。这里结合实例来说明怎么使用 gdb 命令。首先写一个简单的程序,然后载对程序进行调试。用于调试的示例程序:示例代码 1 #include 2 3 int sum(int a, int b)4 5 int result;6 result = a + b;7 return result;8 9 http:/ 10 int main(int argc, char * argv)11 12 if (argc != 3)13 14 printf(“请输入

2、2 个数字参数,用空格分开“);15 return -1;16 17 int a = *argv1-0;18 int b = *argv2-0;19 int re = sum(a,b);20 printf(“%d + %d = %d“,a,b,re);21 return 0;22 这个程序很简单,只做了个加法运算。现在我们开始调试程序了。1.编译生成。 IDE 中分 Debug 和 Release 版本,那么在 Linux 我们一般编译这个文件使用:gcc -o testgdb testgdb.c 这就相当于 IDE 中的 Release 版本的编译生成工作了,那么怎么编译出Debug 版本呢

3、?这样,只需要添加 -g 命令就行:gcc -o testgdb testgdb.c -g2.进入调试状态,即进入 dgb。 进入 gdb 有两种方式,一种是直接输入命令 gdb。另一种是在 gdb 后面加上第一步编译好的文件名。进入到 gdb 调试状态后可以看到GNU gdb (GDB) 7.0.1-debianCopyright (C) 2009 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and

4、redistribute it.There is NO WARRANTY, to the extent permitted by law. Type “show copying“and “show warranty“ for details.This GDB was configured as “i486-linux-gnu“.For bug reporting instructions, please see:.(gdb)如果使用的是第一种方式,那么进入后得继续使用 file 命令来打开待调试的文件:(gdb)file testgdb会给出如下提示信息:Reading symbols fro

5、m /home/hanxi/cpp/testgdb/testgdb.done.3.调试程序。 常用命令:GDB 常用命令格式 http:/ 含义简写list List 开始,结束列出文件的代码清单 lprit Print 变量名 打印变量内容 pbreak Break 行号或函数名 设置断点 bcontinue Continue 开始,结束 继续运行 cinfo Info 变量名 列出信息 inext Next 下一行 nstep Step 进入函数(步入) Sdisplay Display 变量名 显示参数 fileFile 文件名(可以是绝对路径和相对路径)加载文件 run Run arg

6、s 运行程序 r接下来对一个一个命令进行测试。(注:(gdb)后面是输入的命令和参数)(1): (gdb)run 2 3 表示执行调试并传入两个参数 2,3运行结果:Starting program: /home/hanxi/cpp/testgdb/testgdb 2 32 + 3 = 5Program exited normally. 这样就出现了计算结果,因为没有设置断点,所以就会执行完程序。下面就是使用设置断点的命令了。(2): (gdb)b 4 表示在第 4 行设置断点,gdb 给出以下提示说明设置断点成功Breakpoint 1 at 0x80483ca: file testgdb.

7、c, line 4.设置完断点后,我们再来运行程序,执行 run 命令。出现下面的提示信息:Starting program: /home/hanxi/cpp/testgdb/testgdb 2 3Breakpoint 1, sum (a=2, b=3) at testgdb.c:66 result = a + b;这样它停留在第 6 行了。我们怎么来继续执行了,使用 c 命令,相当于VS 中的快捷键 F5(3): (gdb)c 继续执行程序,gdb 给出以下提示信息Continuing.2 + 3 = 5Program exited normally.这里又把程序执行完了,因为前面只设置一个

8、断点。那么我们怎么知道设置了多少个断点呢?使用 info break 命令就能满足(4): (gdb)info break gdb 给出了下面的提示信息: Num Type Disp Enb Address What2 breakpoint keep y 0x080483ca in sum at testgdb.c:4breakpoint already hit 1 time这信息提示我们,已经在第 4 行设置了一个断点,接下来就是去除断点的问题了,我们怎么把刚才的断点删除掉呢?在 VS6.0 是重复点工具栏的鼠型图标,在 VS2010 是点击每行的行首。在这里,我们也可以使用命令简单的删除或

9、者禁用断点。删除断点的命令是 delete b,禁用断点的命令是 disable b。推荐使用disable b 命令。恢复禁用的断点的命令是 enable b。这些命令后面可以带参数来说明第几个断点(是第几个不是第几行)。如:(5): (gdb)disable b 然后执行 run 命令后就不会断点了,接着使用 enable b 命令后再使用run 命令,这样又有了断点。有时候我们断点了就需要查看某个变量的值,那么使用什么命令查看变量的值和设置变量的值呢?答案是使用 display 或者是 p(6): (gdb)display result 这个效果在 IDE 中也有对应的:display

10、相当于添加监听变量,每一次run 后都会给出 result 的值。而 print 就对应着 IDE 中的鼠标停留时显示变量的值。(7): (gdb)s 这是步入命令 step,同样也有步过命令 next(简写为 n)。好吧,上面说的一些基本命令用来调试一些小代码差不多够用了,刚百度搜索了下,百度文库中有个不错的详细教程,如果有想深入的朋友可以进去 Linux 下GDB 教程看看。 如果平时使用的时候忘记了命令也可以使用 help 命令来查看帮助信息,会提示一些命令的用法,只可惜是英语的,一般也能将就的看懂,实在看不懂的可以把可能的命令测试就 ok 了。下面是输入 help 命令后的信息:Lis

11、t of classes of commands:aliases - Aliases of other commandsbreakpoints - Making program stop at certain pointsdata - Examining datafiles - Specifying and examining filesinternals - Maintenance commandsobscure - Obscure featuresrunning - Running the programstack - Examining the stackstatus - Status

12、inquiriessupport - Support facilitiestracepoints - Tracing of program execution without stopping the programuser-defined - User-defined commandsType “help“ followed by a class name for a list of commands in that class.Type “help all“ for the list of all commands.Type “help“ followed by command name for full documentation.Type “apropos word“ to search for commands related to “word“.Command name abbreviations are allowed if unambiguous.上面的提示是:比如说你想查看断点(breakpoints)的信息可以使用help breakpoints 命令。希望各位看了这文章的朋友们可以学到点东西!欢迎拍砖!涵曦一直在坚持学习,并快乐着。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报