VS调试Tip集结

简介:

  在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等,便于我们的调试。对于我们调试复杂对象时非常有用。在院子里朱祁林老兄已经翻译了一篇Few Tips on Customizing Debugging Window View in Visual Studio的文章就是介绍这些的,所以我不准备多写了,直接原文

Visual Studio自定义调试窗体两个小技巧

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,希望大家也提出来。


本文转自破狼博客园博客,原文链接:http://www.cnblogs.com/whitewolf/archive/2010/12/13/1904115.html,如需转载请自行联系原作者

目录
相关文章
|
3月前
|
API
【鸿蒙软件开发】进度条Progress
【鸿蒙软件开发】进度条Progress
|
3月前
|
小程序 JavaScript Java
基于微信小程序的竞赛管理平台设计与实现(开题报告+任务书+源码+lw+ppt +部署文档+讲解)
基于微信小程序的竞赛管理平台设计与实现(开题报告+任务书+源码+lw+ppt +部署文档+讲解)
92 1
|
3月前
|
小程序
基于微信小程序的大学生党务学习平台设计与实现(源码+lw+部署文档+讲解等)
基于微信小程序的大学生党务学习平台设计与实现(源码+lw+部署文档+讲解等)
18 0
基于微信小程序的大学生党务学习平台设计与实现(源码+lw+部署文档+讲解等)
|
5月前
|
小程序 前端开发 Java
【开题报告】基于uniapp的在线考试小程序的设计与实现
【开题报告】基于uniapp的在线考试小程序的设计与实现
|
6月前
|
小程序 Android开发 数据安全/隐私保护
【 uniapp - 黑马优购 | 发布】详讲如何发布一个小程序
【 uniapp - 黑马优购 | 发布】详讲如何发布一个小程序
70 0
|
8月前
|
算法 NoSQL 区块链
Avatar阿凡达众筹模式项目开发合约源代码详情
def contribute(): data = request.get_json() campaign_name = data['name'] contribution_amount = data['amount']
|
10月前
|
JavaScript 测试技术 数据安全/隐私保护
【创意】巧用摩斯密码作为调试工具的入口|vConsole 在线上的2种使用方式
【创意】巧用摩斯密码作为调试工具的入口|vConsole 在线上的2种使用方式
102 0
麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo
上一篇,通过研究,可以定位到函数,本篇进一步优化,没有行数,程序较为复杂的时候,就无法定位,所以进一步定位。   本篇做了qBreakpad的研究,但是没有成功,过程也还是填出来,后来突然注意到gdb出现行数的方法,并通过了几轮测试以及实战,确实可以定位到行数,所以为了大家方便,把国企麒麟上的Qt崩溃方法分享出来。   本篇文章比较长,就不分篇了,同时还做了专项测试。
麒麟系统开发笔记(十一):在国产麒麟系统上使用gdb定位崩溃异常方法流程进阶定位代码行数及专项测试Demo
|
Web App开发 缓存 小程序
小程序云开发和调试(一)|学习笔记
快速学习小程序云开发和调试(一)
134 0
小程序云开发和调试(一)|学习笔记
|
小程序 Serverless 开发者
小程序云开发和调试(二)|学习笔记
快速学习小程序云开发和调试(二)
95 0
小程序云开发和调试(二)|学习笔记