11个强大的 Visual Studio 调试技能
简介
调试是软件开辟周期中很首要的一项目组。它具有挑衅性,同时也很让人困惑和懊恼。总的来说,对于稍大一点的法度,调试是不成避免的。比来几年,调试对象的成长让很多调试任务变的越来越简单和省时。
这篇文章总结了可能节俭你多量时候的十个visual studio的调试技能和办法。
1 悬停鼠标查看表达式值

调试是很有挑衅性的。比如在函数内慢慢运行可以看出哪里失足,查看客栈信息可以知道函数被谁调用等等。。。
然则无论哪种景象下,查看表达式和局部变量的值都是很麻烦的(把表达式和局部变量放到watch窗口里)。
一种更简单的办法,把鼠标停在所需查看的数据上。若是是类或布局,那么点击展开可以很便利快速地查看其字段。
2 在运行过程中改变变量值

调试器不仅仅是解析法度溃散和诡异行动的对象,还可以经由过程慢慢调试搜检数据和行动是否合适法度预期的办法解决很多bug。有时,你会想是否设置某些前提为真,法度就能正确运行了。其实你只要把鼠标移动到变量上,双击值,然后输入你须要的值。如许就不须要批改代码,重启法度了。
3 设置下一个运行地位

一个典范的调试案例是我们经常会用慢慢调试的办法去解析为什么函数失足了。这时你碰到这个函数调用其他函数返回错误,而这个错误不是你想要的,你该怎么办?重启调试器?这里有个更好的办法,直接把的运行地位箭头拖到你想要的运行地位。其实就是跳过中心运行代码,直接到想要的地位。很简单吧。
4 编辑然后持续运行

在运行一个很错杂的法度和插件时,发明一个错误,然则不想浪费时候去重编译重启动法度。
很简单,只要在这个地位批改这个bug,然后持续调试。Visual studio会批改这个法度,使得你可以持续调试而不须要重启法度。
值得重视的是“编辑然后持续运行”这个功能有几个限制。一,它不克不及在64位代码上应用。若是想应用这个功能,到项目设置里的编译选项,选择”x86”作为目标平台。不要愁闷,这目标平台在reslease设备是和”debug是分别的,也就是说依然是”Any CPU”的设置。二,“编辑然后持续运行”这个功能仅实用于一个函数内部改变。若是你想要改变这个函数的声明或者增长新的办法,你只能选择重启法度,或者不做任何改变持续。若是批改的办法中包含lambda表达式,则意味着批改了编译器主动生成的委托类型,如许会导致编译器停止运行。
5 一个便利的查看窗口

大项目组现代的调试器都有查看窗口。然则,visual studio的查看窗口应用希罕简单,你能很便利的增长和删除变量。只要在窗口里点击空白行,输入表达式然后按enter键。或者点击表达式,按键删除不须要的表达式。
在调试窗口不仅仅可以查看通俗的变量值,甚至可以输入¥handles去追踪打开的句柄数量,¥err去查看函数的错误代码(然后应用 Tools->Error 查看错误代码的描述)或者输入 @eax(在64位下是@rax )查看包含函数返回值的存放器值。
6 注释反汇编

应用内部的反汇编功能使得优化局部代码加倍简单。Visual studio可以在你的每一行代码下显示汇编指令,并且可以慢慢调试汇编代码,也可以在随便率性地位设置断点。查看和批改汇编代码类似于c++。
7 客栈信息的线程窗口

调试多线程代码是很疾苦的。或许也是有趣的。这取决于你的调试器。Visual studio 一个很赞的功能就是在线程窗口查看线程的客栈信息。你能很便利的直接看到所有线程以及他们的客栈信息。
8 前提断点

若是你想重现一个小概率事务,然则断点在多量不须要的前提下也会触发。你可以很简单的设置前提断点。在断点窗口设置该断点前提,Visual studio 会主动忽视不合适前提的断点。
9 内存窗口

一些bug是由错误的布局定义、缺乏对齐属性等原因引起的。查看每行内存的内容很轻易定位和解决这些bug. Visual studio 的内存窗口可以把数据翻译成8/16/32/64-bit数字或者浮点数。你可以在编辑窗口直接改变数值。
10 跳转到定义

若是你在解决别人写的代码一个bug,会碰到“这个类型是什么”“这个函数做什么的”之类的题目,你可以应用visual studio的跳转到定义的号令来查看类型或函数的定义。
11 号令窗口

