免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1165 | 回复: 0
打印 上一主题 下一主题

linux 调试工具 —— gdb man [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-29 15:42 |只看该作者 |倒序浏览

gdb(1)                      GNU 工具                          gdb(1)

名称
        gdb - GNU 调试器

提要
        gdb   [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e prog] [-se prog]
[-c core] [-x cmds] [-d dir] [prog [core|procID] ]

描述
             调试器(如GDB)的目的是允许你在程序运行时进入到某个程序内部去看看该程序在做什么,或者在该程序崩溃时它在做什么。

        GDB主要可以做4大类事(加上一些其他的辅助工作),以帮助用户在程序运行过程中发现bug。
l         启动您的程序,并列出可能会影响它运行的一些信息
l         使您的程序在特定条件下停止下来
l         当程序停下来的时候,检查发生了什么
l         对程序做出相应的调整,这样您就能尝试纠正一个错误并继续发现其它错误

    您能使用GDB调试用C、C++、Modula-2写的程序。等GNU Fortran编译器准备好过后,GDB将提供对Fortran的支持
    GDB通过在命令行方式下输入gdb来执行。启动过后,GDB会从终端读取命令,直到您输入GDB命令quit使GDB退出。您能通过GDB命令help获取在线帮助。

    您能以无参数无选项的形式运行GDB,不过通常的情况是以一到两个参数运行GDB,以待调试的可执行程序名为参数
                gdb 程序名

        您能用两个参数来运行GDB,可执行程序名与core文件(译注:不知道怎么翻译好,就不翻译了^^)。
                gdb 程序名 core

       您可以以进程ID作为第二个参数,以调式一个正在运行的进程
                 gdb 程序名 1234
       将会把gdb附在进程1234之上(除非您正好有个文件叫1234,gdb总是先查找core文件)

       下面是一些最常用的GDB命令

       break [file:]function       在(file文件的)function函数中设置一个断点
       run [arglist]              运行您的程序 (如果指定了arglist,则将arglist作为参数运行程序).
       bt                      Backtrace: 显示程序堆栈信息
       print expr                打印表达式的值
       c                       继续运行您的程序 (在停止之后,比如在一个断点之后).
       next                    单步执行 (在停止之后); 跳过函数调用
       step                    单步执行 (在停止之后); 进入函数调用.
       help [name]              显示GDB命令的信息,或者显示如何使用GDB的总体信息
       quit                     退出gdb.

          要得到所有使用GDB的资料,请参考Using GDB: A Guide to the GNU Source-Level  Debugger,  by Richard M. Stallman and Roland  H. Pesch.  当用info查看的时候,也能看到相同的文章

选项
    任何参数而非选项指明了一个可执行文件及core 文件(或者进程ID);所遇到的第一个未关联选项标志的参数与 '-se' 选项等价,第二个,如果存在,且是一个文件的名字,则等价与 '-c' 选项。许多选项都有一个长格式与短格式;都会在这里表示出来。如果你把一个长格式截短,只要不引起歧义,那么它还是可以被识别。(如果你愿意,你可以使用 '+' 而非 '-' 标记选项参数,不过我们在例子中仍然遵从通常的惯例)

       -help
       -h       列出所有选项,并附简要说明。   

       -symbols=file
       -s file    读出文件(file)中的符号表。

       -write    开通(enable)往可执行文件和核心文件写的权限。

       -exec=file
       -e file    在适当时候把File作为可执行的文件执行,来检测与core dump结合的数据。

       -se File  从File读取符号表并把它作为可执行文件。

       -core File
       -c File   把File作为core dump来执行。

       -command=File
       -x File    从File中执行GDB命令。
      
-directory=Directory
       -d Directory        把Dicrctory加入源文件搜索的路径中。
      
-nx
-n    不从任何.gdbinit初始化文件中执行命令。通常情况下,这些文件中的命令是在所有命令选项和参数处理完后才执行。

       -quiet
       -q    "Quiet".不输入介绍和版权信息。这些信息输出在batch模式下也被关闭。

       -batch   运行batch模式。在处理完所有用'-x'选项指定的命令文件(还有'.gdbi-nit',如果没禁用)后退出,并返回状态码0.如果在命令文件中的命令被执行时发生错误,则退出,并返回状态码非0.batch模式对于运行GDB作为过滤器也许很有用,比如要从另一台电脑上下载并运行一个程序;为了让这些更有用,当在batch模式下运行时,消息:
                         Program exited normally.
              (不论什么时候,一个程序在GDB控制下终止运行,这条消息都会正常发出.),将不会发出.
       -cd=Directory
              运行GDB,使用Directory作为它的工作目录,取代当前工作目录.

       -fullname
-f    当Emacs让GDB作为一个子进程运行时,设置这个选项.它告诉GDB每当一个堆栈结构(栈帧)显示出来(包括每次程序停止)就用标准的,认同的方式输出文件全名和行号.这里,认同的格式看起来像两个' 32'字符,紧跟文件名,行号和字符位置(由冒号,换行符分隔).Emacs同GDB的接口程序使用这两个'32'字符作为一个符号为框架来显示源代码.

       -b Bps          设置行速(波特率或bits/s).在远程调试中GDB在任何串行接口中使用的行速.
       -tty=Device      使用Device作为你程序运行的标准输入输出.

SEE ALSO
   `gdb' entry in info; Using GDB: A Guide to the GNU Source-Level Debug-ger, Richard M. Stallman and Roland H. Pesch, July 1991.

COPYING
       Copyright (c) 1991 Free Software Foundation, Inc.

       Permission  is  granted  to make and distribute verbatim copies of this
       manual provided the copyright notice and  this  permission  notice  are
       preserved on all copies.

       Permission  is granted to copy and distribute modified versions of this
       manual under the conditions for verbatim  copying,  provided  that  the
       entire  resulting derived work is distributed under the terms of a per-
       mission notice identical to this one.

       Permission is granted to copy and distribute translations of this  man-
       ual into another language, under the above conditions for modified ver-
       sions, except that this permission notice may be included  in  transla-
       tions approved by the Free Software Foundation instead of in the origi-
       nal English.


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/18381/showart_162019.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP