Visual Studio Debugger七个鲜为人知的小功能

 更新时间:2017年06月30日 15:04:38   作者:永远薰薰  
这篇文章主要为大家详细介绍了Visual Studio Debugger七个鲜为人知的小功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Visual Studio debugger是一个很棒的调试工具,可以帮助程序猿们快速地发现和解决问题。这里给大家简单介绍一下VS调试工具中的七个鲜为人知的小功能。

1. 一键跳转到指定语句

调试过程中经常需要拖拽黄箭头,使特定语句执行或者不执行。常规方法就是使用鼠标直接拖拽。

在Visual Studio 2017 15.3预览版中,有一个更简单地跳转到目标行的方法:在目标行盘旋鼠标指针,出现绿色竖线右箭头图标后,按住CTRL后鼠标左键点击,就把调试黄箭头移过去了,再点击调试下一步或者F5就直接在指定行运行了。

2. 添加指定实例值的断点

有时候某个实例的属性值会莫名其妙的变化,当我们需要知道为什么变化的时候,会在属性代码中添加断点,但是这会对所有实例都生效。

在调试的时候,可以使用Make Object ID和Conditional Breakpoint功能去添加指定实例的断点,具体如下:

首先我定义了一个类,并初始化了两个对象,更改PointX的值,想要添加实例a的PointX值的改变断点

在调试过程中,右击实例a选择Make Object ID

这时实例a被赋值到$1中,在要添加的断点出右击选择Conditions…

添加$1 == this代码后,再运行程序,则在实例a属性改变的时候断点生效,实例b属性改变的时候不生效了。

注意Make Object ID记录的是内存中对象的地址,下次调试的时候就改变了,需要重新设置。

3. 重新附加进程

Attach to Process是大家经常需要用的功能,Visual Studio 2017中有一个新的选项叫做Reattach to Process,可以方便大家重新附加到最近一次附加到的进程上。

先附加到一个进程上,点击Stop Debugging,然后再点击Debug就能看到里面的Reattach to Process选项了。

4. 显示所有的线程

在调试过程中,调试工具栏中有一个新的选项叫做:Show Threads in Source。点击后即可在有线程停止的代码行前显示一个图标,鼠标停留在图标上显示线程,右击图标可以显示可用操作。

注意这个功能可能影响调试效率,如果不需要的话建议默认关闭。

5. 临时禁用指定断点

当进行多线程调试的时候,可以利用Disable Breakpoint功能临时禁用指定断点,防止其它线程由于断点中断,影响当前线程的调试工作。

6. 查看所有线程的调用栈

调试过程中,在Command Window中输入”Debug.ListCallStack -AllThreads”,即可看到所有线程的调用栈。

也可以用WinDBG命令”~*k”:

7. 使用无负面效果的方法评估

有时候可能需要在调试Watch窗口中查看一个方法的返回值,但是真正执行这个方法的时候可能会产生负面效果,这里可以在Watch窗口输入的时候添加”, nse”来避免负面效果,是”No Side Effects”的缩写。例子如下:

刚开始Add执行了六次,所以testList总数是6,

现在想查看Add当前执行的返回值,可以在Watch窗口输入Add(1),但是这会产生负影响,改变testList的值为7,

因此如果想不影响testList的原始值,则需要加上”, nse”,如下显示是8,但是testList原始值未变还是7:

介绍到此为止,有你喜欢的调试小功能么,欢迎来评论~

PS:只是介绍,不喜勿喷。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Asp.net配合easyui实现返回json数据实例

    Asp.net配合easyui实现返回json数据实例

    这篇文章主要介绍了Asp.net配合easyui实现返回json数据的方法,实例分析了Asp.net配合easyui返回json数据时出现的问题及解决方法,非常具有实用价值的技巧,需要的朋友可以参考下
    2014-12-12
  • 关于.NET Framework中的设计模式--应用策略模式为List排序

    关于.NET Framework中的设计模式--应用策略模式为List排序

    本篇文章,小编将为大家介绍关于.NET Framework中的设计模式--应用策略模式为List排序,有需要的朋友可以参考一下
    2013-04-04
  • ASP.NET输出PNG图片时出现GDI+一般性错误的解决方法

    ASP.NET输出PNG图片时出现GDI+一般性错误的解决方法

    偶原来的用ASP.NET生成验证码图片时用的是JPG格式,今天想把它改成PNG格式的,结果就出现GDI+一般性错误,查了N久资料,才发现解决的办法,对分享此解决办法的网友深表感谢
    2009-01-01
  • Global.cs中自动获取未处理的异常

    Global.cs中自动获取未处理的异常

    在一个项目中为了能捕获异常最常用的方法就是try{}catch{}了,但是事实上并不可能将所有的异常考虑到位。因此有人就想除了被try{}catch{}捕获的异常其余未被处理的异常均由全局应用程序也就是Global来捕获处理
    2011-12-12
  • .NET Core使用SkiaSharp实现快速生成二维码

    .NET Core使用SkiaSharp实现快速生成二维码

    这篇文章主要为大家详细介绍了.NET Core如何使用SkiaSharp实现快速生成二维码,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • asp.net TripleDES加密、解密算法

    asp.net TripleDES加密、解密算法

    加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。
    2008-08-08
  • .net core高吞吐远程方法如何调用组件XRPC详解

    .net core高吞吐远程方法如何调用组件XRPC详解

    这篇文章主要给大家介绍了关于.net core高吞吐远程方法如何调用组件XRPC的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • ASP.NET Core Controller与IOC结合问题整理

    ASP.NET Core Controller与IOC结合问题整理

    在本篇文章里小编给大家整理了一篇关于ASP.NET Core Controller与IOC结合问题整理内容,有需要的朋友们可以学习下。
    2021-01-01
  • ASP.NET在线文本编辑控件的使用(第6节)

    ASP.NET在线文本编辑控件的使用(第6节)

    这篇文章主要介绍了ASP.NET在线文本编辑控件的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • Asp.Net在线预览Word文档的解决方案与思路详解

    Asp.Net在线预览Word文档的解决方案与思路详解

    这篇文章主要介绍了Asp.Net在线预览Word文档的解决方案与思路,大致思路是先将Word文档转换Html,再预览Html,需要注意电脑安装Office,需要的朋友可以参考下
    2022-04-04

最新评论