软件调试的艺术 - (EPUB全文下载)
文件大小:4.18 mb。
文件格式:epub 格式。
书籍内容:
版权信息
书名:软件调试的艺术
作者:Norman Matloff, Peter Jay Salzman
译者:张云
ISBN:978-7-115-21396-9
本书由北京图灵文化发展有限公司发行数字版。版权所有,侵权必究。
您购买的图灵电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
目录
版 权 声 明
前 言
第1章 预备知识
1.1 本书使用的调试工具
1.2 编程语言
1.3 调试的原则
1.4 对比基于文本的调试工具与基于GUI的调试工具,两者之间的折中方案
1.5 主要调试器操作
1.6 联机帮助
1.7 初涉调试会话
1.8 启动文件的使用
第2章 停下来环顾程序
第3章 检查和设置变量
第4章 程序崩溃处理
第5章 多活动上下文中的调试
5.1 调试客户/服务器网络程序
5.2 调试多线程代码
5.3 调试并行应用程序
5.4 扩展示例
第6章 特殊主题
第7章 其他工具
7.1 充分利用文本编辑器
7.2 充分利用编译器
7.3 C语言中的错误报告
7.4 更好地使用strace和ltrace
7.5 静态代码检查器:lint与其衍生
7.6 调试动态分配的内存
第8章 对其他语言使用GDB/DDD/Eclipse
版 权 声 明
Copyright © 2008 by Norman Matloff and Peter Jay Salzman. Title of English-language original: The Art of Debugging with GDB, DDD, and Eclipse
, ISBN 978-1-59327-174-9, published by No Starch Press. Simplified Chinese-language edition copyright © 2009 by Posts & Telecom Press. All rights reserved.
本书中文简体字版由No Starch Press授权人民邮电出版社独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。
版权所有,侵权必究。
前 言
“嘿,还真不错呢!”我们的学生Andrew首次认真使用调试工具后惊叹道。Andrew三年前在大一上编程课时就学过了调试工具,不过那时他只是将调试工具当做应付期末考试的内容来打发的。现在他已经大四了,教授强烈要求他停止采用输出语句进行调试的方法,改为使用正式调试工具。让Andrew喜出望外的是,他发现使用恰当的工具可以大大缩短调试时间。
如今,在学生及已参加工作的程序员中,还有不少“Andrew”,但愿本书能帮助“Andrew们”发现调试工具的好处。但是,我们更希望本书能帮助那些已经使用了调试工具,但还无法确定在什么情况下该做什么事的程序员做出适当的判断。本书也适用于打算进一步学习调试工具及其幕后原理的人。
本书的编辑曾说过,很多调试知识以前都只是在圈子里口口相传,没有正式编著成书。本书将改变这一状况。本书回答了下列问题。
如何调试线程代码?
为什么有时候断点最终出现的位置与原来设置的位置略有偏差?
GDB的until
命令为什么有时会跳到意想不到的地方?
如何巧妙使用DDD和Eclipse?
在当今普遍使用GUI的时代,像GDB这样的基于文本的应用程序还有价值吗?
为什么当错误代码超出数组边界时不发生段错误?
为什么要将我们的一个示例数据结构命名为nsp
?(不好意思,这只是与我们的出版商No Starch Press私下开的一个玩笑。)
本书既没有美其名曰“用户手册”,也不是关于调试过程认知理论的抽象论文。本书有点介于这两者之间。一方面,确实提供了如何操作GDB、DDD和Eclipse中特定命令的信息;另一方面,讲解并频繁使用了关于调试过程的一些通用原则。
我们之所以选择GDB、DDD和Eclipse,是因为它们在Linux/开源社区中比较流行。本书的示例有点偏向于GDB,不仅仅因为GDB基于文本的性质使得显示在一个页面中更紧凑,而且正如上面的问题所暗示的,我们发现基于文本的命令在调试过程中仍然起着举足轻重的作用。
Eclipse的用途越来越广泛,其远不止仅作为我们这里的调试角色,还提供了各种有吸引力的调试工具。另一方面,DDD占用空间小,而且包括了Eclipse中不具备的某些强大功能。
第1章是概览。很多经验丰富的程序员可能想跳过这一章,但是我们强烈建议大家通读一遍,因为这一章列出了我们针对调试过程推荐的一些简单却有用的通用准则。
第2章着重介绍了调试必不可少的内容——断点,讨论了关于断点的所有细节,包括设置、删除和禁用断点,从一个断点移到另一个断点,查看关于断点的详细信息,等等。
到达断点后会出现什么情况呢?第3章回答了这一问题。我们这里采用的示例涉及遍历树的代码,重点是介绍当到达断点时如何方便地显示树中节点的内容。这里GDB相当出色,提供了一些非常灵活的功能,有助于在每次程序暂停时有效地显示感兴趣的信息。这一章还提供了一个特别优秀的用图形显示树和其他链接数据结构的DDD功能。
第4章包括了由于段错误而产生的致命运行时错误。我们首先介绍了崩溃时在底层发生了什么事,包括程序的内存分配以及硬件与操作系统的协同作用。对系统知识比较了解的读者可能会跳过这一章,但是我们相信,其他很多读者会得益于这一章介绍的基础知识。然后介绍了核心文件,包括如何创建核心文件,如何使用它们来完成“事后反思”。最后介绍了关于调试会话的一个扩展示例,其中有几个程序错误产生了段错误。
第5章不但介绍并行编程,而且包括网络代码。客户/服务器网络编程可算作并行处理,甚至我们的工具也是并行使用的。比如,在两个窗口中使用GDB,一个窗口用于客户机,另一个窗 ............
书籍插图:
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 软件调试的艺术 - (EPUB全文下载)