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下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

Python+Tkinter实现Windows Hosts文件编辑管理工具

《Python+Tkinter实现WindowsHosts文件编辑管理工具》在日常开发和网络调试或科学上网场景中,Hosts文件修改是每个开发者都绕不开的必修课,本文将完整解析一个基于Python... 目录一、前言:为什么我们需要专业的Hosts管理工具二、工具核心功能全景图2.1 基础功能模块2.2 进

Python+PyQt5开发一个Windows电脑启动项管理神器

《Python+PyQt5开发一个Windows电脑启动项管理神器》:本文主要介绍如何使用PyQt5开发一款颜值与功能并存的Windows启动项管理工具,不仅能查看/删除现有启动项,还能智能添加新... 目录开篇:为什么我们需要启动项管理工具功能全景图核心技术解析1. Windows注册表操作2. 启动文件