gdb的man手册(翻译)

NAME

​ gdb - The GNU Debugger

SYNOPSIS

​ gdb [OPTIONS] [prog|prog procID|prog core]

DESCRIPTION

调试器(如GDB)的目的是让你看到另一个程序执行时“内部”发生了什么,或者另一个程序崩溃时正在做什么。

GDB可以做四种主要的事情(以及支持这些事情的其他事情)来帮助你当场捕获bug:

  • 启动程序,指定任何可能影响其行为的东西
  • 让程序在特定条件下停止
  • 检查程序停止时发生了什么
  • 修改程序中的一些东西,这样你就可以尝试纠正一个bug的影响,并继续了解另一个bug

你可以使用GDB来调试用C、c++、Fortran和Modula-2编写的程序。

GDB可以通过shell命令" gdb "调用。启动后,它会从终端读取命令,直到你用GDB命令"quit"或"exit"让它退出。你可以使用命令“help”从GDB本身获得在线帮助。

你可以不带任何参数或选项运行“gdb”;但最常见的启动GDB的方式是用一个或两个参数,指定一个可执行程序作为参数:

gdb program

你也可以指定一个可执行程序和一个核心文件:

gdb program core

相反,如果你想调试正在运行的进程,你可以指定进程ID作为第二个参数,或者使用选项“-p”:

gdb program 1234
gdb -p 1234

将GDB附加到进程1234。使用选项-p,可以省略程序文件名。

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

break [file:][function|line]

在函数或行(在文件中)处设置断点。

run [arglist]

启动程序(如果指定,使用arglist)。

bt  Backtrace

显示程序堆栈。

print expr

显示表达式的值。

c

继续运行程序(在停止后,例如在断点处)。

next

执行下一行程序(在停止后);单步执行代码行中的任何函数调用。

edit [file:]function

请查看程序当前停止的那一行。

list [file:]function

在程序当前停止位置附近输入程序的文本。

step

执行下一行程序(在停止后);进入该行中的任何函数调用。

help [name]

显示有关GDB命令名称的信息,或使用GDB的一般信息。

quit
exit

退出GDB。

有关GDB的详细信息,请参阅Richard M. Stallman和Roland H. Pesch合著的《使用GDB: GNU源代码级调试器指南》。与“info”程序中的“gdb”条目相同的文本可以在网上找到。

OPTIONS

除options之外的任何参数指定可执行文件和核心文件(或进程ID);也就是说,没有关联选项标志的第一个参数相当于——se选项;第二个参数(如果有的话)相当于-c选项(如果它是文件名称)。许多选项既有长形式也有缩写形式;两者都显示在这里。如果你把它们截断,也能识别出长格式,只要有足够多的选项,就不会有歧义。

缩略形式在这里用-表示,长形式用–表示,以反映它们在help中的显示方式。不过,GDB对大多数选项都遵循以下约定。

"--option=value"
"--option value"
"-option=value"
"-option value"
"--o=value"
"--o value"
"-o=value"
"-o value"

您提供的所有选项和命令行参数都按顺序处理。使用-x选项时,顺序会有所不同。

选项含义
–help,-h列出所有选项,并简要说明
–symbols=file,-s file从文件中读取符号表
–write允许写入可执行文件和核心文件
–exec=file,-e file使用file作为可执行文件,以便在适当的时候执行,并与核心转储一起检查纯数据
–se=file从文件中读取符号表并将其用作可执行文件
–core=file,-c file使用文件作为核心转储进行检查
–command=file,-x file从文件中执行GDB命令。
–eval-command=command,-ex command执行给定的GDB命令。
–init-eval-command=command,-iex加载次等文件前,请执行GDB命令。
–directory=directory,-d directory将directory添加到搜索源文件的路径中
–nhDo not execute commands from ~/.config/gdb/gdbinit, ~/.gdbinit, ~/.config/gdb/gdbearlyinit, or ~/.gdbearlyinit
–nx,-n不执行任何。gdbinit或。gdbearlyinit初始化文件中的命令
–quiet,–silent,-q“安静”。请勿打印介绍和版权信息。这些消息在批处理模式下也会被抑制。
–batch批处理模式运行。在处理所有使用 -x 指定的命令文件(以及 .gdbinit,如果未禁用的话)后,以状态 0 退出。如果在执行命令文件中的 GDB 命令时发生错误,则以非零状态退出。…
–batch-silent以批处理模式运行,就像批处理一样,但是完全静音。所有GDB输出都被抑制(stderr不受影响)。这比“沉默”要安静得多,对于互动会话来说毫无用处。…
–args prog [arglist]更改命令行解释,以便将该选项后面的参数作为参数传递给下一个选项。…
–pid=pid将GDB附加到一个已经运行的程序,使用PID PID。
–tui打开终端用户界面。
–readnow在第一次访问时从给定的symfile中读取所有符号。
–readnever不要读取符号文件。
–return-child-resultGDB的退出代码将与子进程的退出代码相同。
–configuration打印有关GDB配置的详细信息,然后退出。
–version打印版本信息,然后退出。
–cd=directory运行GDB时,使用directory作为工作目录,而不是当前目录。
–data-directory=directory,-D使用directory作为数据目录运行GDB。数据目录是GDB搜索辅助文件的地方。
–fullname,-fEmacs在将GDB作为子进程运行时设置此选项。它告诉GDB在每次显示堆栈帧时(包括每次程序停止时)以标准的、可识别的方式输出完整的文件名和行号。这种可识别的格式看起来像两个\032字符,后面是文件名、行号和字符位置,以冒号分隔,然后是换行符。Emacs - to - GDB接口程序使用两个\032字符作为信号来显示帧的源代码。
-b baudrate设置GDB用于远程调试的串行接口的线路速度(波特率或每秒比特数)。
-l timeout设置远程调试的超时时间(以秒为单位)。
–tty=device使用设备运行程序的标准输入和输出。
SEE ALSO

GDB的完整文档以Texinfo手册的形式维护。如果“info”和“gdb”程序以及gdb的Texinfo文档已正确安装在您的站点上,则命令

info gdb

应该能让你看到完整的手册。

使用GDB: GNU源代码级调试器指南,Richard M. Stallman和Roland H. Pesch, 1991年7月。

COPYRIGHT

版权所有Free Software Foundation, Inc.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值