gdb用户手册.doc
《gdb用户手册.doc》由会员分享,可在线阅读,更多相关《gdb用户手册.doc(46页珍藏版)》请在三一办公上搜索。
1、GDB用户手册目录目录1摘要2自由软件2自由软件急需自由文档2GDB的贡献者们41一个简单的GDB会话82征服GDB的进与出132.1调用GDB132.1.1 选择文件142.1.2 选择模式162.1.3 启动期间,GDB做了什么192.2 退出GDB202.3 Shell命令212.4 Loging输出213GDB命令223.1命令语法223.2命令完成233.3获得帮助254在GDB下运行程序294.1 适合调试的编译294.2 启动程序304.3 程序的参数324.4 程序的环境324.5 程序的工作目录344.6 程序的输入输出354.7 调试某个已运行的进程364.8 杀掉子进程3
2、74.9 多线程程序的调试374.10 多进程程序的调试405.0停止与继续42摘要象GDB这样的调试程序,目的就是让你可以查看其它程序的内部运行过程,或者是在它崩溃的那一时刻它在做什么。GDB能做4件事(这些还需附加其他的一些事),帮助你捕获在场的错误:启动程序,设定任何可以影响它行为的东西。在特定的条件下使程序停止。当程序停止时,分析发生了什么。改变程序里的一些东西,进行一个由于bug所导致的结果的矫正性试验,同时继续了解另外一个bug。可以使用GDB调试用C和C+编写的程序,更多信息参见支持的语言,及C与C+。部分支持Modula-2,Modula-2的更多信息参见Modula-2。在调
3、试使用sets、subranges、file variables或嵌套函数的Pascal程序时,目前不能工作。GDB不支持entering expressions、printing values或者类似特性的Pascal语法。GDB可以调试Fortran写的程序,尽管那必然会涉及到带有下划线后缀的一些变量。GDB可以调试Objective-C写的程序,既可以使用Apple/NeXT运行时库,也可以使用GNU Objective-C运行时库。自由软件GDB是自由软件,受GNU公共许可证(GPL)保护。GPL给予了你自由复制或改编程序的许可就是说获得拷贝的人也就获得了自由修改它的权利(这意味着他们
4、必须有权访问源代码),而且可以自由的发布更多的拷贝。大部分软件公司所使用的版权限制了你的自由。自由软件基金会利用GLP保护了这些自由。基本上来说,公共许可证是一个说明你拥有这些自由的许可证,而且你不能把这些自由从任何人那里占为己有。自由软件急需自由文档当今的自由软件社区所存在的最大缺憾不在于软件而在于没有我们可以随同自由软件包含在一起的好文档。好多我们十分重要的程序没有一同提供自由的参考指南和介绍性文本。对任何一个软件包来说,文档是最基本的部分。当一个重要的自由软件包没有与一个自由手册或指南一同提供时,那就是一个极大的缺憾。如今,我们拥有太多这样的缺憾了!拿Perl来说,人们日常所使用的指导手
5、册就不是免费的。为什么会这样呢?因为这些手册的作者们在发表它们的时候伴有很多限制项目不能复制、不能修改、不能得到源文件把它们从自由软件世界中驱逐出去了。这类的事情已经不只发生过一次了,而且今后还会陆续发生。我们经常听到某位热心的GNU用户说他正在编写的一个手册,他打算把它捐献给社区,可没想到他签署了出版合同而使这个手册不自由了,所有的期望全都破灭。自由文档,就像自由软件一样,是自由的,不需要付费的东西。非自由手册的问题不在于发行商为印刷拷贝所要承担的费用只要它本身很好就行(自由软件基金会也出售印刷拷贝),而在于这个问题会约束手册的利用。自由手册可以以源代码的方式获得,允许复制与修改。非自由手册
6、是不允许这么做的。自由文档自由度的标准,一般来说与自由软件差不多。再发布(包括很多常规的商业再发布)必须被允许,不管是以在线形式还以书面形式,以便手册可以伴随着程序的每一份拷贝。允许有关技术性方面的内容的更正也是至关重要的。当人们更改软件,添加或改变其某些特性时,如果他们负责任的话,也将会修改相应的手册因而,他们能够为修改过的程序提供准确而清晰的文档。某个手册的页数你是无法决定的,但是为某个程序的变更版本写一份全新的手册,对于我们的社区来说,那真是没有必要。在改进过程中所运用的某些限制是合理的。例如,要求保持原作者的版权通告、发布条款、以及作者名单,是没有问题的。在修正版本中包含是他们更正的通
7、告也是没有问题的。只要论述的是非技术性的话题(就像这一章),可以接受连续完整的章节不可删除或被更改。能够接受这些限制,是因为它们不会妨碍社区对手册的正常使用。无论如何,必须允许对手册中所有关技术性方面的内容进行修改,然后通过所有正常的通道,利用所有常规的媒质,发布这个结果。否则,这些限制就妨碍了对手册的使用,那么它就是非自由的了,我们就得需要一个新的手册来代替它了。请散布有关这一论点的言辞。我们的社区仍然在遗失好多手册,这些手册都在成为私有出版物。如果我们趁早散布自由软件急需自由参考手册和指南这样的言辞的话,也许下一个投稿人就会意识到,只有少数的手册投稿给了自由软件社区。如果你正在撰写文档,请
8、坚持在GNU的自由文档许可证或其他的自由许可证下出版它。别忘了,这个决策是需要争得你的赞同的你不用理会出版社的决策。只要你坚持,某些出版社会使用自由许可证的,但是他们不能奢求有买卖的特权;那需要由你自己来发行,并且坚定地说:这就是你想要的。如果这个出版社拒绝了你的生意,那就再换一家。如果你不能确定某个被提议的许可证是自由的,就写信给licensinggnu.org。你可以使用购买的方式来鼓励商业出版社出售更多的免费的,非赢利版权的手册与指南,尤其是购买那些来自于出版社的拷贝,付给他们撰写或作重大改进的费用。同时,尽量完全避免购买非自由的文档。在购买之前,先查看一下发布条款,不管谁要做你的生意都
9、必须尊重你的自由。查看书的历史,设法奖励支付了作者们工资的那些出版社。自由软件基金会在http:/www.fsf.org/doc/other-free-books.html维护了一个已经由其他一些出版社出版了的文档的列表。GDB的贡献者们Richard Stallman是GDB的原作者,也是其他好多GNU程序的原作者。好多人已经对它的开发作了贡献。谨以此节来表彰那些主要的贡献者们。自由软件的一个优点就是每个人都无偿的为它作贡献。遗憾的是,我们无法逐一向他们表示感谢。在GDB的发布中,有一个“ChangeLog”文件,做了极为详尽的说明。2.0版本以前的大量变化已湮灭在时间的迷雾中。恳请:极力欢
10、迎对本节的补充。如果您或您的朋友(或者是敌人,为了公平),不公平地在这个列表中被遗漏了,我们愿意加入您的名字。为了使那些可能被遗忘的人们的工作不至于徒劳无功,在此特别感谢那些带领GDB走过各个重要发布版的那些人:Andrew Cagney(发布了6.1, 6.0, 5.3, 5.2, 5.1 和5.0版);Jim Blandy(发布了4.18版);Jason Molenda(发布了4.17版);Stan Shebs(发布了4.14版);Fred Fish (发布了 4.16,4.15,4.13,4.12,4.11,4.10和4.9);Stu Grossman 和John Gilmore (发布
11、了4.8,4.7,4.6,4.5和4.4版);John Gilmore(发布了4.3,4.2,4.1,4.0和3.9版);Jim Kingdon(发布了3.5,3.4和3.3版);以及Randy Smith(发布了3.2,3.1和3.0)。Richard Stallman,在Peter TerMaat、Chris Hanson、和Richard Mlynarik的多次协助下,完成到了2.8版的发布。Michael Tiemann是GDB中大部分GNU C+支持的作者,得益于来自Per Bothner 和Daniel Berlin的其他的一些重要贡献。James Clark编写了GNU C+反签
12、名编码器(demangler)。早期在C+方面的工作是由Peter TerMaat做的(他也做了大量的到3.0发布版的常规更新工作)。GDB是使用BFD子程序库来分析多种目标文件格式的,BFD是David V. Henkel-Wallace、Rich Pixley、Steve Chamberlain和John Gilmore的一个合作项目。David Johnson编写了最初的COFF支持。Pace Willison做了最初的压缩的COFF支持。哈里斯计算机系统(Harris Computer Systems)的Brent Benson贡献了DWARF 2的支持。Adam de Boor 和B
13、radley Davis贡献了ISI Optimum V的支持。Per Bothner、Noboyuki Hikichi和Alessandro Forin 贡献了MIPS的支持。Jean-Daniel Fekete贡献了Sun 386i的支持。Chris Hanson改良了HP9000的支持。Noboyuki Hikichi和Tomoyuki Hasei贡献了Sony/News OS 3的支持。David Johnson贡献了Encore Umax的支持。Jyrki Kuoppala贡献了Altos 3068的支持。Jeff Law贡献了HP PA和SOM的支持。Keith Packard贡献
14、了NS32k的支持。Doug Rabson贡献了Acorn Risc Machine的支持。Bob Rusk贡献了Harris Nighthawk CX-UX的支持。Chris Smith贡献了Convex的支持(还有Fortran的调试)。Jonathan Stone贡献了Pyramid的支持。Michael Tiemann贡献了SPARC的支持。Tim Tucker贡献了对Gould NP1和Gould Powernode的支持。Pace Willison贡献了Intel 386的支持。Jay Vosburgh贡献了Symmetry的支持。Marko Mlinar贡献了OpenRISC 1
15、000的支持。Andreas Schwab贡献了M68k GNU/Linux的支持。Rich Schaefer 和Peter Schauer为支持SunOS的共享库提供了帮助。Jay Fenlason和Roland McGrath保证了GDB和GAS适用于若干机器指令集。Patrick Duval、Ted Goldstein、Vikram Koka和Glenn Engel帮助开发了远程调试。Intel 公司、风河系统(Wind River Systems)、AMD、以及ARM 分别贡献了i960、VxWorks、A29K UDI和RDI targets的远程调试模块。Brian Fox,rea
16、dline库的作者,正在提供命令行编辑与命令历史功能。SUNY Buffalo的Andrew Beers编写了语言切换代码、Modula-2的支持,并且贡献了此手册的语言一章。Fred Fish做了支持Unix System Vr4的大部分编写工作。他也增强了command-completion的支持,使其覆盖到了C+的过载符号。Hitachi America (现在是Renesas America), Ltd。负责了对H8/300、H8/500和Super-H处理器的支持。NEC负责了对v850、Vr4xxx和Vr5xxx处理器的支持。Mitsubishi(现在是Renesas)负责了对D1
17、0V、D30V和M32R/D处理器的支持。Toshiba负责了对TX39 Mips处理器的支持。Matsushita负责了对MN10200和MN10300处理器的支持。Fujitsu负责了对SPARClite和FR30处理器的支持。Kung Hsu、Jeff Law和Rick Sladkey添加了对硬件监视点(hardware watchpoints)的支持。Michael Snyder添加了对跟踪点(tracepoints)的支持。Stu Grossman编写了gdbserver。Jim Kingdon、Peter Schauer、Ian Taylor、及Stu Grossman,修复了几乎
18、数不清的bug,并且对整个GDB做了清理。惠普公司(Hewlett-Packard Company)的一些人贡献了对PA-RISC 2.0体系、HP-UX 10.20、10.30和11.0 (窄模式)、HP的内核执行线程、HP的aC+编译器、以及文本用户界面(旧称终端用户界面)的支持。他们是:Ben Krepp、Richard Title、John Bishop、Susan Macchia、 Kathy Mann、Satish Pai、India Paul、Steve Rehrauer和Elena Zannoni。Kim Haase提供了此手册中的HP-specific信息。DJ Delori
19、e为DJGPP项目,把GDB移植到了MS-DOS上。Robert Hoehne对DJGPP的移植作了重大的贡献。Cygnus Solutions已负责起GDB的维护,自1991年以来已做了大量的开发工作。Cygnus为GDB做全职工作的工程师有:Mark Alexander、Jim Blandy、 Per Bothner、Kevin Buettner、 Edith Epstein、Chris Faylor、Fred Fish、Martin Hunt、Jim Ingham、John Gilmore、Stu Grossman、 Kung Hsu、Jim Kingdon、John Metzler、F
20、ernando Nasser、Geoffrey Noer、Dawn Perchik、Rich Pixley、Zdenek Radouch、Keith Seitz、Stan Shebs、David Taylor和Elena Zannoni. 另外还有: Dave Brolley、Ian Carmichael、Steve Chamberlain、Nick Clifton、JT Conklin、Stan Cox、DJ Delorie、Ulrich Drepper、Frank Eigler、Doug Evans、Sean Fagan、David Henkel-Wallace、Richard Hende
21、rson、Jeff Holcomb、Jeff Law、Jim Lemke、Tom Lord、Bob Manson、Michael Meissner、Jason Merrill、Catherine Moore、Drew Moseley、Ken Raeburn、Gavin Romig-Koch、Rob Savoye、Jamie Smith、Mike Stump、Ian Taylor、Angela Thomas、Michael Tiemann、Tom Tromey、Ron Unrau、Jim Wilson和David Zuhn,他们做了大大小小不同的贡献。Andrew Cagney、Fernando
22、 Nasser和 Elena Zannoni,他们在Cygnus Solutions工作时,实现了最初GDB/MI接口。Jim Blandy添加了预处理宏的支持,那时他在Red Hat工作。Andrew Cagney设计了GDB的结构向量。包括Andrew Cagney、Stephane Carrez、Randolph Chung、Nick Duffek、Richard Henderson、Mark Kettenis、Grace Sainsbury、Kei Sakamoto、Yoshinori Sato、Michael Snyder、Andreas Schwab、Jason Thorpe、Co
23、rinna Vinschen、Ulrich Weigand和Elena Zannoni的很多人,为把旧有的体系结构移植到这个新的框架上提供了帮助。请发送FSF和GNU的疑问和问题到gnugnu.org。这也有一些其他的方式联系FSF。这些页面是由GDB的开发者们维护的。Copyright Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.。只要保留这些信息,以任何媒质,一字不差地复制与分者这一整份文章是允许的。本文是由GDB的管理员于2005年7月16日,使用text2html生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- gdb 用户手册
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2388816.html