Windows程序调试----前言

2024-04-08 10:18
文章标签 windows 前言 程序调试

本文主要是介绍Windows程序调试----前言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

    调试Windows程序是项浩大、复杂的工程,一些介绍有关Windows调试的所有方面的书,动辄就能达到这本书的两倍厚。但是全面介绍的书籍有一个缺点.就是它太厚了,令人望之生畏,恐怕很少有人想读它。所以,这本书中,我们圈定了一个范围,将重点放在Windows调试的某些方面。下面介绍这个范围是如何挑选的。

    本书最基本的动机建立在这样的信念上:如果程序员能更好地获取调试知识,他们就可以提髙调试技能。虽然有大量调试知识,但它们目前仍然非常零散,不利于程序员阅读并掌握。这些知识常常是含糊的,不完整的,要么就是把重点放在调试工具而不是调试概念上。最终的调试工具永远是程序员的头脑,但这个工具常常被忽略了。掌握Windows调试的基础概念,有助于预防错误,同时也可以有效地发现残留的错误。

    本书精选了进行Windows调试所需的基础调试技巧。读完每一章,读者都应该将该章所介绍的主题与己有的知识联系起来。本书第一部分介绍了调试策略以帮助理解调试过程,以及如何使用C++语言、断言、跟踪和异常来预防、揭示、诊断和消除错误。第二部分介绍了C++Windows中的调试工具。第三部分介绍了调试技术,帮助读者充分利用Visual C++的调试工具,并特别论述了与调试内存相关的问题、多线程问题和COM问题。

    这里介绍的有些问题跨越了编程技术和调试技术的界限。虽然错误预防更可能是属于调试中的部分,但是为了避免犯错,也需要懂得编程常犯的错误,很多编码文章里没有提到调试和错误预防的内容,只有在这里介绍了。

    很容易看出有些内容我们没有提及。我们基本上没有涉及到仟何不属于Visuul C++ Windows的第三方调试工具,如WinDbg,这样做有几个原因,最明显的原因就是我们把重点放在介绍调试概念上,而不是介绍工具。另一个重要的原因是,Visual C++程序员需要较好的知识,来利用已有的工具。最后,我们怀疑,我们所能介绍的那点东西能不能比厂商介绍的对大家更有帮助。

可我用的是BoundsChecker......

    有些读者会想了: “对我用的是BoundsChecker呀,为什么要读这本书呢?”问得好。调试工具,例如 Compuware NuMega公司的BoundsCherker Rationale  Software公司的 Purify,可以很好地发现各种运行期错误,如不良指针和句柄、内内存破坏和泄露、错误的Windows API参数,等等。但是它们做不到的是帮助理解调试过程,

    包括如何使用C++语言、断言、跟踪和异常来预防和消除错误,如何充分利用Visual C++ Windows自带的调试工具来调试多线程程序和COM程序。这些本书全部都做到了。

    而且,这些工具一定不能检测到所有的错误,并且不能用于预防错误。如果完全依赖调试工具,当遇到工具找不到的错误时,你就会很无助。另外,使用这些工具需要执行额外的开发步骤,它们对性能影响也很大,但是本书中介绍的错误检测技术在调试版本时自动进行,对性能的影响也比较小。调试是个很复杂的解谜过程,这些工具往往只能给与片面的帮助。

Windows版本和硬件

    为了简化陈述,我们只选用了当前版本的Windows,在我写书的时候,主流操作系统是 Windows 2000 Windows 98。这里针对 Windows 2000 的内容也适用于 Windows NT 4.0,针对Window 98的内容也适用于Windows 95。我们在说Windows NT 4.0Windows 95时,仅仅指的是该版本的Windows

    为了简化陈述,我们假设你在一个Intel X86CPU上使用Windows。虽然这本书大部分与CPU无关,佴是在阅读16进制转储信息和在汇编级别调试时,CPU就是一个必须考虑的因素了。对那些在非Intel平台上进行汇编级别的调试的程序员,我们只能说抱歉了。

    更新信息

    这本书是在MS Visual C++ 6.0的基础上写的。如果你使用更新的版本,这本书的大部分还能适用,只有编泽器和调试器的一些细节会有些改变。为了让这本书的知识能够及时更新,我们在www.windebug.com上会贴出更新和更正信息。如果你发现了错误,或过时信息,请通知我们,发邮件给corrections@windebug.com

致谢

    这是一本很难写的书,并不是因为没有关于调试的知识,而是知识点太多了,并且非常分散。从很大程度来说,我们的工作就是收集、吸收,然后有条理地描述出来。本书中有不少原创思想,但只是少数部分。我很想感谢每一位对本书中涉及的调试思想有贡献的人,但是很难知道他们是谁。

    Microsoft Systems Journal

    Writing Solid Code: Microsoft's Techniques for Developing BugFree C Programs

    Code Complete: A PraciticaL Handbook of Software Construction

    Zen and the Art of Motorcycle Maintenance: An Tnquiry itito Values

    Windows Internals and Windows 95 System Programming Secrets

这篇关于Windows程序调试----前言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885307

相关文章

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

Windows环境下安装达梦数据库的完整步骤

《Windows环境下安装达梦数据库的完整步骤》达梦数据库的安装大致分为Windows和Linux版本,本文将以dm8企业版Windows_64位环境为例,为大家介绍一下达梦数据库的具体安装步骤吧... 目录环境介绍1 下载解压安装包2 根据安装手册安装2.1 选择语言 时区2.2 安装向导2.3 接受协议

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装