应用程序调试技术作者:(美)JohnRobbins 译者:潘文林陈武目录结论第l部分调试概论第1章错误:问题出在那里,如何解决1.l错误及其调试1.1.l什么是错误1.1.2进程错误及其解决方案1.1.3制定调试计划1.2调试的先决条件1.2.l技能组合l.2.2学习技能组合1.3调试过程1.3.l第1步:复制错误1.3.2第2步:描述错误1.3.3第3步:始终假定错误是你自己的问题1.3.4第4步:分解并解决错误1.3.5第5步:进行有创见的思考1.3.6第6步:杠杆工具1.3.7第7步:开始繁重的调试工作1.3.8第8步:校验错误已被更正.1.3.9第9步:学习与交流1.3.10调试过程的决定性秘诀1.4小结第2章开始调试2.1跟踪变更直到项目结束2.1.l版本控制系统2.1.2错误跟踪系统2.1.3选择正确的系统2.2制定构建调试系统的进度表2.2.l用调试符来连编所有的构件2.2.2警告与错误同等重要2.2.3了解在何处装载DLL2.2.4设计发布构件的轻便诊断系统2.3日常连编和冒烟测试是必须遵循的2.3.l日常构件2.3.2冒烟测试2.4立即连编安装程序2.5QA必须对调试构件进行测试2.6小结第3章边编码边调试3.1注意声明3.1.l如何声明,声明什么3.l.2不同类型的VisualC+十和VisualBasic声明3.l.3SUPERASSERT3.2跟踪、跟踪、跟踪、再跟踪3.3注意注释3.4相信自己,但要校验(单元测试)3.5小结第II部分高效率的调试第4章调试器的工作原理4.1Windows调试器的类型4.1.1用户模式调试器4.1.2内核模式调试器4.2Windows2000操作系统为调试对象提供的支持4.2.1Windows2000堆阵检查4.2.2在调试器中自动启动4.2.3快速中断项4.3MinDBG:一个简单的Win32调试器4.4WDBG:真正的调试器4.4.l内存读写操作4.4.2断点和单步执行4.4.3符号表、符号引擎和堆栈遍历4.4.4StepInto、StepOver和StapOut功能4.4.5WDBG调试器的一个有趣的开发问题4.5如果需要编写自己的调试器4.6WDBG调试器之后是什么?4.7小结第5章使用Visual C+十调试器进行强有力的调试5.1高级断点及其用法5.1.l高级断点语法和位置断点5.1.2在任何函数上快速中断5.1.3在系统或输出的函数中设置断点5.1.4位置断点修饰符5.1.5全局表达式和条件断点5.1.6Windows消息断点5.2远程调试5.3技巧及窍门5.3.1设置断点5.3.2Watch窗口5.4小结第6章使用x86汇编语言和Visual C++调试器Disassembly窗口进行强有力的调试6.1CPU的基础知识6.1.l寄存器6.1.2指令格式和内存编址6.2关于VisualC+十内联汇编器6.3需要了解的指令6.3.1堆栈处理6.3.2最常用的几个简单指令6.3.3常见的序列:函数入口和出口6.3.4变量访问:全局变量、参数和局部变量6.3.5调用进程和返回指令6.4调用约定6.5需要了解的其他指令6.5.l数据处理6.5.2指针处理6.5.3比较和测试6.5.4条约和分文指令6.5.5循环6.5.6字符串处理6.6常见的汇编语言结构6.6.1FS寄存器访问6.6.2结构和类引用6.7完整的例子6.8Disassembly窗口6.8.1导航功能6.8.2在堆栈上查看参数6.8.3SetNextStatement命令6.8.4Memory窗口和Disassembly窗口6.9技巧和诀窍6.9.1Endians6.9.2垃圾代码6.9.3寄存器和Watch窗口6.9.4从ASM文件中学习6.10小结第7章使用VisualBasic调试器进行强
1