《VB.NET调试全攻略》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)Mark Pearce著;谢俊,尹浩琼译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302084009
  • 页数:351 页
图书介绍:本书全面介绍了功能强大的调试技术,包括各种重要的调试工具和策略,以及Windows Forms、ASP.NET、Web服务、Windows服务和SQL Server等多种应用程序的调试方法,最后深入浅出地讨论了多线程、继承和资源管理等调试场景。

目录 3

第Ⅰ部分VB.NET环境中的调试 3

第1章战略性调试问题 3

1.1应用程序的可靠性 3

1.1.1 理解可靠性 4

1.1.2可靠性的衡量 5

1.1.3软件的可靠性设计 6

1.1.4改善软件的可靠性 7

1.2.1理解可用性 8

1.2应用程序的可用性 8

1.2.2可用性的衡量 9

1.2.3 设计软件的可用性 9

1.2.4改善软件的可用性 10

1.3调试复杂系统 10

1.3.1 根据合同构建 11

1.3.2理解通信问题 12

1.3.3 可能的解决方案 13

1.4调试开发人员心理学 13

1.4.1 没有了Edit和Continue 13

1.4.2心理因素 17

1.5 小结 20

1.6轶闻趣事 20

第2章VB.NET语言中的新设计 23

2.1 VB.NET中True的实际值 23

2.2类成员重载 24

2.2.1不确定的重载 24

2.2.2 C#重载及VB.NET重载 25

2.2.3 让C#开发人员为难的重载 27

2.3.1偶然的屏蔽 29

2.3 理解继承问题 29

2.3.2更多的屏蔽问题 30

2 3 3理解等价性 32

2.3.4更好的等价性 35

2.3.5继承和方法的可见性 35

2.3.6遍历继承树 37

2.4其他各种问题 39

2.4.1 开发人员和编译器之间的误解 39

2.4.2 VB.NET与C#之间的混淆 40

2.4.3装箱的危险 42

2.4.4数字不再是数字的情况 43

2.4.5关于NaN的其他问题 47

2.4.5关于Double 49

2.4.6有关Double的问题 49

2.5 小结 50

2.6轶闻趣事 51

第Ⅱ部分调试工具 55

第3章 Visual Studio.NET调试器 55

3.1 Visual Studio调试器简介 55

3.1.1统一用户界面 55

3.1.4高级断点 56

3.1.5应用程序可显示的信息 56

3.1.2各种调试模式 56

3.1 .3 分布式调试 56

3.1.6远程调试 57

3.1.7低级访问 57

3.1.8调试器自动化 57

3.2 Visual Studio调试器的工作机制 57

3.2.1理解DebuggableAttribute类 58

3.2.5 生成配置及其对调试器的影响 59

3.2.4 Visual Studio调试器的作用 59

3.2.3 JIT编译器的作用 59

3.2.2 VB.NET语言编译器的作用 59

3.3 3种调试模式 62

3.3.1 IDE调试 63

3.3.2进程调试 63

3.3.3 JIT调试 66

3 .4 使用Visual Studio调试器IDE 68

3.4.1使用Immediate/Command窗口 68

3.4.2使用Output窗口 70

3.4.3使用Source窗口 71

3.4.4使用断点和Breakpoints窗口 72

3.4.5 使用Watch窗口 77

3.4.6使用QuickWatch窗口 78

3.4.7 使用Locals窗口 79

3.4.8 使用Autos窗口 80

3.4.9使用Me窗口 80

3.4.10使用Call Stack窗口 81

3.4.11使用Modules窗口 82

3.4.12使用Disassembly窗口 83

3.5.1 窗口行为 84

3.5 Visual Studio调试器的IDE问题 84

3.4.13 使用Threads窗口 84

3.4.14使用Running Documents窗口 84

3.5.2解释Chr(0) 85

3.5.3调试器的单步调试 86

3.6 小结 86

3.7轶闻趣事 86

第4章 使用Visual Studio.NET调试器 88

4.1 Visual Studio的准备工作 88

4.1.1 General调试选项 88

4.1.3 Just-In-Time调试选项 90

4.1.2 Edit and Continue选项 90

4.1.4 Native调试选项 91

4.1.5 Project默认选项(只适用于Visual Studio 2003) 91

4.1.6其他有用的Visual Studio设置 92

4.2解决方案的准备工作 92

4.2.1源文件的搜索路径 92

4.2.2符号文件的搜索路径 93

