图书介绍
Microsoft .NET和Windows应用程序调试【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

- (美)John Robbins著;刘立宇等译 著
- 出版社: 北京:清华大学出版社
- ISBN:7302086265
- 出版时间:2004
- 标注页数:673页
- 文件大小:214MB
- 文件页数:691页
- 主题词:计算机网络-程序设计;窗口软件,Windows-程序设计
PDF下载
下载说明
Microsoft .NET和Windows应用程序调试PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第Ⅰ部分 调试概述1
第1章 错误来源和除错方法3
1.1错误及其调试3
1.1.1什么是错误4
1.1.2错误产生的原因和解决办法7
1.1.3规划调试14
1.2优秀调试人员的必备技能15
1.2.1所需技能15
1.2.2学习各种技能17
1.3调试过程18
1.3.1步骤1:重现错误19
1.3.2步骤2:描述错误20
1.3.3步骤3:总是假设是您自己造成的错误21
1.3.4步骤4:分而治之21
1.3.5步骤5:创造性地思考21
1.3.6步骤6:借助于工具22
1.3.8步骤8:验证错误已经被更正23
1.3.7步骤7:开始大规模调试23
1.3.9步骤9:学习和与人分享25
1.3.10调试过程的最终秘密25
1.3.11本章小结25
第2章 开始调试26
2.1跟踪所有更改直至项目完成26
2.1.1版本控制系统27
2.1.2错误跟踪系统30
2.1.3选择适当的系统31
2.2在进度表中安排时间建立调试系统32
2.2.1保证所有版本中都带调试符号33
2.2.2把托管代码中的编译警告视为编译错误37
2.2.3对于本机代码将大多数编译警告视为编译错误39
2.2.4了解本机代码中DLL的加载位置42
2.2.5如何处理托管模块及其基址46
2.2.6为发布版本设计轻量级的诊断系统53
2.3必须进行频繁生成和冒烟测试54
2.3.1频繁生成54
2.3.2冒烟测试55
2.4尽早创建安装程序56
2.5QA必须测试调试版本57
2.6安装操作系统调试符号并建立符号库57
2.7本章小结66
第3章 边编码边调试67
3.1断言68
3.1.1如何断言以及断言什么69
3.1.2在.NETWindows窗体或控制台应用程序中设置断言78
3.1.3在ASP.NET程序和XMLWeb服务中设置断言86
3.1.4在本机C++程序中设置断言97
3.1.5VisualC++中不同类型的断言101
3.1.6SUPERASSERT103
3.2跟踪、跟踪、再跟踪124
3.2.1在Windows窗体应用和控制台.NET应用程序中跟踪125
3.2.2在ASP.NET应用程序和XMLWEBServices中跟踪127
3.2.3在本机C++应用程序中跟踪129
3.3注释、注释、再注释130
3.4信任自己,但要进行验证(单元测试)131
3.5本章小结133
第Ⅱ部分 强大的调试技术135
第4章 操作系统对调试的支持以及Win32调试器工作原理137
4.1Windows调试器的类型138
4.1.1用户模式调试器138
4.1.2内核模式调试器140
4.2Windows操作系统对调试对象的支持142
4.2.1实时(JIT)调试142
4.2.2在调试器中自动启动(映像文件执行选项)146
4.3MinDBG:一个简单的Win32调试器148
4.4WDBG:真正的调试器168
4.4.1读/写内存170
4.4.2断点和单步执行173
4.4.3符号表、符号引擎和堆栈遍历178
4.4.4StepInto、StepOver和StepOut185
4.5编写您自己的调试器186
4.6对WDBG的改进建议187
4.7本章小结188
第5章 VisualStudio.NET调试器高级用法189
5.1.1断点设置技巧190
5.1高级断点及其用法190
5.1.2在任何函数位置快速中断192
5.1.3位置断点智能特性197
5.2Watch窗口200
5.2.1在Watch窗口中调用方法202
5.2.2SetNextStatement命令203
5.3本章小结205
6.1.NET程序中的高级断点206
6.1.1条件表达式206
第6章 VisualStudio.NET高级.NET调试206
6.2Watch窗口211
6.2.1自动展开自定义类型211
6.3提示与技巧214
6.3.1DebuggerStepThroughAttribute和DebuggerHiddenAttribute214
6.3.2混合模式调试215
6.3.3远程调试216
6.4ILDASM和Microsoft中间语言218
6.4.1开始学习ILDASM219
6.4.2公共语言运行库(CLR)基础224
6.4.3MSIL、局部变量和参数225
6.4.4重要指令226
6.5其他逆向工程工具232
6.6本章小结233
第7章 VisualStudio.NET本机代码高级调试技术234
7.1本机应用程序的高级断点234
7.1.1高级断点语法234
7.1.2系统或导出函数的断点236
7.1.3条件表达式238
7.1.4数据断点240
7.1.5更好的数据断点243
7.2Watch窗口243
7.2.1数据的格式化和表达式的计算243
7.2.2在Watch窗口中记录代码执行时间246
7.2.3未归档的伪寄存器246
7.2.4自动展开自己的类型246
7.3远程调试254
7.4.1调试插入的代码256
7.4提示与技巧256
7.4.2Memory窗口和自动内存计算257
7.4.3监视异常257
7.4.4处理符号的更多技巧260
7.4.5与Windows2000进程分离260
7.4.6处理转储文件261
7.5x86汇编语言263
7.5.1CPU基础263
7.5.2浅谈VisualC++.NET内联汇编器268
7.5.3您需要了解的指令269
7.5.4通用序列:函数的入口和出口272
7.5.5调用过程和返回274
7.5.6调用约定275
7.5.7变量访问:全局变量、参数和局部变量280
7.5.8更多需要了解的指令285
7.5.9字符串操作290
7.5.10常见的汇编语言结构294
7.5.11结构引用和类引用296
7.5.12完整的示例297
7.5.13Disassembly窗口300
7.5.14手动查看堆栈303
7.5.15提示与技巧306
7.6本章小结307
第8章 WinDBG的高级本机代码调试技术309
8.1要点回顾310
8.2基础知识312
8.3调试环境315
8.3.2确保加载了正确的符号316
8.3.1获得帮助信息316
8.3.3进程和线程320
8.4使用Command窗口进行普通调试325
8.4.1查看和计算变量325
8.4.2执行、步进和跟踪327
8.4.3断点332
8.4.4异常和事件334
8.4.5控制WinDBG336
8.5.1加载和控制扩展338
8.5神奇的扩展命令338
8.5.2重要的扩展命令339
8.6处理转储文件343
8.6.1创建转储文件343
8.6.2打开转储文件345
8.6.3调试转储文件346
8.7SonofStrike(SOS)扩展346
8.7.1使用SOS347
8.8本章小结353
第Ⅲ部分 NET的强大调试工具和技术355
第9章 扩展VisualStudio.NETIDE357
9.1使用宏进行扩展358
9.1.1宏的参数360
9.1.2与项目有关的问题361
9.1.3代码元素362
9.2CommenTater:能解决共同面临的棘手问题吗?364
9.3外接程序简介372
9.3.1修改外接程序向导生成的代码373
9.3.2处理工具栏按钮问题376
9.3.3创建工具窗口377
9.3.4使用托管代码创建选项属性页379
9.4SuperSaver外接程序383
9.5SettingsMaster外接程序388
9.5.1SettingsMaster的实现要点395
9.5.2对SettingsMaster的改进建议396
9.6本章小结396
10.1ProfilingAPI简介397
第10章 托管异常的监视397
10.1.1启动您的分析器404
10.2ProfilerLib405
10.3ExceptionMon407
10.3.1进程内调试与ExceptionMon408
10.4.NET中异常的使用414
10.5本章小结416
第11章 流程跟踪417
11.1在ProfilingAPI中钩挂函数417
11.1.2实现钩子函数418
11.1.1请求Enter和Leave通知418
11.1.3内联419
11.1.4FunctionIDMapper函数420
11.2使用FlowTrace421
11.3FlowTrace实现中的主要问题422
11.4对FlowTrace的改进建议424
11.5本章小结424
第Ⅳ部分 本机代码的强大调试工具和技术425
第12章 通过崩溃时返回的地址找到源文件和行信息427
12.1创建和读取MAP文件429
12.1.1MAP文件内容430
12.1.2寻找源文件、函数名和行号433
12.1.3PDB2MAP—崩溃发生后的Map文件434
12.2使用CrashFinder437
12.2.1实现要点439
12.3对CrashFinder的改进建议446
12.4本章小结446
第13章 崩溃处理机制447
13.1.2结构化异常处理机制448
13.1结构化异常处理机制和异常处理机制448
13.1.2C++异常处理机制451
13.1.3避免使用C++异常处理452
13.1.4不要使用_set_se_translator456
13.2SetUnhandledExceptionFilterAPI函数457
13.3使用CrashHandlerAPI函数459
13.4转换EXCEPTION_POINTERS结构486
13.5小型转储(Minidump)488
13.5.1MiniDumpWriteDumpAPI488
13.5.2关于MiniDumpWriteDump490
13.6本章小结498
第14章 调试Windows服务和加载到服务中的DLL499
14.1服务的基础知识499
14.1.1API要点500
14.1.2安全问题501
14.2调试服务502
14.2.1调试核心代码502
14.2.2调试基本服务503
14.3本章小结509
第15章 多线程死锁510
15.1多线程编程提示和技巧510
15.1.1不要使用多线程511
15.1.2不要过多使用多线程511
15.1.3只在很小的离散程序段中使用多线程511
15.1.4在最低级别同步512
15.1.5旋转临界区515
15.1.6不要使用CreateThread/ExitThread516
15.1.7默认的内存管理器可能令程序失败517
15.1.8当场进行转储518
15.1.9检查代码——并再次检查代码519
15.1.10在多处理器机器上进行测试519
15.2DeadlockDetection的要求522
15.3关于DeadlockDetection的高级设计问题523
15.4使用DeadlockDetection524
15.5实现DeadlockDetection527
15.5.1钩挂导入函数527
15.5.2实现要点536
15.6对DeadlockDetection的改进建议550
15.7本章小结551
第16章 自动化测试552
16.1单元测试的难点:用户界面552
16.2对Tester的要求553
16.3使用Tester554
16.3.1Tester脚本554
16.3.2记录脚本559
16.4.1TESTER.DLL通知和回放的实现562
16.4实现Tester562
16.4.2实现TESTREC.EXE578
16.5对Tester的改进建议589
16.6本章小结590
第17章 调试C运行时库和内存管理591
17.1调试C运行时库的特性592
17.2使用调试C运行时库593
17.2.1DCRT中的缺陷594
17.2.2DCRT函数598
17.3为应用程序选择合适的C运行时库599
17.4使用MemDumperValidator601
17.4.1在C++中使用MenDumperValidator608
17.4.2在C语言中使用MenDumperValidator609
17.4.3深层验证610
17.5实现MemDumperValidator614
17.5.1在C++中初始化和终止616
17.5.2泄漏报告都到哪儿去了?617
17.6使用MemStress617
17.6.1有趣的压力测试问题619
17.7操作系统堆620
17.8发现内存问题的技巧622
17.8.1发现未初始化的内存写入问题622
17.8.2发现内存溢出623
17.9重要开关629
17.9.1运行时检查开关629
17.9.2缓冲区安全检查开关635
17.10本章小结636
第18章 FastTrace:用于服务器应用程序的高性能跟踪工具637
18.1基本问题和解决方案638
18.2使用FastTrace638
18.2.1合并跟踪日志文件640
18.3FastTrace的实现641
18.4本章小结641
第19章 优化工作集642
19.1工作集调整642
19.2使用SWS646
19.2.1设置SWS编译647
19.2.2使用SWS运行应用程序648
19.2.3生成和使用排序文件650
19.3实现SWS651
19.3.1_penter函数651
19.3.2.SWS文件格式和符号枚举656
19.3.3运行时符号问题和模块调整661
19.4对SWS的改进建议664
19.5本章小结664
附录A:阅读Dr.Watson日志665
热门推荐
- 675865.html
- 3871733.html
- 1526470.html
- 1603269.html
- 2979572.html
- 3067941.html
- 2811901.html
- 392250.html
- 1856559.html
- 2025675.html
- http://www.ickdjs.cc/book_1182609.html
- http://www.ickdjs.cc/book_1919890.html
- http://www.ickdjs.cc/book_3165463.html
- http://www.ickdjs.cc/book_909716.html
- http://www.ickdjs.cc/book_736300.html
- http://www.ickdjs.cc/book_2331051.html
- http://www.ickdjs.cc/book_104380.html
- http://www.ickdjs.cc/book_1552710.html
- http://www.ickdjs.cc/book_1719186.html
- http://www.ickdjs.cc/book_3095436.html