代码改变世界

一起谈.NET技术,VS调试Tip集结

2011-09-02 00:19  狼人:-)  阅读(216)  评论(0编辑  收藏  举报

  在VSX群里陈锋,录制了几个调试的视频,感觉挺有用的。调试其实大家都知道怎么去做。但是不一定对我开发IDE给我提供的快捷方式全部了解。在这里我对这些做一些集结,这里也不是很全,希望大家在后面补上,让楼主也张张见识,哈哈。

  1:DbgView和vs output窗口:

  对于我在代码中写有Debug输出的再vs调试状态下我们可以再vs输出窗口看见,打印一些我们所关心的变量数据等。当我们的程序在运行的时候就可以用DbgView获取我们的打印。

  2:断点:(这个是大家所熟悉的):

  vs中给我们提供了Condition,Hit Count、Filter、when Hit、Edit lab、Export集中操作,这里就不多说,大家都知道。

  提出一个在多个进程调试的时候,我们可以用Filter过滤其他进程专心于一个进程中:

image

  条件断点不仅可以调试满足条件情况,还可以调试某个表达式的值改变时。比如某个变量i,我只关心他在哪里改变,如果改变就断点停止。

image

  3:Debugger:

  为我们提供了操作系统的借口,启用与调试器的通信。具有以下几个重要方法:

  1:Break:发出信号表示连接调试器的断点。

  2:IsLogging:检查连接的调试器是否已启用日志记录。

  3:Launch:启动调试器并将其连接到进程。

  4:Log:发送连接调试器的消息。

  5:IsAttached(属性):获取一个值,它指示调试器是否已连接到进程。

  4:DataTips:image

  它提供了我们在调试时候修改变量的值。

  5:异常的处理决策:

image

  在Debug->Exception..,在这里我们可以设置异常的抛出决策。有时对于我们的已经被try catch的代码块,我需要找到异常块,就可以让va扑捉,看异常处停住。

  6:Debug attribute:

  vs中给我们提供了几个Attribte:DebuggerBrowsable,DebuggerDisplay等,便于我们的调试。对于我们调试复杂对象时非常有用。

  7: DebuggerVisualizers:

  我们想看一个DataTable的DebuggerVisualizers:

image

image

  大家一定很熟悉,其实这个是我们可以自定义的(实现Microsoft.VisualStudio.DebuggerVisualizers下的DialogDebuggerVisualizer抽象类),请参见Demonicsoft老兄的自定义Visual Studio调试窗口。在这个的启发下我们可以自定以一些常用的DebuggerVisualizers,我觉得比如我们的xml操作,在调试的时候我们希望看到该节点及其子节点的结构,比照我们的程序运行。还有比如winform或者wpf的界面绘图,在某个操作的时候我们肯希望此时就看见我们的form或者图形的绘制结果等等。

  最后贴上视频下载http://fengchen.wordpress.com.cn/2010/11/17/netappdbgsumup/,希望大家也多顶顶  。在本随笔中未曾提到的Tips,希望大家也提出来。