【原文地址】 VS 2010 Debugger Improvements (BreakPoints, DataTips, Import/Export)
【原文发表日期】 Wednesday, April 21, 2010 4:43 PM

这是我针对VS 2010 和 .NET 4所撰写的 贴子系列 的第二十一篇。今天的博客讨论VS 2010调试器可用性方面若干很棒的改进。

VS 2010调试器有成堆的新功能。象Intellitrace(也称为历史调试),新的平行/多线程调试功能 , 以及 转储(dump)调试支持 这样的特性在大家谈论这个版本中调试方面的改进时,往往得到更多的(也是非常应得 的)关注。我会在将来的博客中示范如何利用这些新的特性。

但在今天的贴子中,我想我先讨论包括在VS 2010发布中的几个小的,但非常棒的调试器可用性方面的改进,我想你会发现它们非常地有用。


断点标签(Breakpoint Labels)

VS 2010包含了一些新支持,以便更好地管理调试器断点,一个特别有用的特性叫做“断点标签”,它促成了对一个项目中或跨越解决方案的断点的更好的分组和过 滤功能。

在以前的Visual Studio版本中,你只能把每一个调试器断点当作单独一项来管理。单独管理每个断点会很痛苦,特别是在大项目中,在你想要维护断点的“逻辑组”,你可以 根据你正在调试的东西启用或中止它们的情形下。使用VS 2010中新的“断点标签”特性,你现在可以对这些断点“分组”命名,将它们作为一个单元来管理。

使用标签将多个断点组合在一起

下面是Visual Studio 2010中断点窗口的一个屏幕截图,它列出了我解决方案(是ASP.NET MVC 2代码库)中所有的断点:

上面列表中的第一个和最后一个断点在控制器(Controller)实例被 ASP.NET MVC 框架创建或释放时会断入调试器。

使用VS 2010, 我现在可以选择这2个断点,右击,然后选择新的“编辑标签。。。”菜单命令,给它们一个常见的标签/名称(使之方便查询和管理):

下面是当我选择“编辑标签。。。”命令时出现的对话框。我们可以用它来为我们的断点创建 一个新的字符串标签,或者选择一个我们已经定义好的现成标签。在这个情形中,我们将创建一个名为“Lifetime Management(生命期管理)”的新标签,描述这2个断点涵盖的范围:

当我们点击OK按钮时,我们的2个被选中的断点就被归于新创建的“Lifetime Management”标签之下了:

按标签对断点进行过滤/排序

我们可以使用“Search (查询)” 组合框,快速地按标签对断点进行过滤和排序。在下面,我们只显示了那些属于“Lifetime Management” 标签下的断点:

按标签启用或中止断点

我们还可以按标签群启用或中止断点。我们只要按标签群过滤,按Ctrl-A 选择所有的相关断点,然后一个点击就可以启用或中止所有的断点:

导入/导出断点

VS 2010现在支持将断点导入或导出到XML文件,然后你可以将文件传给另一个开发人员,附加到缺陷报告中,或者只是之后重新装载到IDE中去。

如果只导出部分断点,你可以用特定的标签作过滤,然后在断点窗口点击“导出断点”:

在上面我将我的断点列表做了过滤,只导出2个特定的断点(特定于我正在追寻的一个缺陷)。我可以将这些断点导出到一个XML文件,然后将其附加到一 个缺陷报告或email,允许另一个开发人员在另一台机器上轻松地将调试器配置到正确的状态,开始调查其究竟。

钉住的数据提示(Pinned DataTips)

Visual Studio 2010还包含一些新的“数据提示钉住”特性,允许你在调试器中时更好地查看和跟踪变量和表达式的值。

只要在调试器中,(将鼠标)悬浮于变量或表达式之上,显示其数据提示(DataTip),那是个显示其值的小工具提示(tooltip),然后点击 上面的新的“图钉”按钮,使数据提示不消失:

你可以在屏幕上“钉住”任意数目的数据提示。除了钉住顶层的变量外,你还可以钻入变量的子属性,将它们也钉住。

在下面,我“钉住”了三个变量: “category”, “Request.RawUrl” 和 “Request.LogonUserIdentity.Name”,注意后面2个变量是 “Request”对象的子属性。

