注重体验与质量的电子书资源下载网站
分类于: 互联网 云计算&大数据
简介
.NET高级调试 豆 9.2分
资源最后更新于 2020-08-19 16:05:44
作者:Mario Hewardt
译者:聂雪军
出版社:机械工业出版社
出版日期:2011-01
ISBN:9787111320852
文件格式: pdf
标签: .NET 软件调试 调试 编程 debugging C# 软件开发 CLR
简介· · · · · ·
《.NET高级调试》是一本介绍如何通过非托管调试器(包括WinDBG、NTSD和CDB等)来调试NET应用程序的书籍。本书内容主要包括:调试工具简介、CLR基础、基本调试任务、程序集加载器、托管堆与垃圾收集、同步、互用性以及一些高级主题,如事后调试、一些功能强大的调试工具和.NET 4.0中的新功能等。
目录
对本书的赞誉
译者序
序
前言
关于作者
第一部分简介
第1章调试工具简介1
1.1windows调试工具集1
1.2.net 2.0 可再发行组件2
1.3.net 2.0 sdk3
1.4sos5
1.5sosex7
1.6clr分析器8
1.7性能计数器9
1.8.net反编译器11
1.9powerdbg11
1.10托管调试助手12
1.11小结15
第2章clr基础16
2.1高层概览16
.2.2clr和windows加载器18
2.2.1加载非托管映像19
2.2.2加载.net程序集21
2.3应用程序域24
2.3.1系统应用程序域27
2.3.2共享应用程序域27
2.3.3默认应用程序域27
2.4程序集简介27
2.5程序集清单29
2.6类型元数据30
2.6.1同步块表36
2.6.2类型句柄40
2.6.3方法描述符45
2.6.4模块47
2.6.5元数据标记49
2.6.6eeclass50
2.7小结52
第3章基本调试任务53
3.1调试器以及调试目标53
3.2符号57
3.3控制调试目标的执行59
3.3.1中断执行59
3.3.2恢复执行60
3.3.3单步调试代码62
3.3.4退出调试会话65
3.4加载托管代码调试的扩展命令66
3.4.1加载sos调试器扩展66
3.4.2加载sosex调试器扩展69
3.5控制clr的调试69
3.6设置断点69
3.6.1在jit编译生成的函数上设置断点72
3.6.2在还没有被jit编译的函数上设置断点74
3.6.3在预编译的程序集中设置断点76
3.6.4在泛型方法上设置断点79
3.7对象检查80
3.7.1 内存转储82
3.7.2值类型的转储84
3.7.3转储基本的引用类型90
3.7.4数组的转储91
3.7.5 栈上对象的转储96
3.7.6找出对象的大小98
3.7.7异常的转储98
3.8线程的操作102
3.8.1clrstack103
3.8.2threads106
3.8.3dumpstack109
3.8.4eestack111
3.8.5comstate111
3.9代码审查112
3.9.1反汇编代码112
3.9.2从代码地址上获得方法描述符113
3.9.3显示中间语言指令114
3.10clr内部命令115
3.10.1获得clr的版本115
3.10.2根据名字找到方法描述符115
3.10.3对象同步块的转储116
3.10.4对象方法表的转储116
3.10.5托管堆和垃圾收集器信息的转储116
3.11诊断命令117
3.11.1找出对象的应用程序域117
3.11.2进程信息117
3.12sosex扩展命令118
3.12.1扩展的断点支持119
3.12.2托管元数据122
3.12.3栈回溯123
3.12.4对象检查124
3.12.5自动死锁检测125
3.12.6托管堆与垃圾收集命令126
3.13崩溃转储文件128
3.14小结130
第二部分调 试 实 践
第4章程序集加载器131
4.1clr加载器简介131
4.1.1程序集标识132
4.1.2全局程序集缓存135
4.1.3 默认加载上下文137
4.1.4指定加载上下文138
4.1.5无加载上下文139
4.2简单的程序集加载故障139
4.3加载上下文故障144
4.4互用性与dllnotfoundexception153
4.5轻量级代码生成的调试154
4.6小结158
第5章托管堆与垃圾收集159
5.1windows内存架构简介159
5.2垃圾收集器的内部工作机制167
5.2.1代168
5.2.2根对象175
5.2.3终结操作181
5.2.4回收gc内存189
5.2.5大对象堆190
5.2.6固定195
5.2.7垃圾收集模式200
5.3调试托管堆的破坏问题200
5.4调试托管堆的碎片问题207
5.5小结230
第6章同步231
6.1同步的基础知识231
6.2线程同步原语231
6.2.1事件235
6.2.2互斥体237
6.2.3信号量238
6.2.4监视器239
6.2.5读写锁 240
6.2.6线程池241
6.3同步的内部细节241
6.3.1对象头242
6.3.2同步块243
6.3.3瘦锁246
6.4同步任务249
6.4.1死锁249
6.4.2孤立锁:异常256
6.4.3线程中止261
6.4.4终结器挂起264
6.5小结271
第7章互用性272
7.1平台调用272
7.2com 278
7.3p/invoke调用的调试282
7.3.1调用约定282
7.3.2委托286
7.4互操作中内存泄漏问题的调试293
7.5com互用性中终结操作的调试298
7.6小结306
第三部分高 级 主 题
第8章事后调试307
8.1转储文件基本知识308
8.1.1通过调试器来生成转储文件309
8.1.2通过adplus生成转储文件314
8.1.3转储文件的调试316
8.1.4数据访问层317
8.1.5转储文件分析:未处理的.net异常319
8.2windows错误报告320
8.3小结344
第9章一些功能强大的调试工具345
9.1powerdbg345
9.1.1安装powerdbg345
9.1.2analyzepowerdbgthreads347
9.1.3sendpowerdbgcommand348
9.1.4扩展powerdbg的功能350
9.2visual studio352
9.2.1sos的集成352
9.2.2.net框架源代码级调试355
9.2.3visual studio 2010358
9.3clr分析器361
9.3.1运行clr分析器362
9.3.2summary视图363
9.3.3histogram视图364
9.3.4graph视图366
9.4windbg和cmdtree命令367
9.5小结368
第10章clr 4.0369
10.1工具369
10.1.1windows调试工具集369
10.1.2.net 4.0可再发行组件369
10.1.3sos370
10.2托管堆与垃圾收集370
10.2.1扩展的诊断信息370
10.2.2后台垃圾收集374
10.3同步375
10.3.1线程池与任务375
10.3.2监视器376
10.3.3栅栏377
10.3.4countdownevent377
10.3.5manualreseteventslim377
10.3.6semaphoreslim377
10.3.7spinwait和spinlock377
10.4互用性378
10.5事后调试379
10.6小结379
译者序
序
前言
关于作者
第一部分简介
第1章调试工具简介1
1.1windows调试工具集1
1.2.net 2.0 可再发行组件2
1.3.net 2.0 sdk3
1.4sos5
1.5sosex7
1.6clr分析器8
1.7性能计数器9
1.8.net反编译器11
1.9powerdbg11
1.10托管调试助手12
1.11小结15
第2章clr基础16
2.1高层概览16
.2.2clr和windows加载器18
2.2.1加载非托管映像19
2.2.2加载.net程序集21
2.3应用程序域24
2.3.1系统应用程序域27
2.3.2共享应用程序域27
2.3.3默认应用程序域27
2.4程序集简介27
2.5程序集清单29
2.6类型元数据30
2.6.1同步块表36
2.6.2类型句柄40
2.6.3方法描述符45
2.6.4模块47
2.6.5元数据标记49
2.6.6eeclass50
2.7小结52
第3章基本调试任务53
3.1调试器以及调试目标53
3.2符号57
3.3控制调试目标的执行59
3.3.1中断执行59
3.3.2恢复执行60
3.3.3单步调试代码62
3.3.4退出调试会话65
3.4加载托管代码调试的扩展命令66
3.4.1加载sos调试器扩展66
3.4.2加载sosex调试器扩展69
3.5控制clr的调试69
3.6设置断点69
3.6.1在jit编译生成的函数上设置断点72
3.6.2在还没有被jit编译的函数上设置断点74
3.6.3在预编译的程序集中设置断点76
3.6.4在泛型方法上设置断点79
3.7对象检查80
3.7.1 内存转储82
3.7.2值类型的转储84
3.7.3转储基本的引用类型90
3.7.4数组的转储91
3.7.5 栈上对象的转储96
3.7.6找出对象的大小98
3.7.7异常的转储98
3.8线程的操作102
3.8.1clrstack103
3.8.2threads106
3.8.3dumpstack109
3.8.4eestack111
3.8.5comstate111
3.9代码审查112
3.9.1反汇编代码112
3.9.2从代码地址上获得方法描述符113
3.9.3显示中间语言指令114
3.10clr内部命令115
3.10.1获得clr的版本115
3.10.2根据名字找到方法描述符115
3.10.3对象同步块的转储116
3.10.4对象方法表的转储116
3.10.5托管堆和垃圾收集器信息的转储116
3.11诊断命令117
3.11.1找出对象的应用程序域117
3.11.2进程信息117
3.12sosex扩展命令118
3.12.1扩展的断点支持119
3.12.2托管元数据122
3.12.3栈回溯123
3.12.4对象检查124
3.12.5自动死锁检测125
3.12.6托管堆与垃圾收集命令126
3.13崩溃转储文件128
3.14小结130
第二部分调 试 实 践
第4章程序集加载器131
4.1clr加载器简介131
4.1.1程序集标识132
4.1.2全局程序集缓存135
4.1.3 默认加载上下文137
4.1.4指定加载上下文138
4.1.5无加载上下文139
4.2简单的程序集加载故障139
4.3加载上下文故障144
4.4互用性与dllnotfoundexception153
4.5轻量级代码生成的调试154
4.6小结158
第5章托管堆与垃圾收集159
5.1windows内存架构简介159
5.2垃圾收集器的内部工作机制167
5.2.1代168
5.2.2根对象175
5.2.3终结操作181
5.2.4回收gc内存189
5.2.5大对象堆190
5.2.6固定195
5.2.7垃圾收集模式200
5.3调试托管堆的破坏问题200
5.4调试托管堆的碎片问题207
5.5小结230
第6章同步231
6.1同步的基础知识231
6.2线程同步原语231
6.2.1事件235
6.2.2互斥体237
6.2.3信号量238
6.2.4监视器239
6.2.5读写锁 240
6.2.6线程池241
6.3同步的内部细节241
6.3.1对象头242
6.3.2同步块243
6.3.3瘦锁246
6.4同步任务249
6.4.1死锁249
6.4.2孤立锁:异常256
6.4.3线程中止261
6.4.4终结器挂起264
6.5小结271
第7章互用性272
7.1平台调用272
7.2com 278
7.3p/invoke调用的调试282
7.3.1调用约定282
7.3.2委托286
7.4互操作中内存泄漏问题的调试293
7.5com互用性中终结操作的调试298
7.6小结306
第三部分高 级 主 题
第8章事后调试307
8.1转储文件基本知识308
8.1.1通过调试器来生成转储文件309
8.1.2通过adplus生成转储文件314
8.1.3转储文件的调试316
8.1.4数据访问层317
8.1.5转储文件分析:未处理的.net异常319
8.2windows错误报告320
8.3小结344
第9章一些功能强大的调试工具345
9.1powerdbg345
9.1.1安装powerdbg345
9.1.2analyzepowerdbgthreads347
9.1.3sendpowerdbgcommand348
9.1.4扩展powerdbg的功能350
9.2visual studio352
9.2.1sos的集成352
9.2.2.net框架源代码级调试355
9.2.3visual studio 2010358
9.3clr分析器361
9.3.1运行clr分析器362
9.3.2summary视图363
9.3.3histogram视图364
9.3.4graph视图366
9.4windbg和cmdtree命令367
9.5小结368
第10章clr 4.0369
10.1工具369
10.1.1windows调试工具集369
10.1.2.net 4.0可再发行组件369
10.1.3sos370
10.2托管堆与垃圾收集370
10.2.1扩展的诊断信息370
10.2.2后台垃圾收集374
10.3同步375
10.3.1线程池与任务375
10.3.2监视器376
10.3.3栅栏377
10.3.4countdownevent377
10.3.5manualreseteventslim377
10.3.6semaphoreslim377
10.3.7spinwait和spinlock377
10.4互用性378
10.5事后调试379
10.6小结379