11个强盛的Visual Studio调试小能力建站经验

来源:互联网 / 作者:SKY / 2016-08-15 07:13 / 点击:
调试是软件开拓周期中很重要的一部门。它具有挑衅性,同时也很让人迷惑和烦恼。总的来说,对付稍大一点的措施,调试是不行停止的。最近几年,调试器材的成长让很

调试是软件开拓周期中很重要的一部门。它具有挑衅性,同时也很让人迷惑和烦恼。总的来说,对付稍大一点的措施,调试是不行停止的。最近几年,调试器材的成长让许多调试使命变的越来越简朴和省时。

这篇文章总结了也许节减你大量时刻的11个Visual studio的调试能力和要领。

1 悬停鼠标查察表达式值

1. Hover mouse to evaluate expression

调试是很有挑衅性的。好比在函数内慢慢运行可以看出那边堕落,查察仓库信息可以知道函数被谁挪用等等……可是无论哪种环境下,查察表达式和局部变量的值都是很贫困的(把表达式和局部变量放到watch窗口里)。一种更简朴的要领,把鼠标停在所需查察的数据上。假如是类或布局,那么点击睁开可以很利便快速地查察其字段。

2 在运行进程中改变变量值

2. Change values on-the-fly

调试器不只仅是说明措施瓦解和诡异举动的器材,还可以通过逐法式试搜查数据和举动是否切合措施预期的要领办理很多bug。偶然,你会想是否配置某些前提为真,措施就能正确运行了。着实你只要把鼠标移动到变量上,双击值,然后输入你必要的值。这样就不必要修改代码,重启措施了。

3 配置下一个运行位置

3. Set next statement

一个典范的调试案例是我们常常会用逐法式试的要领去说明为什么函数堕落了。这时你碰着这个函数挪用其他函数返回错误,而这个错误不是你想要的,你该怎么办?重启调试器?这里有个更好的要领,直接把黄色的运行位置箭头拖到你想要的运行位置。着实就是跳过中间运行代码,直接到想要的位置。很简朴吧。

4 编辑然后继承运行

4. Edit and continue

在运行一个很伟大的措施和插件时,发明一个错误,可是不想挥霍时刻去重编译重启动措施。很简朴,只要在这个位置修改这个bug,中国站长站,然后继承调试。Visual studio会修改这个措施,使得你可以继承调试而不必要重启措施。

值得留意的是“编辑然后继承运行”这个成果有几个限定。一,它不能在64位代码上行使。假如想行使这个成果,到项目配置里的编译选项,选择”x86”作为方针平台。不要担忧,这方针平台在reslease设置是和”debug是疏散的,也就是说依然是”Any CPU”的配置。二,“编辑然后继承运行”这个成果仅合用于一个函数内部改变。假如你想要改变这个函数的声明可能增进新的要领,你只能选择重启措施,可能不做任何改变继承。假如修改的要领中包括lambda表达式,则意味着修改了编译器自动天生的委托范例,这样会导致编译器遏制运行。

5 一个利便的查察窗口

5. A convenient watch window

大部门当代的调试器都有查察窗口。可是,visual studio的查察窗口行使出格简朴,你能很利便的增进和删除变量。只要在窗口里点击空缺行,输入表达式然后按enter键。可能点击表达式,按delete键删除不必要的表达式。

在调试窗口不只仅可以查察平凡的变量值,乃至可以输入$handles去追踪打开的句柄数目,$err去查察函数的错误代码(然后行使 Tools->Error 查察错误代码的描写)可能输入 @eax(在64位下是@rax )查察包括函数返回值的寄存器值。

6 注释反汇编

6. Annotated disassembly

行使内部的反汇编成果使得优化局部代码越发简朴。Visual studio可以在你的每一行代码下表现汇编指令,而且可以逐法式试汇编代码,也可以在恣意位置配置断点。查察和修改汇编代码相同于c++。

7 仓库信息的线程窗口

7. Threads window with stacks

调试多线程代码是很疾苦的。或者也是风趣的。这取决于你的调试器。Visual studio 一个很赞的成果就是在线程窗口查察线程的仓库信息。你能很利便的直接看到全部线程以及他们的仓库信息。

8 前提断点

8. Conditional breakpoints

假如你想重现一个小概率变乱,可是断点在大量不必要的前提下也会触发。你可以很简朴的配置前提断点。在断点窗口配置该断点前提,Visual studio 会自动忽略不切合前提的断点。

9 内存窗口

9. Memory window

一些bug是由错误的布局界说、穷乏对齐属性等缘故起因引起的。查察每行内存的内容很轻易定位息争决这些bug. Visual studio 的内存窗口可以把数据翻译成8/16/32/64-bit数字可能浮点数。你可以在编辑窗口直接改变数值。

10 跳转到界说

10. Go To Definition

假如你在办理别人写的代码一个bug,会碰着“这个范例是什么”“这个函数做什么的”之类的题目,你可以行使visual studio的跳转到界说的呼吁来查察范例或函数的界说。

11 呼吁窗口

11. Command Window

1
3