将注释与钉住的数据提示相关联

(将鼠标)悬浮于一个钉住的数据提示之上,会在调试器中显示一些额外的界面:

点击这个界面上最下面的注释按钮,会展延该数据提示, 允许你添加相关注释:

这极大地方便了附加和跟踪调试备注:

钉住的数据提示可以跨越调试会话(Session)和Visual Studio会话(Session)

钉住的数据提示可以跨越多个调试器会话来使用。这意味着如果你中止了调试器,做了代码改动,然后重新编译,开始一个新的调试会话时,任何钉住的数据 提示还在那里,以及你附加的任何注释。

钉住的数据提示还可以跨越多个Visual Studio会话来使用。这意味着,如果你关闭了项目,退出了Visual Studio,之后你又将项目打开,任何钉住的数据提示还在那里,以及你附加的任何注释。

查看上个调试会话中的数值(非常棒的代码编辑器特性)

有过多少次,你中止了调试器,结果又回到你的代码,气恼地说,

$#@! 哎,那个变量的数值是什么来着?

钉住的数据提示有一个很好的属性,就是它们记住“调试器会话”中最后那个数值,你可以在VB/C# 代码器中查看这些值,即使调试器不在运行 了

当你在代码编辑器中,调试器不在运行时,数据提示默认是隐藏的。但在代码编辑器的左手的边缘,对每一个你先前设置好的数据提示,你都可以找到一个钉 子:

将你的鼠标悬浮于一个钉住的数据提示之上时,会导致那个钉子显示在屏幕上。在下面,你可以看到当我悬浮于编辑器中第一个钉子时,它会显示我们上个调 试会话中“Request”对象数据提示的值以及我们附加的相关注释:

当你在代码编辑模式和调试模式之间切换时,这可以极大地方便记录状态和条件。

导入/导出钉住的数据提示

就象我在本贴前面提到的,钉住的数据提示默认是跨越 Visual Studio 会话保存的(你不用做什么就可以)。

VS 2010现在还支持将钉住的数据提示导入或导出到XML文件,然后你可以将文件传给另一个开发人员,附加到缺陷报告中,或者只是之后重新装载到IDE中 去。

连同新的断点导入/导出支持,这极大地方便了多个开发人员分享调试器配置,并且做跨越调试会话的合作。

结语

Visual Studio 2010包含了一堆很棒的新调试器特性,有大的,也有小的。

今天的博客分享了调试器可用性方面一些很棒的改进。上面所有的特性在Visual Studio 2010专业版都有支持(其中的钉住的数据提示(Pinned DataTip)特性在免费的Visual Studio 2010 Express版中也有支持)。

在将来的博客中,我还会讨论一些“非常大的(big big)”新调试特性,象 Intellitrace, 平行/多线程调试,转储文件(dump file)分析等。

希望本文对你有所帮助,

Scott

【附注】 【除了写博客外,我现在还使用Twitter发短贴和共享链接。请通过 twitter.com/scottgu 跟 随我。

标签: ASP.NET , Visual Studio , .NET

更多相关文章

  1. python编程小提示
  2. PyQt中的各种提示框
  3. linux socket 程序被ctrl+c或者异常终止,再次起程序时提示该端口
  4. 如何更改提示颜色?
  5. linux内核日志 dmesg 出现的提示及含意
  6. Ubuntu安装软件提示boot空间不足
  7. linux wget下载、断点续传
  8. 装完Centos7提示Initial setup of CentOS Linux 7 (core)
  9. 在fc8安装TP-Linux WN3210G+USB无线网卡,提示wlan0 No scan resul

随机推荐

  1. htm5 页面跳转在android出现的奇葩问题
  2. 自动化测试MonkeyRunner
  3. 获取当前应用的版本号和当前android系统
  4. 认识Activity,创建第一个android应用
  5. 浅论Android网络请求库——android-async
  6. Android和WebOS上使用debian
  7. activity在锁屏时候的生命周期
  8. Android(安卓)架构解析及驱动 键盘篇
  9. android 属性文件default.prop与adb
  10. Android(安卓)UI中的style和theme以及Ale