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:只是介绍,不喜勿喷。

[原创文章,转载请注明出处,仅供学习研究之用,如有错误请留言,如觉得不错请推荐,谢谢支持]

[原文:http://www.cnblogs.com/lavender000/p/7098321.html,来自永远薰薰]

时间: 2024-11-11 12:19:39

Visual Studio Debugger中七个鲜为人知的小功能的相关文章

Visual Studio 2010 中的 Web 开发

概述 Microsoft Visual Studio 2010 为 ASP.NET Web 应用程序的开发提供非常多新的功能.这些新功能旨在帮助开发者高速方便地创建和部署质量高且功能全的 Web 应用程序. 眼下,Visual Studio 2010 支持 HTML 代码片段.利用这些代码片段,能够生成高质量的代码.Visual Studio 中附带了非常多代码片段,开发者也能够创建自己的代码片段. Visual Studio 2010 提供的还有一个新功能是转换 web.config 文件,以

Visual Studio Code中文文档

Visual Studio Code中文文档 Visual Studio Code是一个轻量级但是十分强大的源代码编辑器,重要的是它在Windows, OS X 和Linux操作系统的桌面上均可运行.Visual Studio Code内置了对JavaScript, TypeScript和Node.js语言的支持,并且为其他语言如C++, C#, Python, PHP等提供了丰富的扩展库和运行时. 一.Visual Studio Code实际应用(一)快速强大的编码功能:    能够快速捕捉程

Visual Studio 2015中的常用调试技巧分享

.NET 技术交流群:337901356 欢迎您的加入! 为什么要学习调试? 调试(Debug)是作为一个程序员必须要学会的东西,学会调试可以极大的提高开发效率,排错时间,很多人不喜欢调试,但我认为这是一个很不可取的选择,调试的时候能让我们看到程序的执行顺序.步骤以及过程等,调试的时候可以让我们监视代码中各个变量的情况,调试让我们可以让我们快速的找出错误的根源.可见调试是至关重要的. 要学习好怎么调试,那么必须去了解VS 这个IDE中的各种调试技巧,下面我就讲讲我所经常在调试程序中所用到的技巧.

微软移除Visual Studio 2015中的UML

微软已经在Visual Studio 2015中移除了UML(Unified Modeling Language,统一建模语言),原因是该语言使用率过低.因此微软要优化产品结构,把好钢用在刀刃上. Visual Studio高级产品经理Jean-Marc Prieur表示,移除UML是一个艰难的决定,毕竟这是软件的一个特定.但由于使用UML的用户量实在是越来越少,因此公司必须确保将资源投入到能提供最大客户价值的特性上. 对于那“1%”(代名词,并非确切数值)的用户,微软表示可以转战VS2015或

ASP.NET5之客户端开发:Grunt和Gulp构建工具在Visual Studio 2015中的高效的应用

Grunt和Gulp是Javascript世界里的用来做自动压缩.Typescript编译.代码质量lint工具.css预处理器的构建工具,它帮助开发者处理客户端开发中的一些烦操重复性的工作.Grunt和Gulp都在Visual studio 2015中得到支持.ASP.NET 项目模板默认使用Gulp. Grunt和Gulp Grunt和Gulp有什么区别?Gulp虽然是稍微晚一点登场的,但是它因crisp performance和优雅的语法受到欢迎.与Grunt不同,Grunt往往在硬盘上是

Visual Studio工具栏中无法选择调试设备

在Visual Studio工具栏中,默认显示已经识别的设备.用户可以从中选择对应的设备,进行调试和部署App.但是由于误操作,可能导致该选项丢失.这时,用户需要重新设置,以恢复该选项.操作方式如下: (1)右击菜单右侧的空白处,从弹出的菜单中,勾选“标准”选项,以显示“标准”工具栏. (2)在标准工具栏的右侧,单击向下的三角形按钮,在弹出的菜单中,单击“添加和移除按钮”命令,再勾选“解决方案配置”.“解决方案平台”.“启动项目”.“调试目标”选项. 这样就可以恢复原有的选项了.

在Visual Studio 2013 中使用C++单元测试

本文主要介绍在Visual Studio 2013中对代码进行单元测试的方法,包含了两方面的内容:对已有的Dll文件进行单元测试,以及对已有的源文件进行单元测试. 1. VS2013对DLL文件的单元测试 对已有的dll文件进行单元测试. 首先,新建一个待测试的DLL项目CalculationDll,共包含3个文件: CalculationDll.cpp.CalculationDll.h.CalculationDll.def. 然后,新建了一个单元测试项目CalculationTest. 继而,

Visual Studio 2015中快捷键总结

今天总结了Visual Studio工具中常用的快捷键,可供平时参考查阅. 程序调试相关的快捷键F5: 启动调试Ctrl+F5: 开始执行(不调试)Shift+F5: 停止调试Ctrl+Shift+F5: 重启调试Ctrl+Alt+Break:全部中断Ctrl+Alt+F2:显示诊断工具Alt+F2:在不调试的情况下启用诊断工具F7: 查看代码Shift+F7: 查看窗体设计器F9: 切换断点Ctrl+F9: 启用/停止断点Shift+F9:调试是打开QuickWatch,内容是当前光标所在处的

Visual Studio Code中配置GO开发环境

在Visual Studio Code中配置GO开发环境 一.GO语言安装 详情查看:GO语言下载.安装.配置 二.GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github.com/microsoft/vscode-go 这款插件的特性包括: Colorization 代码着彩色 Completion Lists 代码自动完成(使用gocode) Snippets  代码片段 Quick Info 快速提示信息