这个小技能是由chaau建议的,它能节俭你多量的时候。Visual studio支撑一个号令窗口,你可以经由过程菜单View->Other Windows->Command Window 打开。你可以在窗口里输入不合号令使调试主动化。比如,可以经由过程很简单的号令去的测试MFC的COleDateTime变量。
11个强大的 Visual Studio 调试技能的更多相关文章
- 11个强大的Visual Studio调试小技巧
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- 11个强大的Visual Studio调试小技巧(转)
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- 新手必备!11个强大的 Visual Studio 调试技巧
简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...
- 12个Visual Studio调试效率技巧
在这篇文章中,我们假定读者了解VS基本的调试知识,如: F5 开始使用调试器运行程序 F9 在当前行设置断点 F10 运行到下一个断点处 F5 从被调试的已停止程序恢复执行 F11 步进到函数内(如果 ...
- Visual Studio调试之断点基础篇
Visual Studio调试之断点基础篇 我曾经问过很多人,你一般是怎么调试你的程序的? F9, F5, F11, F…… 有很多书和文章都是介绍怎么使用Visual Studio编写WinForm ...
- Visual Studio 调试方法
1:命令窗口 CTRL + D + I,可以在立即窗口中写一些临时的代码 2:编辑并继续 选中下面的选项,可以让你在调试暂停中,修改代码,而不用重新启动, 3:执行 单步执行:F10 跳进方法:F11 ...
- Visual Studio 调试(系列文章)
调试是软件开发过程中非常重要的一个部分,它具挑战性,但是也有一定的方法和技巧. Visual Studio 调试程序有助于你观察程序的运行时行为并发现问题. 该调试器可用于所有 Visual Stud ...
- Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序
系列目录 [已更新最新开发文章,点击查看详细] 要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用 ...
- Visual Studio 调试系列9 调试器提示和技巧
系列目录 [已更新最新开发文章,点击查看详细] 01 固定数据提示 如果你在调试时,经常将鼠标悬停在数据提示上,就可能想固定变量的数据提示,方便自己随时查看. 即使在重新启动后,固定的变量也能 ...
随机推荐
- Tasker to answer incoming call by pressing power button
nowadays, the smartphone is getting bigger in size, eg. samsung galaxy note and note 2, sorta big in ...
- Windows程序的打包,部署(vs项目打包vs2013)---ShinePans
Windows 应用程序在开发完毕之后,怎样将程序打包并制作成安装程序在客户机上部署 是每一个windows应用程序开发完毕之后都必须面对的问题. 学习目标: 部 ...
- Mybatis 传入List类型参数,报错:There is no getter for property named '__frch_item_0' in
错误如下: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Re ...
- 《3D打印:三维智能数字化创造(全彩)》
<3D打印:三维智能数字化创造(全彩)> 基本信息 作者: 吴怀宇 出版社:电子工业出版社 ISBN:9787121220630 上架时间:2014-1-13 出版日期:2014 年1月 ...
- 【BZOJ】【3489】A simple rmq problem
KD-Tree(乱搞) Orz zyf教给蒟蒻做法 蒟蒻并不会这题正解……(可持久化树套树?...Orz 对于每个点,我们可以求出pre[i],nex[i],那么询问的答案就是:求max (a[i]) ...
- SQL查询今天、昨天、7天内、30天【转】
SQL查询今天.昨天.7天内.30天 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:sele ...
- 2018CVPR
CVPR 2018:腾讯图像去模糊.自动人像操纵最新研究 解密运动模糊:走向实用的非特定场景图片去模糊技术 在慢速曝光或快速运动拍摄照片时,图像模糊常常困扰着照片拍摄者.优图实验室的研究人员开发了可以 ...
- Boosted Tree
原文:http://www.52cs.org/?p=429 作者:陈天奇,毕业于上海交通大学ACM班,现就读于华盛顿大学,从事大规模机器学习研究. 注解:truth4sex 编者按:本文是对开源xg ...
- (转)机器学习的数学基础(1)--Dirichlet分布
转http://blog.csdn.net/jwh_bupt/article/details/8841644 这一系列(机器学习的数学基础)主要包括目前学习过程中回过头复习的基础数学知识的总结. 基础 ...
- 微信小程序开发及相关设置小结
今年过年,主要看了<奇葩说>和<电锯惊魂>,很不错,好东西的确需要留出足够的时间来看,匆匆忙忙走马观花是对作者的不尊重.除此之外,就是研究了一下微信小程序开发,先说对小程序的看 ...