visualstudio2015中的常用调试技巧分享

chenxin.dm      2022-02-11     657

关键词:

.NET 技术交流群:337901356 欢迎您的加入!

为什么要学习调试?

   调试(Debug)是作为一个程序员必须要学会的东西,学会调试可以极大的提高开发效率,排错时间,很多人不喜欢调试,但我认为这是一个很不可取的选择,调试的时候能让我们看到程序的执行顺序、步骤以及过程等,调试的时候可以让我们监视代码中各个变量的情况,调试让我们可以让我们快速的找出错误的根源。可见调试是至关重要的。

要学习好怎么调试,那么必须去了解VS 这个IDE中的各种调试技巧,下面我就讲讲我所经常在调试程序中所用到的技巧。

 

调试技巧介绍

1、监视窗口(Ctrl+D,Ctrl+W 快捷键开启)

我们在调试程序的过程中,可以通过此窗口动态查看各个变量的值,以及各个函数的调用的返回结果。

在监视窗口中,我们还可以手动更改某个变量的值,这个有时候很有用,特别是有时候程序执行到指定语句的时候,发现某个值是错误的,但是我们又想用一个正确值测试代码时,

此时可以通过监视窗口直接更改变量的值,而不需要重新启动调试。

快速监视:选中某个变量后者表达式,然后通过按下快捷键Ctrl+D,Ctrl+Q 开启。

备注:只能在调试情况下才能开启此窗口。

 技术分享

2、调用堆栈(Ctrl+D,Ctrl+C)

通过该窗口,我们可以看到函数的一级一级的调用过程,我们就可以知道,该方法是来自于上面的哪一个步骤发起的调用。、

可以通过点击调试->窗口->调用堆栈 来打开调用堆栈窗口。

如下图:

技术分享

备注:只能在调试情况下在可以开启此窗口。

 

3、拖动调试光标的技巧。

Visual Studio 在调试的情况下可以拖动左侧的黄色箭头进行上下拖动,那么这个有什么作用呢,有时候我们可能想实用F11跟到某个方法里面进行调用过程的查看,结果一个不小心发现手误按下了F10,此时代码执行到了方法调用的下一句,那么我们此时就可以点击左侧的黄色箭头,并按住鼠标左键,往上一拖,这个时候,就又可以执行刚才的方法调用的那句代码了,如果往下拖,那么可以跳过一些语句代码的执行。

技术分享

4、编辑并继续

通过启用编辑并继续,可以在调试代码的过程中直接更改部分代码,然后立刻执行最新的代码,而不需要重新启动调试程序。

但是这种方式在WEB应用程序中有个不好的地方就是,设置了启动编辑并继续之后,如果此时结束调试,那么网站或WEB应用程序将自动从IISExpress中退出,也就是此时再刷新网页,将会显示无法连接到网站,如果要在继续浏览其他页面,那么此时就要重新启动网站了。

不过,在Visual Studio 2015中,默认就是打开了编辑并继续功能,并且已经把编辑并继续的复选框给去掉了。

 

5、设置断点(F9 快捷键开启)

断点的好处在于,如果方法或者程序中包含了大量的代码,那么我们就可以设置到一个我们想让程序停下来的地方,通过F5可以快速的执行到下一个断点处。

当我们启动调试后,如果程序中有大量的断点,而我们只是想调试某一部分代码,那么或许有些人会一个一个断点去取消或者禁用,感觉够累,

其实是可以通过 点击 调试->禁用所有断点 或者调试->删除所有断点,如果你决定不需重新设置那些断点了,那么可以删除所有断点,否则建议先禁用所有断点,然后在你需要启用断点调试的地方再把那些断点启用。

有一个比较特殊的断点设置就是:条件断点

条件断点就是可以在设置一个表达式,只有表达式的值为true或者更改的时候,语句才会被命中。

看个例子。

 技术分享

6、F5按键的使用

Visual Studio 中,F5可以用来启动调试、也可以快速的将程序执行从一个断点执行到下一个断点处,往往有些新手会一句一句的执行进行调试,如果程序代码没几句还好,如果程序代码量多,或者碰到一个大循环的化,那要手按到何时才能执行到指定的想调试的代码处呢。

 

7、F10 逐过程 

F10表示逐过程执行代码,什么是逐过程执行呢,通俗点说就是当执行到方法的语句时,调试不会进入到方法内部,而是一步将方法执行完毕。

8、F11 逐语句 

F11是逐语句执行代码,那么如果碰到调用方法的语句时,那么通过F11可以进入到方法内部的执行过程。

9、切换完成模式

有时候你是不是发现手动打了一部分英文之后,那个智能提示框总是不能自动选中我们想要选中的,而是变成下面那样:

技术分享

那么,你可以输入快捷键:Ctrl+Alt+空格键来切换到到选中模式。

技术分享技术分享

 

总的来说主要的调试技巧就是这些,这里讲解的都是日常开发调试中个比较常用的,希望给新手们有所帮助。

 

Visual Studio 2015 中的调试缓慢——无法关闭页堆?

】VisualStudio2015中的调试缓慢——无法关闭页堆?【英文标题】:SlowdebugginginVisualStudio2015--can\'tturnoffpageheap?【发布时间】:2018-07-2320:02:07【问题描述】:我正在运行VisualStudio2015,之前从未遇到过调试问题。但是,最近调试很慢。... 查看详情

12个visualstudio调试效率技巧(代码片段)

...使用这个功能强大的工具包来处理调试会话。然而,VisualStudio调试工具提供了更多的功能。下面是一系列VisualStudio调试效率技巧。注意,这些提示和快捷方式已经在的Visualstudio20191 查看详情

