手把手教你玩转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本身设置相关的一些信息

你可能感兴趣的:(程序调试)