怎样强大自己,色选机调试技巧

2020-11-12 阅读 节华采整理

内容简介:调试是软件开发周期的重要组成部分。这很有挑战性,但也令人困惑和恼火。一般来说VisualStudio中11个强大的调试技巧和方法,调试对于较大的程序是不可避免的。近年来,调试工具的发展使得许多...

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

这篇文章总结了可能节省你大量时间的11个Visual studio的调试技巧和方法。

1 悬停鼠标查看表达式值

调试是很有挑战性的。比如在函数内逐步运行可以看出哪里出错,查看堆栈信息可以知道函数被谁调用等等……但是无论哪种情况下,查看表达式和局部变量的值都是很麻烦的(把表达式和局部变量放到watch窗口里)。一种更简单的方法,把鼠标停在所需查看的数据上。如果是类或结构,那么点击展开可以很方便快速地查看其字段。

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

调试器不仅仅是分析程序崩溃和诡异行为的工具,还可以通过逐步调试检查数据和行为是否符合程序预期的方法解决许多bug。有时,你会想是否设置某些条件为真,程序就能正确运行了。其实你只要把鼠标移动到变量上,双击值,然后输入你需要的值。这样就不需要修改代码,重启程序了。

3 设置下一个运行位置

一个典型的调试案例是我们经常会用逐步调试的方法去分析为什么函数出错了。这时你遇到这个函数调用其他函数返回错误,而这个错误不是你想要的,你该怎么办?重启调试器?这里有个更好的方法,直接把黄色的运行位置箭头拖到你想要的运行位置。其实就是跳过中间运行代码,直接到想要的位置。很简单吧。

4 编辑然后继续运行

在运行一个很复杂的程序和插件时,发现一个错误,但是不想浪费时间去重编译重启动程序。很简单,只要在这个位置修改这个bug,然后继续调试。Visual studio会修改这个程序,使得你可以继续调试而不需要重启程序。

值得注意的是“编辑然后继续运行”这个功能有几个限制。一,它不能在64位代码上使用。如果想使用这个功能,到项目设置里的编译选项,选择”x86”作为目标平台。不要担心,这目标平台在reslease配置是和”debug是分离的,也就是说依然是”Any CPU”的设置。二,“编辑然后继续运行”这个功能仅适用于一个函数内部改变。如果你想要改变这个函数的声明或者增加新的方法,你只能选择重启程序,或者不做任何改变继续。如果修改的方法中包含lambda表达式,则意味着修改了编译器自动生成的委托类型,这样会导致编译器停止运行。

5 一个方便的查看窗口

大部分现代的调试器都有查看窗口。但是,visual studio的查看窗口使用特别简单,你能很方便的增加和删除变量。只要在窗口里点击空白行,输入表达式然后按enter键。或者点击表达式,按delete键删除不需要的表达式。

在调试窗口不仅仅可以查看普通的变量值,甚至可以输入$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变量。

? dt.Format(“%Y-%m-%d %H:%M:%S”)

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

作者给您推荐的内容
  1. 作为世界上第一个浏览器,googlechrome以其简单、快速和及时的错误修复而闻名。就在上次正式发布13天后,谷歌ChrChrome54首个稳定版(v54.0.2840.59)正式发布ome团队今天发布了新版Chrome。色度表...

  2. 1依次单击开始控制面板菜单,然后单击打开的控制面板窗口中的系统和Win7无法修改账号密码要怎么解决安全图标。2在打开的“系统和安全性”窗口中,单击快捷方式链接“系统工具”。三。在打...

  3. 有时当我们使用word时,我们不知道在哪里修改字体,在哪里可以找到字体。事实上,这很简单。我们可以使用以下方法。方法一,选择文本,右键单击word里面的字体在哪查找字体选项。方法二:直...

  4. 如果微信加好友验证失败,对方拒绝您的好友申请,或者您可以重新添加对方。或者放弃加法。如何添加微信好友??点击01,可以在微信加好友验证不通过怎么办手机右上角找到具体的操作方法,...

  5. 支付宝中怎么查看瓜分9亿红包活动中“我”的付款记录...

  6. Microsoft Outlook是Microsoft office软件套件的组件之一。我们可以使用Microsoft Outlook发送和接收文件以及管理联系信息。最近,一些win7系统的用户打开microsoftoutloWin7系统打开MicrosoftOutlook显示已停止工作的...

  7. 默认情况下,在word2013文档中,西文字符如何更改Word2013中的默认字体将使用Calibri字体,中文字体将使用song字体。此设置适用于大多数用户。当然,用户也可以根据实际需要更改默认字体。操作步...

  8. 许多用户在安装win7时,都使用在硬盘上安装Win图解用硬盘安装Win7XP的原始方法。实际上,在硬盘上安装win7的方法已经改变了。在硬盘上安装WinXP的方法现在无法安装win7。作者给出了win7在硬盘上的...

  9. 首先,电脑黄屏的主要原因是什么:1。监视器故障。电脑显示器屏幕发黄怎么回事显卡故障。显示数据线或接触不良。显卡驱动程序问题;5...

  10. 1.systeminfo:让XP列出更多有用的信息。WindowsXP总是炫耀它能稳定工作多久!若15个有趣的windowsXP技巧要了解有关此信息的详细信息,可以访问windows“开始”菜单,然后在“附件”菜单中打开命令提示...