Visual Studio debugger是一个很棒的调试工具,能够帮助程序猿们快速地发现和解决问题。这里给你们简单介绍一下VS调试工具中的七个不为人知的小功能。html
调试过程当中常常须要拖拽黄箭头,使特定语句执行或者不执行。常规方法就是使用鼠标直接拖拽。多线程
在Visual Studio 2017 15.3预览版中,有一个更简单地跳转到目标行的方法:在目标行盘旋鼠标指针,出现绿色竖线右箭头图标后,按住CTRL后鼠标左键点击,就把调试黄箭头移过去了,再点击调试下一步或者F5就直接在指定行运行了。ide
有时候某个实例的属性值会莫名其妙的变化,当咱们须要知道为何变化的时候,会在属性代码中添加断点,可是这会对全部实例都生效。工具
在调试的时候,可使用Make Object ID和Conditional Breakpoint功能去添加指定实例的断点,具体以下:学习
注意Make Object ID记录的是内存中对象的地址,下次调试的时候就改变了,须要从新设置。this
Attach to Process是你们常常须要用的功能,Visual Studio 2017中有一个新的选项叫作Reattach to Process,能够方便你们从新附加到最近一次附加到的进程上。线程
先附加到一个进程上,点击Stop Debugging,而后再点击Debug就能看到里面的Reattach to Process选项了。debug
在调试过程当中,调试工具栏中有一个新的选项叫作:Show Threads in Source。点击后便可在有线程中止的代码行前显示一个图标,鼠标停留在图标上显示线程,右击图标能够显示可用操做。3d
注意这个功能可能影响调试效率,若是不须要的话建议默认关闭。指针
当进行多线程调试的时候,能够利用Disable Breakpoint功能临时禁用指定断点,防止其它线程因为断点中断,影响当前线程的调试工做。
调试过程当中,在Command Window中输入”Debug.ListCallStack -AllThreads”,便可看到全部线程的调用栈。
也能够用WinDBG命令”~*k”:
有时候可能须要在调试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,来自永远薰薰]