首页 > 程序人生 > 手把手教你玩转GDB(一)——牛刀小试:启动GDB开始调试

手把手教你玩转GDB(一)——牛刀小试:启动GDB开始调试

写在最前面: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本身设置相关的一些信息

  1. 2010年7月25日19:12 | #1

    沙发,呵呵

  2. 2010年8月13日01:37 | #2

    写的再详细点就好了,总之是篇不错的文章

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
您必须在 登录 后才能发布评论.