图书介绍

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

Microsoft .NET和Windows应用程序调试
  • (美)John Robbins著;刘立宇等译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302086265
  • 出版时间:2004
  • 标注页数:673页
  • 文件大小:214MB
  • 文件页数:691页
  • 主题词:计算机网络-程序设计;窗口软件,Windows-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