📄 gdb-6-1.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0059)http://www.linuxforum.net/books/LinuxFAQ/program-gdb-7.html -->
<HTML><HEAD><TITLE>BBS水木清华站∶精华区</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
<CENTER>
<H1>BBS水木清华站∶精华区</H1></CENTER>发信人: TJB (老六), 信区: Linux <BR>标 题: GDB (6)
Part One <BR>发信站: BBS 水木调试站 (Wed Jun 3 08:33:46 1998)
<P>发信人: SYSOP (老六), 信区: Linux <BR>标 题: GDB <BR>发信站: 侠剑情缘 (Tue
Jun 2 16:08:28 1998), 转信
<P>信件提要:gdb(六) <BR>原发信站:中国科大BBS站(Fri, 03 Apr 1998 01:27:22)
<P>东西太多了,翻起来好费时间,只好慢慢的贴了。//shy <BR>如果有人愿意一起做这件事的话请回信到我信箱。
<P>得到帮助 <BR>============ <BR> 你可以使用help命令来得到gdb的在线帮助。
<P>`help' <BR>`h' <BR>
你可以使用help或h后面不加任何参数来得到一个gdb命令类的列表。
<P> (gdb) help
<BR> List of classes of
commands:
<P> running -- Running the
program <BR> stack --
Examining the stack <BR>
data -- Examining data
<BR> breakpoints -- Making
program stop at certain points
<BR> files -- Specifying
and examining files <BR>
status -- Status inquiries
<BR> support -- Support
facilities <BR>
user-defined -- User-defined commands
<BR> aliases -- Aliases of
other commands <BR>
obscure -- Obscure features
<P> Type "help" followed
by a class name for a list of
<BR> commands in that
class. <BR> Type "help"
followed by command name for full
<BR> documentation.
<BR> Command name
abbreviations are allowed if unambiguous.
<BR> (gdb)
<P>`help CLASS' <BR> 使用上面列出的help
class作为help或h的参量,你可以得到单一的命令列表。 <BR> 例如显示一个'status'类的列表。
<P> (gdb) help status
<BR> Status inquiries.
<P> List of commands:
<P> show -- Generic
command for showing things set
<BR> with "set"
<BR> info -- Generic
command for printing status
<P> Type "help" followed
by command name for full
<BR> documentation.
<BR> Command name
abbreviations are allowed if unambiguous.
<BR> (gdb)
<P>`help COMMAND' <BR> 详细列出单个命令的资料。
<P>`complete ARGS' <BR> 列出所有以ARGS开头的命令。例如:
<P> complete i
<P> results in:
<P> info
<BR> inspect
<BR> ignore
<P> This is intended for use by GNU Emacs.
<P> 除了使用'help'你还可以使用gdb的命令'info'和'show'来查询你程序的
<BR>状态,每个命令可以查询一系列的状态。这些命令以恰当的方式显示所有的 <BR>子命令。
<P>`info' <BR> 此命令(可以缩写为'i')用来显示你程序的状态。比如,你可以使用info
<BR>args 列出你程序所接受的命令行参数。使用info registers列出寄存器的状态。 <BR>或用info
breakpoint列出在程序中设的断点。要获得详细的关于info的信息打 <BR>help info. <BR>`set'
<BR> 这个命令用来为你的程序设置一个运行环境(使用一个表达式)。比如你 <BR>可以用set prompt
$来把gdb的提示符设为$.
<P>`show' <BR>
与'info'相反,'show'命令用来显示gdb自身的状态。你使用'set'命令来 <BR>可以改变绝大多数由'show'显示的信息。比如使用show
radix命令来显示基数。 <BR>用不带任何参变量的'set'命令你可以显示所有你可以设置的变量的值。 <BR>有三个变量是不可以用'set'命令来设置的。
<BR>`show version' <BR>
显示gdb的版本号。如果你发现gdb有bug的话你应该在bug-reports里加 <BR>入gdb的版本号。
<P>`show copying' <BR>显示版权信息。
<P>`show warranty' <BR>显示担保信息。 <BR>在gdb下运行你的程序 <BR>**************************
<BR> 当你在gdb下运行程序时,你必须先为gdb准备好带有调试信息的可执行文档。
<BR>还可以在gdb中为你的程序设置参变量,重定向你程序的输入/输出,设置环境变 <BR>量,调试一个已经执行的程序或kill掉一个子进程。
<BR> 这里许多内容在早先的例子中都已经用到过,可以参见gdb(二)。 <BR>目录:
<P>*
编译::
为调试编译带调试信息的代码 <BR>*
运行::
运行你的程序 <BR>*
参变量::
为你的程序设置参变量 <BR>*
运行环境::
为你的程序设置运行时环境 <BR>*
设置工作目录::
在gdb中设置程序的工作目录。 <BR>*
输入/输出::
设定你程序的输入和输出 <BR>*
连接::
调试一个已经运行的程序 <BR>*
结束子进程::
Kill子进程 <BR>*
进程信息::
附加的进程信息 <BR>*
线程::
调试带多线程的程序 <BR>*
多进程::
调试带多进程的程序 <BR>为调试准备带调试信息的代码 <BR>=========================== <BR>
为了高效的调试一个程序,你需要使用编译器来产生附带调试信息的可执行代码 <BR>这些调试信息存储在目标文件中;描述了变量数据类型和函数声明,在原文件代码行
<BR>和执行代码之间建立联系。 <BR> 为产生调试信息,当你使用编译器时指定'-g'选项,就可以为你的程序产生带有
<BR>调试信息的可执行代码。 <BR> 有些c编译器不支持'-g'选项和'-O'选项,那你就有麻烦了,或者有别的方法产生
<BR>带调试信息的可执行代码,要不就没办法了。 <BR>
gcc,GNU的c语言编译器支持'-g'和'-O'选项。这样你就可以产生带调试信息的且 <BR>优化过的可执行代码. <BR>
当你使用gdb来调试一个使用'-g','-O'选项产生的程序时,千万记住编译器为了优
<BR>化你的程序重新安排了你的程序。不要为运行次序与你原来设想的不同,最简单的例子
<BR>就是当你定义了一个变量但从未使用过它时,gdb中是看不到这个变量的--因为它已经 <BR>被优化掉了。 <BR>
所以有时你不要使用'-O'选项,如果当你不用优化时产生的程序是正确的,而优化
<BR>过后变的不正确了,那么这是编译器的bug你可以向开发者提供bug-reports(包括出错 <BR>的例子)。 <BR>
早期的GUN C语言编译器允许'-gg'选项,也用来产生调试信息,gdb不再支持这种格 <BR>式的调试信息,如果你的编译器支持'-gg'选项,请不要使用它。
<P>-- <BR>※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn] <BR> <BR> <BR>
<P>-- <BR>☆ 来源:.侠剑情缘 tjb.ml.org.[FROM: <A
href="mailto:root@tjb.ml.org]">root@tjb.ml.org]</A>
<P>-- <BR>※ 来源:·BBS 水木调试站 Leeward.lib.tsinghua.edu.cn·[FROM: 202.200.37.100]
<CENTER>
<H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -