Chinaunix首页 | 论坛 | 博客
  • 博客访问: 436358
  • 博文数量: 96
  • 博客积分: 4130
  • 博客等级: 上校
  • 技术积分: 1149
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-11 12:32
文章分类

全部博文(96)

文章存档

2011年(19)

2010年(75)

2009年(1)

2008年(1)

我的朋友

分类:

2010-11-09 16:42:27

写在最前面:GDB是unix相关操作系统中C/C++程序开发必不可少的工具,它的功能之强大,是其它调试器所不能匹敌的。但是,现实的工作中,有很多开发者因为GDB本身入门门槛比较高,而被拒之门,与如此强大的失之交臂。笔者在近两年的C/C++开发工作中,对GDB本身的有一点研究,在这里总结出一系列《手把手教你玩转GDB》的文章,一方面权当是对自己经验的一个总结,一方面也是真的想能够对刚接触GDB的开发者朋友带去一些帮助,让更多的人来使用如此强大的工具。今天推出第一篇:

第一部分 牛刀小试:启动GDB开始调试

1. 启动GDB开始调试:

(1)gdb program ///最常用的用gdb启动程序,开始调试的方式
(2)gdb program core ///用gdb查看core dump文件,跟踪程序core的原因
(3)gdb program pid ///用gdb调试已经开始运行的程序,指定pid即可

2. 应用程序带命令行参数的情况,可以通过下面两种方法启动:

(1)启动GDB的时候,加上–args选项,然后把应用程序和其命令行参数带在后面,具体格式为:gdb –args program args
(2)先按1中讲的方法启动GDB, 然后再执行run命令的时候,后面加上参数

3. 退出GDB:

(1)End-of-File(Ctrl+d)
(2)quit或者q

4. 在GDB调试程序的时候执行shell命令:

(1)shell command args(也可以先执行shell命令,GDB会退出到当前shell, 执行完command后,然后在shell中执行exit命令,便可回到GDB)
(2)make make-args(等同于shell make make-args

5. 在GDB中获取帮助:

(1)在GDB中执行help命令,可以得到如图1所示的帮助信息:

图1 GDB帮助菜单
由图1可以看出,GDB中的命令可以分为八类:别名(aliases)、断点(breakpoints)、数据(data)、文件(files)、内部(internals)、隐含(obscure)、运行(running)、栈(stack)、状态(status)、支持(support)、跟踪点(tracepoints)和用户自定义(user-defined)。
(2)help class-name:查看该类型的命令的详细帮助说明
(3)help all:列出所有命令的详细说明
(4)help command:列出命令command的详细说明
(5)apropos word:列出与word这个词相关的命令的详细说明
(6)complete args:列出所有以args为前辍的命令

6. info和show:

(1)info:用来获取和被调试的应用程序相关的信息
(2)show:用来获取GDB本身设置相关的一些信息

from:?p=1327

阅读(2016) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~