4.2.3解决方案的生成配置 94

4.3 项目准备 94

4.3.2项目的Start选项 95

4.3.1 项目的Build选项 95

4.3.3项目的Optimization选项 96

4.3.4项目的生成配置 97

4.4设置活动调试器进程 98

4.5调试生产应用程序 99

4.6调试符号管理 99

4.6.1应用程序的符号 99

4.6.2 Windows操作系统的符号 99

4.6.4符号服务器 100

4.6.3 Framework SDK的符号 100

4.7 改进JIT调试 101

4.8 处理没有Edit and Continue的情况 102

4.9调试公共中间语言 102

4.10理解代码优化 103

4.10.1优化是敌人 105

4.10.2代码优化测试 105

4.11 小结 106

4.12轶闻趣事 107

5.1.2使用Cordbg 108

5.1.1使用Cordbg的理由 108

5.1 Cordbg:控制台调试器 108

第5章其他调试工具 108

5.2 Dbgclr:GUI调试器 110

5.3 Ildasm:查看CIL 111

5.3.1 Visual Studio中的Ildasm 111

5.3.2从命令行调用Ildasm 111

5.3.3研究Ildasm代码 112

5.4性能监视器:查看性能信息 118

5.5 ADepends:查看程序集依赖关系 121

5.6.1 Visual Studio中的PermView 122

5.6 PermView:查看程序集权限 122

5.6.2从命令行调用PermView 123

5.6.3研究权限 123

5.7小结 127

5.8轶闻趣事 127

第6章跟踪和检测 130

6.1 有用的诊断信息 130

6.1.1应用程序的最终用户 130

6.1.4诊断的类别 131

6.1.3应用程序的开发团队 131

6.1.2应用程序的支持团队 131

6.1.5设计建议 132

6.2 VB.NET跟踪 132

6.2.1第1步:创建跟踪 133

6.2.2第2步:激活跟踪 136

6.2.3 第3步:监听跟踪 137

6.2.4第4步:编译时的跟踪控制 144

6.2.5第5步:运行时的跟踪控制 148

6.2.6有关跟踪的小结 150

6.3 使用Debug类 151

6.4使用定制的性能计数器 152

6.4.1创建定制的性能计数器 152

6.4.2操纵性能计数器的实例 153

6.5 小结 154

6.6轶闻趣事 154

第Ⅲ部分调试应用程序 159

第7章Windows Forms调试 159

7.1调试Windows Forms应用程序 159

7.1.2中断至应用程序 160

7.1.1 生成应用程序 160

7.1.4考查程序状态 161

7.1.3命中断点 161

7.1.5查找Bug 163

7.1.6棘手的调试情形 164

7.2调试其他的Windows Forms应用程序 166

7.2.1 调试类库 166

7.2.2调试Windows Forms控件 167

7.2.3 调试Visual Studio插件 169

7.4轶闻趣事 170

7.2.4调试控件设计器 170

7.3 小结 170

第8章Web服务调试 172

8.1 调试ASP.NET工作进程 172

8.2 调试准备 173

8.3使用Web浏览器进行调试 174

8.4 使用SOAP客户端进行调试 177

8.5调试客户端代理 179

8.7调试已部署的Web服务 180

8.6调试远程Web服务 180

8.8处理Web服务故障 181

8.8.1理解Web服务的异常信息流 181

8.8.2改进Web服务异常 182

8.8.3隐藏异常细节 185

8.8.4诱捕未经处理的异常 187

8.9 跟踪SOAP消息 188

8.9.1 构造SoapMonitor的SOAP扩展 188

8.9.2创建SoapMonitor属性 192

8.9.3 全部组合起来 193

8.9.4客户端的SOAP记录 195

8.10跟踪和检测 197

8.11 小结 197

8.12轶闻趣事 197

第9章 ASP.NET调试 199

9.1 IIS调试考虑事项 199

9.1.1 使用IIS 5.x进行同时调试 199

9.1.2使用IIS 6.0进行同时调试 200

9.1.3 IIS 5.x的进程回收 200

9.1.5 URLScan、IIS和DEBUG谓词 201

9.1.4 IIS 6.0中的进程回收 201

9.1.6 IIS身份验证 202

9.1.7多线程考虑事项 203

9.1.8生产调试 203

9.2 调试准备 203

9.2.1用户账户权限 203

9.2.2远程服务器调试 205

9.2.3 IE的配置 205

9.2.4应用程序配置 206

