在软件开发过程中,调试是一个必不可少的重要内容,它是保证一个程序正确无误的有效手段。为了强化您对程序的调试能力,Visual Studio.NET和.NET Framework提供了许多调试工具。本书从配置Visual Studio.NET开发环境开始,全面介绍了Visual Basic.NET语言下的调试,异常、线程和进程, 日志记录和程序化调试器的交互, Web应用程序的调试,以及一些高级的调试技巧。 \r\n 本书主要针对的是Visual Studio开发人员,但它对使用.NET Framework SDK所提供的命令行工具的开发人员也很有帮助。
第1章 配置Visual Studio开发环境\r\n\r\n1.1 运行库、SDK和调试器\r\n1.1.1 Visual Studio.NET的版本\r\n1.1.2 Web服务器\r\n1.1.3 Web Matrix\r\n1.2 配置位置\r\n1.2.1 Visual Studio.NET配置\r\n1.2.2 解决方案配置文件\r\n1.2.3 项目配置文件\r\n1.3 Visual Studio.NET设置\r\n1.3.1 标准配置文件\r\n1.3.2 工具栏\r\n1.3.3 专业化选项\r\n1.4 有效的文件处理\r\n1.4.1 编辑二进制文件\r\n1.4.2 最近使用的列表\r\n1.5 管理文件中的文本\r\n1.5.1 查找和替换\r\n1.5.2 书签\r\n1.5.3 大纲视图和指令\r\n1.5.4 更加完善的剪切和粘贴\r\n1.6 查看与项目相关的窗口\r\n1.6.1 解决方案的管理\r\n1.6.2 查看更多代码\r\n1.6.3 进一步利用任务列表\r\n1.6.4 查看外部信息\r\n1.7 配置项目\r\n1.8 帮助菜单\r\n1. 8.1 筛选器(Filter)\r\n1.8.2 同步帮助视图\r\n1.8.3 引用和导入\r\n1.9 小结\r\n\r\n第2章 Visual Studio环境下的调试\r\n\r\n2.1 启动调试器\r\n2.1.1 Debug菜单\r\n2.1.2 配置调试器启动项目\r\n2.1.3 动态调试\r\n2.2 断点\r\n2.2.1 设置断点\r\n2.2.2 配置断点\r\n2.2.3 微调新断点\r\n2.2.4 控制断点\r\n2.3 查看结果\r\n2.3.1 显示详细的调试信息\r\n2.3.2 Locals\r\n2.3.3 Autos\r\n2.3.4 Me和This窗口\r\n2.3.5 Watch\r\n2.3.6 Quick Watch\r\n2.4 VB.NET的表达式\r\n2.4.1 变量,函数和属性\r\n2.4.2 结构和类\r\n2.4.3 属性和运算符限制\r\n2.4.4 无效的关键字\r\n2.4.5 管理较大的数据成员\r\n2.5 调用堆栈\r\n2.6 模块\r\n2.6.1 模块上下文菜单\r\n2.6.2 模块位置\r\n2.7 小结\r\n\r\n第3章 异常、线程和进程\r\n\r\n3.1 调试异常\r\n3.1.1 回顾异常\r\n3.1.2 在Visual Studio.NET中管理异常\r\n3.1.3 特有异常的管理\r\n3.1.4 非托管异常\r\n3.1.5 高级异常管理\r\n3.1.6 Exception类\r\n3.2 调试线程\r\n3.2.1 管理线程:线程间切换\r\n3.2.2 管理线程:冻结和解冻\r\n3.2.3 线程和.NET基本构架\r\n3.3 调试进程\r\n3.3.1 解决方案的角色\r\n3.3.2 附加到运行进程\r\n3.3.3 进程调试和源代码\r\n3.3.4 从Visual Studio中附加\r\n3.3.5 决定调试哪个进程\r\n3.3.6 附加到老式应用程序\r\n3.4 小结\r\n\r\n第4章 日志记录与程序化的调试器交互\r\n\r\n4.1 Windows事件日志\r\n4.1.1 在Server Explorer中浏览事件日志\r\n4.1.2 事件日志的示例应用程序\r\n4.1.3 写事件\r\n4.1.4 管理事件日志\r\n4.1.5 安全约束\r\n4.1.6 读取事件日志条目\r\n4.1.7 接收新日志条目的通知\r\n4.1.8 事件日志基础结构与Windows\r\n4.2 Debug类和Trace类\r\n4.2.1 Debug/Trace设置\r\n4.2.2 格式化日志输出\r\n4.2.3 关闭跟踪侦听器\r\n4.2.4 开发自定义的TraceListener\r\n4.3 运行时调试器配置\r\n4.4 开关\r\n4.4.1 BooleanSwitch\r\n4.4.2 TraceSwitch\r\n4.4.3 自定义开关\r\n4.5 程序性的调试器交互\r\n4.5.1 控制调试器\r\n4.5.2 有条件的中断\r\n4.6 记录日志到调试器\r\n4.6.1 DefaultCategory字段\r\n4.6.2 对性能的影响\r\n4.7 测试调试器的状态\r\n4.8 小结\r\n\r\n第5章 调试Web应用程序\r\n\r\n5.1 调试ASP.NET Web应用程序\r\n5.1.1 创建一个Web应用程序的例子\r\n5.1.2 在Visual Studio.NET中调试\r\n5.1.3 利用SDK调试器进行调试\r\n5.2 调试SQL存储过程\r\n5.2.1 修改代码\r\n5.2.2 创建存储过程\r\n5.2.3 在Visual Studio.NET中调试存储过程\r\n5.3 调试客户端脚本\r\n5.3.1 创建HTML页面\r\n5.3.2 调试客户端脚本\r\n5.4 ASP.NET跟踪和调试输出\r\n5.4.1 TraceContext类\r\n5.4.2 在页面级启用跟踪\r\n5.4.3 在应用程序级启用跟踪\r\n5.5 ASP.NET Web服务的调试\r\n5.5.1 创建Web服务\r\n5.5.2 用Visual Studio.NET调试Web服务\r\n5.5.3 使用SDK调试器调试Web服务\r\n5.5.4 使用Visual Studio.NET从Windows Forms客户程序中调试Web服务\r\n5.6 并行调试ASP和ASP.NET\r\n5.7 ASP.NET服务器控件的调试\r\n5.7.1 创建一个驻留服务器控件的客户程序\r\n5.7.2 ASP.NET服务器控件的调试\r\n5.8 IE中的Windows Forms控件\r\n5.8.1 创建一个Windows Forms控件\r\n5.8.2 创建一个HTML页面\r\n5.8.3 配置虚拟目录\r\n5.8.4 代码访问权限的配置\r\n5.8.5 运行控件\r\n5.8.6 Windows Forms控件的调试\r\n5.9 小结\r\n\r\n第6章 高级调试\r\n\r\n6.1 调试远程应用程序\r\n6.1. 1 应用程序域\r\n6.1.2 应用程序设置\r\n6.1.3 启动每解决方案调试\r\n6.1.4 WXClient和WXServer的每项目调试\r\n6.1.5 无解决方案的调试\r\n6.1.6 更好的客户-服务器调试\r\n6.2 线程和VB6的互操作\r\n6.2.1 VB6和VB.NET的互操作示例\r\n6.2.2 托管代码(VB.NET)和非托管代码(VB6)的调试\r\n6.3 从VB.NET中调试非托管的C++代码\r\n6.3.1 WXAppDomainDemo示例\r\n6.3.2 WXBelowTheSurface\r\n6.3.3 XML数据格式\r\n6.3.4 .NET串行化\r\n6.3.5 WXAppDomain\r\n6.3.6 从托管代码到非托管代码的调试\r\n6.3.7 从非托管代码到托管代码的调试\r\n6.4 小结\r\n\r\n附录A 应用程序配置文件\r\nA.1 配置文件位置\r\nA.2 创建应用程序配置文件\r\n\r\n附录B 调试非托管代码\r\nB.1 提高断点可用性\r\nB.2 Data断点\r\nB.3 非托管代码与Warch窗口\r\nB.4 非托管代码与Memory窗口\r\nB.5 反汇编与寄存器\r\nB.6 添加用户自定义Win32异常\r\n\r\n附录C 支持、勘误表和代码下载\r\nC.1 如何下载本书的示例代码\r\nC.2 勘误表\r\nC.3 E-Mail支持\r\nC.4 p2p.wrox.com站点
为了提高工作效率,开发人员必须非常熟悉开发环境及开发工具。Visual Studio和.NET Framework提供了许多可以调试错误的工具和选项。本书旨在让您熟悉这些调试工具,告诉您如何使用及在什么地方使用它们。
本书读者对象
本书适合所有的VB开发人员。软件开发不可能一蹴而就,对所有代码必须不断进行调试。事实上,很多开发人员在调试代码上花费了大量时间,因此即使是一些小技巧和提示,也可能为您节省很多时间。
本书假设您主要使用Microsoft的集成开发环境(如Visual Studio的某个版本或Visual Basic.NET标准版)来开发Visual Basic应用程序。幸运的是,由这些版本的IDE提供的调试功能的区别不是很大。
虽然本书主要针对Visual Studio开发人员,但它还包含了很多非常有用的信息,对使用.NET Framework SDK所提供的命令行工具的开发人员很有帮助。例如,本书讲述了.NET Framework中的Debug和Trace类。
本书主要内容
本书对Visual Studio .NET提供的调试功能进行了详尽的阐述。
第1章——配置Visual Studio开发环境
Visual Studio.NET是一个可灵活配置的开发环境,本章将详细讲述Visual Studio.NET中与调试相关的所有特性,以及如何设置它们以实现高效率的调试。
第2章——Visual Studio环境下的调试
本章将讲述Visual Studio中的实际调试:设置断点、运行调试程序,以及给断点求值。我们还将讲述可用来查看托管应用程序的各类信息的一系列窗口。
第3章——异常、线程和进程
初看起来,异常只与已发布的程序代码相关,但它也是我们进行调试操作的得力助手。我们可以配置Visual Studio,以便令它在抛出某个异常时触发调试器。通过链接的内部异常,有可能利用一个一直收集相关数据的应用程序来跟踪异常的路径。
多线程应用程序的调试比较麻烦,因而Visual Studio.NET提供了多种特性来帮助实现在不同线程之间的导航,并将问题分离开来。最后,本章还要讲述调试运行的进程,这对于调试不能从Visual Studio中启动或处于生产环境中的应用程序(如Windows服务)非常重要。
第4章——日志记录和程序化的调试器交互
收集和保存应用程序在各个阶段下的状态的信息对捕获错误非常重要。这种调试方法对于已部署的程序代码非常重要,因为通常都不希望在生产系统上安装开发工具,或者在实际应用的应用程序中附加调试器。但通过使用日志记录技术,即便在限制最严格的环境中,也可以使调试应用程序的工作变得非常简单。
第5章——调试Web应用程序
本章将专门讲述如何调试ASP.NET运行库中提供的各种应用程序。我们将介绍如何设置Visual Studio环境来调试各种类型的Web应用程序,以及如何跟踪ASP页面。本章还将讨论如何调试SQL Server代码和Internet Explorer中提供的Windows Forms控件。
第6章——高级调试
本章介绍了一些实际的调试情况,包括远程应用程序,将VB.NET转换为VB6代码进行调试,以及将VB.NET转换为非托管C++代码进行调试等操作。这些知识有助于我们了解客户-服务器端的调试、多线程调试,和混合模式的调试。
使用本书的条件
只要使用文本编辑器或者命令行工具(.NET Framework SDK免费携带的)就可开发Visual Basic.NET应用程序,但是严肃的开发人员都应该使用下列任意一种集成开发环境:
Visual Basic.NET Standard Edition
Visual Studio.NET Professional Edition
Visual Studio.NET Enterprise Developer Edition
Visual Studio.NET Enterprise Architect Edition
Visual Studio.NET Academic Edition
本书的所有示例适合采用Visual Studio.NET的各种版本; 但Visual Basic.NET标准版总存在一定的使用限制,也就是说本书中的有些代码不一定适用。其主要限制是:您不能自己开发类库——顾名思义,您只能开发Visual Basic.NET代码。
本书中有一个示例涉及到和VB6应用程序之间的互操作,如果您愿意从头构建该示例,那么就需要安装Visual Basic 6 IDE。
如果需要调试Web应用程序和一些远程应用程序, 您需要安装带有Microsoft的Internet Information Server(IIS)的操作系统。 以下系统均可:Windows XP Professional、Windows 2000(各种版本),和.NET Server(各种版本)。可以在Windows XP家庭版上安装Visual Studio.NET,但是由于它不支持IIS服务,因而不能开发Web应用程序和Web服务。