12个visualstudio调试效率技巧(代码片段)

...使用这个功能强大的工具包来处理调试会话。然而,VisualStudio调试工具提供了更多的功能。下面是一系列VisualStudio调试效率技巧。注意,这些提示和快捷方式已经在的Visualstudio20191 查看详情

visualstudio常用小技巧一:代码段+快捷键+插件=效率

用了visualstudio5年多,也该给自己做下备忘录了。每次进新的组换新的电脑,安装自己熟悉的环境又得重新配置,不做些备忘老会忘记一些东西。工具用的好,效率自然翻倍。1,代码段在VisualStudio可以自己添加自己喜欢的代码段... 查看详情

visualstudio高效调试手段与技巧总结,值得收藏!

目录1、对0xCCCCCCCC、0xCDCDCDCD和0xFEEEFEEE等常见异常值的辨识度2、遇到Debug下的报错弹框,点击重试,查看函数调用堆栈3、调试时,程序和调试器都发生了闪退,可以尝试到Output窗口中找线索4、被废弃的API函数IsBadRe... 查看详情

vs功能介绍

VisualStudio2015是一款便于学习和使用的开发工具,并提供了大量的帮助文档供用户参考。本节将对VisualStudio2015中的常用菜单及其功能进行介绍。VisualStudio2015中常用的菜单启动VisualStudio2015,其主界面如下图所示。在该界面中首先... 查看详情

12个visualstudio调试效率技巧(代码片段)

目录1、运行到光标位置2、通过点击鼠标,运行到当前位置3、在此处作为下一条要执行的语句4、数据断点:当值发生变化时,触发中断(值更改时中断)5、条件断点6、跟踪断点7、跟踪超出作用域的对象8、查... 查看详情

12个visualstudio调试效率技巧(代码片段)

目录1、运行到光标位置2、通过点击鼠标,运行到当前位置3、在此处作为下一条要执行的语句4、数据断点:当值发生变化时,触发中断(值更改时中断)5、条件断点6、跟踪断点7、跟踪超出作用域的对象8、查... 查看详情

Visual Studio 2015 远程调试不兼容平台错误

】VisualStudio2015远程调试不兼容平台错误【英文标题】:VisualStudio2015RemoteDebugnotcompatibleplatformerror【发布时间】:2019-02-2207:08:14【问题描述】:我正在尝试远程调试VisualStudio2015项目,但出现以下奇怪错误:在英语中,听起来应该... 查看详情

Visual Studio 2015 中的打字稿

】VisualStudio2015中的打字稿【英文标题】:TypescriptinVisualStudio2015【发布时间】:2018-02-1911:45:35【问题描述】:我正在开发一个Angular4.X项目并使用VisualStudio2015Update3作为IDE。到目前为止,我能够在浏览器(主要是GoogleChrome)中调试... 查看详情

停止在visualstudio2015中进行调试

我正在使用visualstudio2015.我的解决方案工作正常但不知何故它停止了工作。每次我尝试运行解决方案时,它都会打开一个弹出窗口并说停止调试正在进行中。关于我的问题堆栈溢出的解决方案很少,但他们没有帮助解决我的问题... 查看详情

visualstudio2015和2013哪个更适合新手学习c语言

...015新特性”,自己决定一下使用哪个,个人推荐的话VS2015VisualStudio2015相比VisualStudio2013,引入了一些新特性,对于普通编程者来说,最直观感受到的就是“调试和分析整合到一个单一的诊断工具窗口中”、“使用C#和VB的开发人... 查看详情

linux下常用调试技巧

1linux下如何查看静态库和动态库都链接了那些库1.1静态库.a是没有指令可以看到其在生成过程中链接了那些库的1.2动态库.so可以通过ldd指令查看其在生成过程中链接了那些库还有一种简单直观的方法,我们可以在编译过程中看到... 查看详情

linux下常用调试技巧

1linux下如何查看静态库和动态库都链接了那些库1.1静态库.a是没有指令可以看到其在生成过程中链接了那些库的1.2动态库.so可以通过ldd指令查看其在生成过程中链接了那些库还有一种简单直观的方法,我们可以在编译过程中看到... 查看详情

Visual Studio 2015 使用较旧的 dll 进行调试

】VisualStudio2015使用较旧的dll进行调试【英文标题】:Visualstudio2015debuggingwitholderdlls【发布时间】:2015-10-2621:29:22【问题描述】:我正在尝试在Windows10-VisualStudio2015下从OpenCV调试sampleapplication。我已经根据OpenCVwiki配置了VisualStudio,... 查看详情

vs2015--win32project配置的一些想法之在visualstudio2015中进行调试的同一时候分析性能

...于应用程序的性能。尽管有了非常长一段时间分析工具在VisualStudio中的,他们是单独的一组学习工具。很多开发者没有花时间去学习和使用它们的时候会出现性能问题。这篇文章将介绍VisualStud 查看详情

vs怎么进行断点调试?

...标.掌握好的调试技巧与工具的使用方法,也是非常重要的.VisualStudio调试程序有助于你观察程序的运行时行为并发现问题。该调试器可用于所有VisualStudio编程语言及其关联的库。使用调试程序时,可以中断程序的执行以检查代码、... 查看详情

visualstudio调试技巧---output窗口输出定位

在使用VC++时,经常使用OutputDebugString往往Output窗口写一些调试信息,如果输出信息遵循某种格式,那么在Output窗口中点击相应输出文本就会跳到相应的代码行中。具体格式MSDN中有说,简单的说法,在输出文本的最前面是"文件名(... 查看详情