.NET高级调试
Mario Hewardt,是微软公司的一位资深开发经理,在WirIdows系统级开发领域拥有十余年的开发经验。他目前领导开发团队负责Microosoft在线IT管理解决方案的开发。Hewardt是《Windows高级调试》(机械工业出版社2009年5月出版)的作者之一。
《.NET高级调试》内容主要包括:调试工具简介、CLR基础、基本调试任务、程序集加载器、托管堆与垃圾收集、同步、互用性以及一些高级主题,如事后调试、一些功能强大的调试工具和.NET 4.0中的新功能等。这是一本介绍如何通过非托管调试器(包括WinDBG、NTSD和CDB等)来调试.NET。应用程序的书籍。《.NET高级调试》内容翔实、条理清晰,适合软件开发人员、软件测试人员、质量保证人员和产品技术支持人员等参考。
对本书的赞誉
译者序
序
前言
关于作者
第一部分 简介
第1章 调试工具简介
1.1 Windows调试工具集
1.2.NET 2.0可再发行组件
1.3.NET 2.0 SDK
1.4 SOS
1.5 SOSEX
1.6 CLR分析器
1.7 性能计数器
1.8 .NET反编译器
1.9 PowerDbg
1.1 0托管调试助手
1.1 1小结
第2章 CLR基础
2.1 高层概览
2.2 CLR和Windows加载器
2.2.1 加载非托管映像
2.2.2 加载.NET。程序集
2.3 应用程序域
2.3.1 系统应用程序域
2.3.2 共享应用程序域
2.3.3 默认应用程序域
2.4 程序集简介
2.5 程序集清单
2.6 类型元数据
2.6.1 同步块表
2.6.2 类型句柄
2.6.3 方法描述符
2.6.4 模块
2.6.5 元数据标记
2.6.6 EEClss
2.7 小结
第3章 基本调试任务
3.1 调试器以及调试目标
3.2 符号
3.3 控制调试目标的执行
3.3.1 中断执行
3.3.2 恢复执行
3.3.3 单步调试代码
3.3.4 退出调试会话
3.4 加载托管代码调试的扩展命令
3.4.1 加载SOS调试器扩展
3.4.2 加载SOSEX调试器扩展
3.5 控制CLR的调试
3.6 设置断点
3.6.1 在JIT编译生成的函数上设置断点
3.6.2 在还没有被JIT编译的函数上设置断点
3.6.3 在预编译的程序集中设置断点
3.6.4 在泛型方法上设置断点
3.7 对象检查
3.7.1 内存转储
3.7.2 值类型的转储
3.7.3 转储基本的引用类型
3.7.4 数组的转储
3.7.5 栈上对象的转储
3.7.6 找出对象的大小
3.7.7 异常的转储
3.8 线程的操作
3.8.1 ClrStack
3.8.2 Threads
3.8.3 DumpStack
3.8.4 EEStack
3.8.5 COMState
3.9 代码审查
3.9.1 反汇编代码
3.9.2 从代码地址上获得方法描述符
3.9.3 显示中间语言指令
3.10 CLR内部命令
3.10.1 获得CLR的版本
3.10.2 根据名字找到方法描述符
3.10.3 对象同步块的转储
3.10.4 对象方法表的转储
3.10.5 托管堆和垃圾收集器信息的转储
3.11 诊断命令
3.11.1 找出对象的应用程序域
3.11.2 进程信息
3.12 SOSEX扩展命令
3.12.1 扩展的断点支持
3.12.2 托管元数据
3.12.3 栈回溯
3.12.4 对象检查
3.12.5 自动死锁检测
3.12.6 托管堆与垃圾收集命令
3.13崩溃转储文件
3.14小结
第二部分 调试实践
第4章 程序集加载器
4.1 CLR加载器简介
4.1.1 程序集标识
4.1.2 全局程序集缓存
4.1.3 默认加载上下文
4.1.4 指定加载上下文
4.1.5 无加载上下文
4.2 简单的程序集加载故障
4.3 加载上下文故障
4.4 互用性与DllNot Found Exception
4.5 轻量级代码生成的调试
4.6 小结
第5章 托管堆与垃圾收集
5.1 Windows内存架构简介
5.2 垃圾收集器的内部工作机制
5.2.1 代
5.2.2 根对象
5.2.3 终结操作
5.2.4 回收GC内存
5.2.5 大对象堆
5.2.6 固定
5.2.7 垃圾收集模式
5.3 调试托管堆的破坏问题
5.4 调试托管堆的碎片问题
5.5 小结
第6章 同步
6.1 同步的基础知识
6.2 线程同步原语
6.2.1 事件
6.2.2 互斥体
6.2.3 信号量
6.2.4 监视器
6.2.5 读写锁
6.2.6 线程池
6.3 同步的内部细节
6.3.1 对象头
6.3.2 同步块
6.3.3 瘦锁
6.4 同步任务
6.4.1 死锁
6.4.2 孤立锁异常
6.4.3 线程中止
6.4.4 终结器挂起
6.5 小结
第7章 互用性
7.1 平台调用
7.2 COM
7.3 P/Invoke调用的调试
7.3.1 调用约定
7.3.2 委托
7.4 互操作中内存泄漏问题的调试
7.5 COM互用性中终结操作的调试
7.6 小结
第三部分 高级主题
第8章 事后调试
8.1 转储文件基本知识
8.1.1 通过调试器来生成转储文件
8.1.2 通过ADPIus生成转储文件
8.1.3 转储文件的调试
8.1.4 数据访问层
8.1.5 转储文件分析:未处理的NET异常
8.2 Windows错误报告
8.3 小结
第9章 一些功能强大的调试工具
9.1 PowerDbg
9.1.1 安装PowerDbg
9.1.2 Analyze-PowerDbgllareads
9.1.3 Send-PowerDbgCommand
9.1.4 扩展PowerDbg的功能
9.2 Visual Studio
9.2.1 SOS的集成
9.2.2.NET框架源代码级调试
9.2.3 VisualStudio2010
9.3 CLR分析器
9.3.1 运行CLR分析器
9.3.2 Summary视图
9.3.3 Histogram视图
9.3.4 Graph视图
9.4 WinDbg和CmdTme命令
9.5 小结
第10章 CLR4.0
10.1 工具
10.1.1 Windows调试工具集
10.1.2.NET4.0可再发行组件
10.1.3 SOS
10.2 托管堆与垃圾收集
10.2.1 扩展的诊断信息
10.2.2 后台垃圾收集
10.3 同步
10.3.1 线程池与任务
10.3.2 监视器
10.3.3 栅栏
10.3.4 CountdownEvent
10.3.5 ManualResetEventSlim
10.3.6 SemaphoreSlim
10.3.7 SpinWait和Spin10ck
10.4 互用性
10.5 事后调试
10.6 小结
^ 收 起
译者序
序
前言
关于作者
第一部分 简介
第1章 调试工具简介
1.1 Windows调试工具集
1.2.NET 2.0可再发行组件
1.3.NET 2.0 SDK
1.4 SOS
1.5 SOSEX
1.6 CLR分析器
1.7 性能计数器
1.8 .NET反编译器
1.9 PowerDbg
1.1 0托管调试助手
1.1 1小结
第2章 CLR基础
2.1 高层概览
2.2 CLR和Windows加载器
2.2.1 加载非托管映像
2.2.2 加载.NET。程序集
2.3 应用程序域
2.3.1 系统应用程序域
2.3.2 共享应用程序域
2.3.3 默认应用程序域
2.4 程序集简介
2.5 程序集清单
2.6 类型元数据
2.6.1 同步块表
2.6.2 类型句柄
2.6.3 方法描述符
2.6.4 模块
2.6.5 元数据标记
2.6.6 EEClss
2.7 小结
第3章 基本调试任务
3.1 调试器以及调试目标
3.2 符号
3.3 控制调试目标的执行
3.3.1 中断执行
3.3.2 恢复执行
3.3.3 单步调试代码
3.3.4 退出调试会话
3.4 加载托管代码调试的扩展命令
3.4.1 加载SOS调试器扩展
3.4.2 加载SOSEX调试器扩展
3.5 控制CLR的调试
3.6 设置断点
3.6.1 在JIT编译生成的函数上设置断点
3.6.2 在还没有被JIT编译的函数上设置断点
3.6.3 在预编译的程序集中设置断点
3.6.4 在泛型方法上设置断点
3.7 对象检查
3.7.1 内存转储
3.7.2 值类型的转储
3.7.3 转储基本的引用类型
3.7.4 数组的转储
3.7.5 栈上对象的转储
3.7.6 找出对象的大小
3.7.7 异常的转储
3.8 线程的操作
3.8.1 ClrStack
3.8.2 Threads
3.8.3 DumpStack
3.8.4 EEStack
3.8.5 COMState
3.9 代码审查
3.9.1 反汇编代码
3.9.2 从代码地址上获得方法描述符
3.9.3 显示中间语言指令
3.10 CLR内部命令
3.10.1 获得CLR的版本
3.10.2 根据名字找到方法描述符
3.10.3 对象同步块的转储
3.10.4 对象方法表的转储
3.10.5 托管堆和垃圾收集器信息的转储
3.11 诊断命令
3.11.1 找出对象的应用程序域
3.11.2 进程信息
3.12 SOSEX扩展命令
3.12.1 扩展的断点支持
3.12.2 托管元数据
3.12.3 栈回溯
3.12.4 对象检查
3.12.5 自动死锁检测
3.12.6 托管堆与垃圾收集命令
3.13崩溃转储文件
3.14小结
第二部分 调试实践
第4章 程序集加载器
4.1 CLR加载器简介
4.1.1 程序集标识
4.1.2 全局程序集缓存
4.1.3 默认加载上下文
4.1.4 指定加载上下文
4.1.5 无加载上下文
4.2 简单的程序集加载故障
4.3 加载上下文故障
4.4 互用性与DllNot Found Exception
4.5 轻量级代码生成的调试
4.6 小结
第5章 托管堆与垃圾收集
5.1 Windows内存架构简介
5.2 垃圾收集器的内部工作机制
5.2.1 代
5.2.2 根对象
5.2.3 终结操作
5.2.4 回收GC内存
5.2.5 大对象堆
5.2.6 固定
5.2.7 垃圾收集模式
5.3 调试托管堆的破坏问题
5.4 调试托管堆的碎片问题
5.5 小结
第6章 同步
6.1 同步的基础知识
6.2 线程同步原语
6.2.1 事件
6.2.2 互斥体
6.2.3 信号量
6.2.4 监视器
6.2.5 读写锁
6.2.6 线程池
6.3 同步的内部细节
6.3.1 对象头
6.3.2 同步块
6.3.3 瘦锁
6.4 同步任务
6.4.1 死锁
6.4.2 孤立锁异常
6.4.3 线程中止
6.4.4 终结器挂起
6.5 小结
第7章 互用性
7.1 平台调用
7.2 COM
7.3 P/Invoke调用的调试
7.3.1 调用约定
7.3.2 委托
7.4 互操作中内存泄漏问题的调试
7.5 COM互用性中终结操作的调试
7.6 小结
第三部分 高级主题
第8章 事后调试
8.1 转储文件基本知识
8.1.1 通过调试器来生成转储文件
8.1.2 通过ADPIus生成转储文件
8.1.3 转储文件的调试
8.1.4 数据访问层
8.1.5 转储文件分析:未处理的NET异常
8.2 Windows错误报告
8.3 小结
第9章 一些功能强大的调试工具
9.1 PowerDbg
9.1.1 安装PowerDbg
9.1.2 Analyze-PowerDbgllareads
9.1.3 Send-PowerDbgCommand
9.1.4 扩展PowerDbg的功能
9.2 Visual Studio
9.2.1 SOS的集成
9.2.2.NET框架源代码级调试
9.2.3 VisualStudio2010
9.3 CLR分析器
9.3.1 运行CLR分析器
9.3.2 Summary视图
9.3.3 Histogram视图
9.3.4 Graph视图
9.4 WinDbg和CmdTme命令
9.5 小结
第10章 CLR4.0
10.1 工具
10.1.1 Windows调试工具集
10.1.2.NET4.0可再发行组件
10.1.3 SOS
10.2 托管堆与垃圾收集
10.2.1 扩展的诊断信息
10.2.2 后台垃圾收集
10.3 同步
10.3.1 线程池与任务
10.3.2 监视器
10.3.3 栅栏
10.3.4 CountdownEvent
10.3.5 ManualResetEventSlim
10.3.6 SemaphoreSlim
10.3.7 SpinWait和Spin10ck
10.4 互用性
10.5 事后调试
10.6 小结
^ 收 起
Mario Hewardt,是微软公司的一位资深开发经理,在WirIdows系统级开发领域拥有十余年的开发经验。他目前领导开发团队负责Microosoft在线IT管理解决方案的开发。Hewardt是《Windows高级调试》(机械工业出版社2009年5月出版)的作者之一。
《.NET高级调试》内容主要包括:调试工具简介、CLR基础、基本调试任务、程序集加载器、托管堆与垃圾收集、同步、互用性以及一些高级主题,如事后调试、一些功能强大的调试工具和.NET 4.0中的新功能等。这是一本介绍如何通过非托管调试器(包括WinDBG、NTSD和CDB等)来调试.NET。应用程序的书籍。《.NET高级调试》内容翔实、条理清晰,适合软件开发人员、软件测试人员、质量保证人员和产品技术支持人员等参考。
比价列表
1人想要
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