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 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Windows如何添加右键新建菜单

Windows如何添加右键新建菜单 文章目录 Windows如何添加右键新建菜单实验环境缘起以新建`.md`文件为例第一步第二步第三步 总结 实验环境 Windows7 缘起 因为我习惯用 Markdown 格式写文本,每次新建一个.txt后都要手动修改为.md,真的麻烦。如何在右键新建菜单中添加.md选项呢? 网上有很多方法,这些方法我都尝试了,要么太麻烦,要么不凑效

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

Windows环境利用VS2022编译 libvpx 源码教程

libvpx libvpx 是一个开源的视频编码库,由 WebM 项目开发和维护,专门用于 VP8 和 VP9 视频编码格式的编解码处理。它支持高质量的视频压缩,广泛应用于视频会议、在线教育、视频直播服务等多种场景中。libvpx 的特点包括跨平台兼容性、硬件加速支持以及灵活的接口设计,使其可以轻松集成到各种应用程序中。 libvpx 的安装和配置过程相对简单,用户可以从官方网站下载源代码

C++实现俄罗斯方块(Windows控制台版)

C++实现俄罗斯方块(Windows控制台版) 在油管上看到一个使用C++控制台编写的俄罗斯方块小游戏,源代码200多行,B站上也有相关的讲解视频,非常不错,值得学习。 B站讲解视频地址为:【百万好评】国外技术大神C++游戏编程实战教程,油管580W收藏,新手10小时入门,并快速达到游戏开发能力(中英字幕) B站 CSDN博主千帐灯无此声还为此写了一篇博客:C++实现俄罗斯方块(源码+详解),讲

Windows下php扩展开发c++动态库

PHP扩展开发,从零了解到初步完成一个小项目,经过三天的仔细研究,现整理如下 一、需求介绍 PHP扩展开发,调用自己之前的c++动态库,完成功能 二、项目之前 系统:windows xp  开发工具:vs 2008 web环境:apache2.4  PHP5.3.29-VC9-ts-x86 aphach和PHP 环境之前已经搭建完成 PHP源码:去官网http://www.php.n

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

Windows与linux中docker的安装与使用

windos中安装使用docker 下载Docker_Desktop 安装包进入docker官网下载Docker_Desktop: https://www.docker.com/ 启用wsl 我们搜索“启用或关闭Windows功能”,打开后勾选适用于Linux的Windows 子系统 Docker_Desktop设置 出现Docker Engine stopped的解决

Windows 10 各版本

对应于服务选项的 Windows 10 当前版本 Version服务选项上市日期OS build最后修订日期1803半年频道7/10/201817134.1917/24/2018Microsoft 建议使用1803半年频道(定向)4/30/201817134.1917/24/20181709半年频道1/18/201816299.5797/24/20181709半年频道(定向)10/17/2017

Windows系统不关机故障的解决方法

当Windows系统出现不关机故障时,首先要查找引起Windows系统不关机的原因,然后根据 具体的故障原因采取相应的解决方法。   Windows系统不关机故障的解决方法如下。   1.检查所有正在运行的程序   检查运行的程序主要包括关闭任何在实模式下加载的TSR程序、关闭开机时从启动组自动启 动的程序、关闭任何非系统引导必需的第三方设备驱动程序。   检查运行的程序并停