转载请注明出处,谢谢
翻译时间:2019-02-26
译者:周林
翻译进度:20/600(3.3%)
原书对应页码:第xvii页 ~ 第xx页
目标读者
这本书的目标读者是渴望通过使用调试和跟踪工具来精通Windows开发平台,从而进阶的软件工程师。
前置知识
读者应具备基本的C/C++和C#编程语言技能。懂Win32和.NET平台更好,但那并不是必须的。因为本书在扩展到高级主题之前,聚焦阐述基本概念。
本书组织结构
本书分为三个部:
- 第一部分:“背景知识”一节提供了Windows开发框架和支持它的操作系统底层概览。这些基础知识在理解调试器和跟踪工具显示的数据时非常重要。
- 第二部分:“调试的乐趣与收获”一节涵盖了Windows操作系统中调试器的架构基础。在这一节中也展示了很多实用技巧来充分发挥Windows调试器的威力。此外,该部分也展示了如何使用WinDBG调试器,通过分析你的代码与操作系统之间重要的交互,来更好地理解系统内幕。
- 第三部分:“观察与分析软件行为”一节继续这个主题。在这一节中展示了Windows(ETW)事件跟踪技术、如何在调试和优化调研中进行平衡。
- 最后,在本书最后的两个附录中,回顾了常见调试任务,并展示如何使用调试器来完成它们。
目录可以帮助你快速定位到对应章节。此外,每个章节的开头都会列示该章的要点,并有单独的综述部分作为总结。你也可以下载本书中所有实验和示例的代码。
扫描二维码关注公众号,回复:
5636643 查看本文章
本书表达惯例
为了让本书更具可读性和易于理解,本书使用下表中的惯例来表达:
惯例 | 含义 |
侧边栏 | 加框的侧边栏用于补充指定对象的额外有用信息。 |
注意/提醒 | 用于提供对正文的有用补充。 |
内联代码 | 出现在段落中的代码用斜体表示。 |
代码块 | 代码块用不用的字体显示,便于与正文进行区别。重要语句用粗体表示,便于引起读者的重视。 |
调试器输出 | 调试器的输出用不同的字体显示,重要的输出用粗体突出。标准的vertaget调试器命令的输出(用于显示当前OS版本和CPU架构信息),通常作为这些调试器输出结果的前缀。 |
方法名 | 有时会用WinDBG调试器的符号名来引用方法名。例如,Kernel32!CreateFileW实际指代Kernel32模块导出的Win32 API CreateFile("W"表示Unicode风格)。 |
系统要求
为了实践本书中的实验、运行本书中的代码,你的系统的硬件与软件必须满足如下要求:
- 操作系统:Vista或以后版本。强烈推荐使用Windows 7(或Windows 2008 R2)。
- 硬件:支持Windows 7的任何计算机。除了在线内核调试实验,需要准备一台额外的计算机作为调试宿主机用于内核调试。
注意:目标机与宿主机并不一定需要两台真正的物理机。如第二章的“让我们开始吧”一节所阐述的,常用内核调试器配置运行在目标机,该目标机实际上是一个Windows 7的虚拟机,它运行在Windows 2008 R2的物理机上,后者是宿主机。在宿主机上运行内核调器。
- 硬盘:1GB的空闲磁盘空间用来下载和保存Windows软件开发包(SDK)与驱动开发包(DDK)的ISO映像。40MB的空闲磁盘空间用来下载与编译随书源代码。额外的3GB用来安装微软Visual Studio 2010。
- 软件:本书中调试与跟踪示例用到的工具:
- Windows SDK 7.1版:你可以从微软下载中心下载:http://www.microsoft.com/download/en/details.aspx?id=8442。它包含了Windows调试器(WinDBG)和Windows性能工具箱(Xperf)。
- 应用程序验证器工具:你你可以从微软下载中心下载:http://www.microsoft.com/download/en/details.aspx?id=20028。
- 系统内幕工具集:可以从如下地址下载:http://technet.microsoft.com/en-us/sysinternals/bb842062。
- Visual Studio 2010的任何版本(除了免费版和裁剪版):Visual Studio终极版是最推荐的,因为一些高级特性,如静态代码分析、性能剖析等,只有该版本支持。微软提供了该版本的90天免费试用,你可以从以下地址获取:http://www.microsoft.com/download/en/details.aspx?id=12187。
- Windows 7驱动开发包(DDK):用来编译随书代码。它可以从微软下载中心的如下地址获取:http://www.microsoft.com/download/en/details.aspx?id=11800。