
书籍:Windows程序调试
文章平均质量分 82
铁文
这个作者很懒,什么都没留下…
展开
-
Windows程序调试----简介
简介 错误是无处不在的。程序产生错误的原闵很多,也有很多防止、检侧和消除错误的策略、工具和技术。随着软件开发技术的提高,软件的复杂程度也提高了,调试工怍更难于进行。程序员们为开发出完美的无错误软件而不懈地努力。伹这个目标在现实中是很难实现的。 复杂性是开发无错误软件的主要障碍。即使是开发最普通的程序,不经过细致的测试和调试,也不能断定其中不含任何错误。复杂庞大的程序是错误产生率转载 2013-03-07 17:21:13 · 1633 阅读 · 0 评论 -
Windows程序调试----第三部分 调试技术----第12章 非常规策略
第12章非常规策略 当你在调试中陷入困境时,有时候必须采取一些非常规的手段。本章将要介绍一些调试技术,当你正常调试过程不能成功解决问题时可以尝试使用这些技术。 首先,我想给我所谓的“非常规策略”(desperate measures)下—个准确的定义是很重要的事。我们先来说说非常规策略不是什么:非常规策略不等于最后的方法。这些技术不是当你放弃了所有的希望、不能想出其他任何办法的转载 2013-04-25 13:09:24 · 1480 阅读 · 0 评论 -
Windows程序调试----第三部分 调试技术----第11章 COM调试
第11章 COM调试 调试COM代码对很多开发人员来说是很件令人沮丧的事情,特别是如果你对Windows平台,尤其是COM编程不熟悉的话。成功地解决一个错误常常需要涉及到很多领域的知识和技巧,包括: •对操作系统构造的深刻理解,例如进程、线程和DLL等。 •对与COM编程有关的规则的深刻理解,例如引用计数,内存分配和线程。 •对与网络和安全有关的细节及其含义转载 2013-04-25 10:15:22 · 4055 阅读 · 0 评论 -
Windows程序调试----第三部分 调试技术----第8章基本调试技术
第三部分调试技术第8章基本调试技术 本章回答了很多Windows下调试程序的常见问题,主要是基本的调试技术。所以它看起来可能有点像Windows调试常见问题解答,其中很多是我在调试新闻组里见到的问题。8.1普通调试技术我应该采取什么步骤使得我调试代码的能力最大? 请釆取以下步骤: •重定位你的程序的可执行代码以防止虚拟地址空间冲突。关于虚拟地址空间冲突和重转载 2013-04-15 13:03:50 · 3030 阅读 · 0 评论 -
Windows程序调试----第三部分 调试技术----第10章 调试多线程程序
第10章调试多线程程序 线程。当一个可怜的灵魂不得不在多线程环境中重现并诊断一个问题时,一个像线程这样优雅的结构所带来的痛苦之大是令人惊奇的。无论设计多么简单而直接,在程序中多引入仅仅一个线程都会带来令人吃惊的调试困难。所以,不管什么时候,做出在程序中使用多线程的决定都必须慎之又慎。 如果你没有计算多线程将给程序的正确性带来的影响和调试时将耗费的额外时问,最好不要莽撞地引入多线转载 2013-04-23 14:25:58 · 6951 阅读 · 0 评论 -
Windows程序调试----第二部分 调试工具----第7章 使用Visual C++调试器调试
本书由铁文手打整理,仅为方便个人查阅摘录如喜欢本书,请购买正版 第7章使用Visual C++调试器调试 如果要寻找并消除错误,Visual C++调试器将是你最好的朋友。它有好几个著名的特性使得它很高效,也很好用,下面是我喜爱它的一些原因: •Visual C++调试器完全嵌入到了Visual C++开发环境,允许用户直接从源代码窗口使用调试器进行设置断点和转载 2013-04-11 16:21:44 · 5810 阅读 · 1 评论 -
Windows程序调试----第二部分 调试工具----第6章 在Windows中调试
本书由铁文手打整理,仅为方便个人查阅摘录如喜欢本书,请购买正版 第二部分调试工具第6章在Windows中调试 也许你以前还没有遇到过下面所述的事情,但迟早有一天它会发生在你身上。你把你的程序给某个重要的人物使用,比如你最重要的客户或者是你公司的老板,不幸的是,程序在他们那里运行时崩溃了。他们记不起他们执行了些什么操作,但有一点是肯定的,这个错误很严重,而且,程序的崩溃导致转载 2013-04-09 16:59:27 · 3768 阅读 · 0 评论 -
Windows程序调试----第一部分 调试策略----第2章 编写使于调试的C++代码
第2章编写使于调试的C++代码 毫无疑问,当你在写C++代码的时候,你的头脑中会考虑很多事情。代码是否正确,是否执行得是够快,是否可靠,是否便于维护,工程是否会按时完成,人们是否会喜欢这个结果?然而,调试这段代码的能力应该也在你的考虑之列。 C++是一种非同寻常的编程语言,有惊人的产生错误和避免错误的能力。在这一章里,我列举几种技术帮助你从战略上书写便于调试的C++代码。这些技转载 2013-03-19 14:20:28 · 2714 阅读 · 0 评论 -
Windows程序调试----第一部分 调试策略----第5章 使用异常和返回值
本书由铁文手打整理,仅为方便个人查阅摘录如喜欢本书,请购买正版 第5章使用异常和返回值 在C++程序中,你可以使用异常或返回值来返回状态信息,在C语言程序出现的早期,返回一个函数状态的最好方法就是它的返回值。使用这个函数的程序员不得不检查返回值来确定这个函数是不是按照预想的正常工作。基于C语言的Windows API使用这种方式的另一种变体,那就是API函数返回一个转载 2013-04-03 15:03:58 · 3002 阅读 · 0 评论 -
Windows程序调试----第一部分 调试策略----第3章 使用断言
第3章使用断言 在第2章“编写便于调试的C++代码”中,我介绍了早期Windows程序中的调试。在ANSI C出现之前,C语言的类型功能并不强大,也不支持函数原型。Windows程序都是在16位存储介质基础上开发的,这里函数指针为长指针,而数据指针为短指针。程序员必须像人工编译器一样,一行行地检查代码,保证所有的函数参数的数据类型都能匹配,指针长度都正确,并且在必要的时候进行强制类型转换转载 2013-03-27 15:14:36 · 3548 阅读 · 0 评论 -
Windows程序调试----第一部分 调试策略----第4章 使用跟踪语句
第4章使用跟踪语句 在20世纪70年代中期,C编程语言作为一种低层、多用途的编程语言出现。我并不知道第一个有意义的C语言程序是什么样的,但我可以信誓旦旦地说它是有bug(错误)的,而且作者肯定是使用printf命令行语句来对那些bug进行调试的。同样地,Microsoft Windows在80年代中期作为IBM个人计算机的图形用户接口出现,我同样不知道第一个有意义的Windows程序转载 2013-03-28 14:19:52 · 2332 阅读 · 0 评论 -
Windows程序调试----第一部分 调试策略----第1章 调试的过程
第一部分调试策略第1章调试的过程 虽然可能存在无数种错误,与此对应,潜在的也存在无数种调试策略,但是大多数的错误还是可以通过普通的调试过程来消除的。本章就来介绍这些过程。1.1错误的调试五步曲 首先让我们来看一下一个不太有效的调试过程。像Elisabeth Kuble-Ross在她的书《On Death and Dying》中提到的悲哀五步曲那样,低效率调试过程的五步曲转载 2013-03-08 13:38:46 · 3920 阅读 · 0 评论 -
Windows程序调试----前言
前言 调试Windows程序是项浩大、复杂的工程,一些介绍有关Windows调试的所有方面的书,动辄就能达到这本书的两倍厚。但是全面介绍的书籍有一个缺点.就是它太厚了,令人望之生畏,恐怕很少有人想读它。所以,这本书中,我们圈定了一个范围,将重点放在Windows调试的某些方面。下面介绍这个范围是如何挑选的。 本书最基本的动机建立在这样的信念上:如果程序员能更好地获取调试知识,他转载 2013-03-07 17:19:39 · 1286 阅读 · 0 评论 -
Windows程序调试----第三部分 调试技术----第9章 内存调试
第9章内存调试 能够方便高效地进行动态内存分配,是C++编程语言的重要优点之一;而调试时容易错误使用动态分配的内存也是其最大的缺点之一。Windows程序也可能同样存在与系统资源泄漏或者堆栈相关的内存问题。内存问题是Windows程序错误的常见来源之一、而且如果没有合适的工具进行调试:它们将是最难以追踪到的错误之一。 动态内存分配错误有以下两种基本类型:内存错误和内存泄露。当一转载 2013-04-19 13:26:31 · 5458 阅读 · 1 评论