9.3 调试AspNetDebugDemo应用程序 208

9.3.1 ASP.NET错误处理 210

9.3.2不进行错误处理 210

9.3.3程序级的错误处理 211

9.3.4页面级错误处理 212

9.3.5 应用程序级错误处理 213

9.4 使用ASP.NET跟踪 215

9.4.1 页面级跟踪 215

9.4.2 应用程序级跟踪 217

9.5 小结 219

9.6轶闻趣事 220

10.1 调试ServiceAdmin服务 221

10.1.1 调试准备 221

第10章Windows服务调试 221

10.1.2使用进程附加进行调试 223

10.1.3从Visual Studio附加 223

10.1.4确保调试设置的正确性 224

10.1.5调试不需要安装的服务 224

10.1.6调试OnStart方法 225

10.2调试安装问题 226

10.4小结 227

10.3注意事项 227

10.5轶闻趣事 228

第11章 VB.Classic应用程序调试 229

11.1 VB.Classic版本 229

11.2托管代码和非托管代码 229

11.3 使用VB 6.0组件的VB.NET应用程序 230

11.3.1 VB.Classic的准备工作 231

11.3.2VB.NET的准备工作 232

11.3.3 调试第一个COM Interop应用程序 233

11.3.4调试技巧 233

11.3.5 使用VB 6.0调试器 234

11.4.1VB.NET的准备工作 235

11.4 使用VB.NET组件的VB 6.0应用程序 235

11.4.2 VB.Classic的准备工作 236

11.4.3 调试第二个COM Interop应用程序 237

11.5 克服COM版本控制问题 238

11.6小结 241

11.7轶闻趣事 241

第12章 SQL Server调试 243

12.1 调试需求 243

12.3 权限和sp_sdidebug 244

12.2调试组件的安装 244

12.4远程调试权限 245

12.5 使用Visual Studio直接进行调试 246

12.6使用Query Analyzer直接进行调试 248

12.7应用程序调试 248

12.7.1 应用程序调试安装 249

12.7.2从Visual Studio中进行应用程序调试 250

12.7.3从Visual Studio之外进行应用程序调试 252

12.8 SQL调试限制 253

12.9 理解SQL安全性 254

12.10小结 255

12.11 轶闻趣事 255

第Ⅳ部分调试常见情况 261

第13章错误处理和异常管理 261

13.1异常与错误 261

13.2错误处理需求 262

13.2.1最终用户需求 262

13.2.2操作支持需求 263

13.2.3 开发人员需求 264

13.2.4对异常进行日志记录 265

13.3异常和异常管理 266

13.3.1 System.Exception类 266

13.3.2 Try…Catch…Finally 267

13.3.3 Try…Catch…Finally机制 268

13.3.4 正确使用Try…Catch…Finally 269

13.3.5构建定制的异常 279

13.3.6调试异常 286

13.3.7处理未处理异常 289

13.3.8异常管理应用程序块 299

13.3.9分析异常行为 300

13.3.10异常示例解决方案 301

13.4 小结 301

13.5 轶闻趣事 302

第14章调试多线程应用程序 305

14.1 多线程基础 305

14.1.1 为什么多线程如此难 306

14.1.2多线程的优点 307

14.1.3 多线程的缺点 307

14.2多线程问题 308

14.2.1理解数据争用 309

14.2.2理解进程死锁 313

14.2.3理解进程活锁 318

14.2.4理解线程饿死 319

14.3 ThreadMonitor应用程序 322

14.4 WindowsForms中的多线程 326

14.5处理线程失败 330

14.5.1 处理线程异常 330

14.5.2终止托管线程 331

14.7轶闻趣事 332

14.6 小结 332

第15章调试分布式系统 334

15.1理解分布式应用程序 334

15.1.1 处理失败 334

15.1.2处理状态 337

15.1.3 理解消息的语义 338

15.1.4处理有漏洞的抽象 338

15.2远程调试简介 339

15.3 远程调试准备 339

15.3.1 安装远程调试 340

15.3.2只安装本机远程调试 341

15.3.3安装完全远程调试 342

15.3.4远程调试限制 342

15.4 HeartbeatMonitor应用程序 343

15.4.1 HeartbeatMonitor简介 343

15.4.2安装HeartbeatMonitor 344

15.4.3 调试HeartbeatMonitor 346

15.5监控分布式应用程序 348

15.6小结 350

15.7轶闻趣事 350