10+强大的Visual Studio调试小技巧

源网址:http://blog.jobbole.com/33865/

伯乐在线注:我们在@程序员的那些事 微博上推荐了英文原文,感谢@halftone_被禁用了 的热心翻译。

简介

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

这篇文章总结了可能节省你大量时间的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

这个小技巧是由chaau建议的,它能节省你大量的时间。Visual studio支持一个命令窗口,你可以通过菜单View->Other Windows->Command Window 打开。你可以在窗口里输入不同命令使调试自动化。比如,可以通过很简单的命令去的测试MFC的COleDateTime变量。

1
? dt.Format( "%Y-%m-%d %H:%M:%S" )

 

英文原文:Ivan Shcherbakov,编译:@halftone_被禁用了

译文链接:http://blog.jobbole.com/33865/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习使用 Visual Studio可以按照以下步骤进行: 1. 下载和安装:首先,你需要从 Microsoft 官方网站下载 Visual Studio。选择适合你的操作系统和编程语言的版本,并按照安装向导进行安装。 2. 学习基础知识:一旦安装完成,你可以开始学习 Visual Studio 的基础知识。你可以通过阅读官方文档、查看教程和参考书籍来了解 Visual Studio 的各个功能和工具。 3. 创建项目:学习如何在 Visual Studio 中创建新项目。根据你的需求选择合适的项目模板,比如控制台应用程序、Windows 应用程序等。 4. 编写代码:开始编写你的代码。Visual Studio 提供了强大的代码编辑器,支持多种编程语言,包括 C++、C#、Python 等。学习如何使用代码编辑器的自动完成、调试工具和代码重构功能等。 5. 调试和测试:学习如何使用 Visual Studio调试功能来排查代码中的错误和问题。掌握断点设置、变量监视、单步执行等调试技巧。 6. 高级功能:深入学习 Visual Studio 的高级功能,比如版本控制、性能分析、界面设计等。这些功能可以帮助你更高效地开发和调试应用程序。 7. 实践项目:通过实践项目来巩固所学知识。尝试创建小型应用程序或参与开源项目,这样可以提高你的编程技能和对 Visual Studio 的熟练程度。 此外,还可以参加在线课程、培训班或加入开发者社区来与其他开发者交流和分享经验。通过实践和不断学习,你可以逐渐掌握并熟练使用 Visual Studio。祝你学习愉快!如果还有其他问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值