简介

  调试是软件开辟周期中很首要的一项目组。它具有挑衅性,同时也很让人困惑和懊恼。总的来说,对于稍大一点的法度,调试是不成避免的。比来几年,调试对象的成长让很多调试任务变的越来越简单和省时。

  这篇文章总结了可能节俭你多量时候的十个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 调试技能的更多相关文章

  1. 11个强大的Visual Studio调试小技巧

    简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...

  2. 11个强大的Visual Studio调试小技巧(转)

    简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...

  3. 新手必备!11个强大的 Visual Studio 调试技巧

    简介 调试是软件开发周期中很重要的一部分.它具有挑战性,同时也很让人疑惑和烦恼.总的来说,对于稍大一点的程序,调试是不可避免的.最近几年,调试工具的发展让很多调试任务变的越来越简单和省时. 这篇文章总 ...

  4. 12个Visual Studio调试效率技巧

    在这篇文章中,我们假定读者了解VS基本的调试知识,如: F5 开始使用调试器运行程序 F9 在当前行设置断点 F10 运行到下一个断点处 F5 从被调试的已停止程序恢复执行 F11 步进到函数内(如果 ...

  5. Visual Studio调试之断点基础篇

    Visual Studio调试之断点基础篇 我曾经问过很多人,你一般是怎么调试你的程序的? F9, F5, F11, F…… 有很多书和文章都是介绍怎么使用Visual Studio编写WinForm ...

  6. Visual Studio 调试方法

    1:命令窗口 CTRL + D + I,可以在立即窗口中写一些临时的代码 2:编辑并继续 选中下面的选项,可以让你在调试暂停中,修改代码,而不用重新启动, 3:执行 单步执行:F10 跳进方法:F11 ...

  7. Visual Studio 调试(系列文章)

    调试是软件开发过程中非常重要的一个部分,它具挑战性,但是也有一定的方法和技巧. Visual Studio 调试程序有助于你观察程序的运行时行为并发现问题. 该调试器可用于所有 Visual Stud ...

  8. Visual Studio 调试系列12 远程调试部署在远程计算机IIS上的ASP.NET应用程序

    系列目录     [已更新最新开发文章,点击查看详细] 要调试已部署到IIS的ASP.NET应用程序,请在部署应用程序的计算机上安装并运行远程工具,然后从Visual Studio附加到正在运行的应用 ...

  9. Visual Studio 调试系列9 调试器提示和技巧

    系列目录     [已更新最新开发文章,点击查看详细] 01 固定数据提示 如果你在调试时,经常将鼠标悬停在数据提示上,就可能想固定变量的数据提示,方便自己随时查看. 即使在重新启动后,固定的变量也能 ...

随机推荐

  1. WINDOWS 的 MKLINK : 硬链接,符号链接 : 文件符号链接, 目录符号链接 : 目录联接

    玩转WIN7的MKLINK 引言: 换了新电脑,终于再次使用上啦WIN7 ,经过一个周每天重装N次系统,... ... ... ... 在xp系统下,junction命令要用微软开发的小程序 junc ...

  2. perf 移植

    perf 移植 perf工具用于系统性能的调优,程序优化.源码在kenel/tools/perf目录. 我在imx6平台上进行移植.将自己的移植过程记录如下. 参考链接 http://blog.csd ...

  3. 用Redis实现分布式锁以及redission使用

    原文:https://my.oschina.net/wangnian/blog/668830 前言:分布式环境有很多问题,比如你前一个请求访问的是服务器A,第二个请求访问到了服务器B,就会发生并发重复 ...

  4. codeforces 444 C. DZY Loves Colors(线段树)

    题目大意: 1 l r x操作 讲 [l,r]上的节点涂成x颜色,而且每一个节点的值都加上 |y-x| y为涂之前的颜色 2 l r  操作,求出[l,r]上的和. 思路分析: 假设一个区间为同样的颜 ...

  5. 手机应用:非功能需求 Check List

    服务状态防止并发 网络保持:无线网络,GPRS 网络连接:https,手机助手代理 电量 屏幕保持防止休眠 下载重试机制 定时检查XML 限速下载,线程休眠 下载出错反馈机制 消息广播 状态栏通知 进 ...

  6. ldap、additional info: no global superior knowledge

    /usr/local/openldap/bin/ldapadd -x -D 'cn=Manager,dc=duxingyu,dc=com' -W -f init.ldif Enter LDAP Pas ...

  7. sql查询前后两位

    SQL排名的问题,A这个人在数据库里排第十,怎么查询一个他前面两位,后面两位,包括自己的五条数据,各位有啥高招? DECLARE @table TABLE ( id INT PRIMARY KEY , ...

  8. UnityEditor研究学习之自定义Editor

    UnityEditor研究学习之自定义Editor 今天我们来研究下Unity3d中自定义Editor,这个会让物体的脚本在Inspector视窗中,产生不同的视觉效果. 什么意思,举个例子,比如游戏 ...

  9. C语言运算符优先级及结合性

    今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

  10. Ubuntu 常用命令大全

    Ubuntu 常用命令大全查看软件 xxx 安装内容#dpkg -L xxx查找软件#apt-cache search 正则表达式查找文件属于哪个包#dpkg -S filename apt-file ...