分享5个实用的vs调试技巧

 更新时间:2020年09月14日 15:47:16   作者:BianChengNan''''s  
vs 是我们平时编写代码时的首选工具,相信也是大多数小伙伴儿的首选调试工具,因为实际操作起来太方便了,代码编写完,一个 F5 就可以愉快的调试了。今天我想向大家推荐几个非常值得了解 vs 调试技巧。

并行堆栈

作用简介:

我们可以通过调用堆栈窗口查看当前线程的调用栈,局限是只能查看某个线程的调用栈,要想查看每个线程的调用栈得切来切去的,太麻烦。如果我们想同时查看多个线程的调用情况,我们可以使用并行堆栈窗口。顾名思义,并行堆栈窗口可以同时查看多个线程的调用栈。如果程序中的某个线程死循环了,我们想确定是哪个,这时候可以中断到 vs 中,然后打开并行堆栈窗口进行查看,基本上可以很快定位到出问题的代码。

打开方式:

调试的时候,通过 调试 -> 窗口 -> 并行堆栈 即可打开。在 vs2013 中对应的快捷键是 ctrl + shift + d, s 。

注意是按住 ctrl + shift,再按 d,松开 ctrl, shift 后再按 s。

说明:

我个人不太喜欢 vs 默认的中文翻译,我认为调用堆栈,并行堆栈翻译的并不准确,Call Stack 直译为调用栈就很好,因为函数调用跟堆一点关系都没有,而且 stack 直译过来也是栈,heap 才是堆,不知道为什么会把调用栈翻译成堆栈。希望有知道的小伙伴儿留言指点。

并行监视

作用简介:

相信,大家经常使用监视窗口查看变量,当我们想查看每个栈帧的局部变量的时候,我们需要切换到对应栈帧才能看到对应的值,是不是比较麻烦?并行监视窗口了解下?

打开方式:

调试的时候,通过 调试 -> 窗口 -> 并行监视 -> 并行监视1/2/3/4 即可打开对应的并行监视窗口。和监视窗口一样可以同时打开四个。

在 vs2013 中对应的快捷键是 ctrl + shift + d, 1/2/3/4 。注意是按住 ctrl + shift,再按 d,松开 ctrl, shift 后再按 1/2/3/4。

自动窗口

作用简介:

除了可以查看函数参数,局部变量的值意外,更有用的功能是查看函数调用的返回值。

打开方式:

调试的时候,通过 调试 -> 窗口 -> 自动窗口 即可打开。在 vs2013 中对应的快捷键是 ctrl + alt + v, s 。注意是按住 ctrl + alt,再按 v,松开 ctrl, alt 后再按 s。

混合调试

作用简介:

当我们需要调试的程序中有 .NET 代码,也有 c++ 代码时,开启混合调试非常有必要。

打开方式:

通过 F5 调试时的设置方法。

通过附加进程进行调试时的设置方法。

务必注意: 有时候我们设置断点不生效,可以检查一下调试方式是否选对了。如果我们只想调试 C++ 代码,可以只勾选 Native,如果只想调 .NET 代码,可以根据实际情况勾选 Managed(v4.5, v4.0) 或者 Managed(v3.5, v3.0, v2.0),如果都想调那就都勾选。

使用断点修改变量的值

作用简介:

相信大家在调试的时候都设置过断点,但是你是否知道我们可以在调试的时候通过断点来改变变量的值?

调查问题时,想手动修改值来验证一下我们的想法是否正确,但是又不想修改代码,也不想中断下来后,手动修改,因为可能需要手动修改 N 次,改过的小伙伴儿应该有体会。我们可以通过这个小技巧来自动帮我们改变变量的值。

注意:

1、 表达式不要加分号!!!

2、 高版本的 vs 才支持,vs2019 亲测有效,其它版本没测试。

注意事项:

1、 程序需要中断到 vs 后,才能执行查看调用栈,观察变量等操作。

2、 不需要的时候,请关闭并行堆栈等窗口,因为刷新信息对调试速度有一定影响,如果觉得 vs 调试速度慢了,可以关闭不必要的窗口。

3、 vs2013 中默认的快捷键设计的比较蛋疼,使用的时候需要注意。

总结

当然,还有很多很多其它调试技巧(包括上一篇文章中提到的 natvis),快捷键等等,后续会慢慢分享给大家。欢迎大家在群里多交流。

参考资料

https://docs.microsoft.com/en-US/visualstudio/debugger/debugger-tips-and-tricks?view=vs-2019

以上就是分享5个实用的vs调试技巧的详细内容,更多关于vs调试技巧的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Maven命令大全

    详解Maven命令大全

    Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),这篇文章主要介绍了maven命令大全,需要的朋友可以参考下
    2020-07-07
  • 计算机二级如何一次性通过?给NCRE焦躁心情降温!

    计算机二级如何一次性通过?给NCRE焦躁心情降温!

    计算机二级到现阶段应该如何备考,该听什么课?该针对哪些考点重点学习,这些都要做到心里有数,有计划性。这篇文章为大家分享了计算机二级备考技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 深入理解Scala函数式编程过程

    深入理解Scala函数式编程过程

    这篇文章主要介绍了深入理解Scala函数式编程过程的相关资料,希望通过本文能帮助到大家,让大家学习理解这部分内容,需要的朋友可以参考下
    2017-10-10
  • Eclipse 误删文件的恢复与代码的恢复详解

    Eclipse 误删文件的恢复与代码的恢复详解

    这篇文章主要介绍了Eclipse 误删文件的恢复,代码的恢复的相关资料,需要的朋友可以参考下
    2016-09-09
  • chrome开发者助手插件v2.10发布提升开发效率不再只是口号

    chrome开发者助手插件v2.10发布提升开发效率不再只是口号

    这篇文章主要介绍了chrome开发者助手插件v2.10发布提升开发效率不再只是口号,这个版本重点提升了常用工具的使用效率,需要的朋友可以参考下
    2021-03-03
  • 权限控制之粗粒度与细粒度概念及实现简单介绍

    权限控制之粗粒度与细粒度概念及实现简单介绍

    这篇文章主要介绍了权限控制之粗粒度与细粒度概念及实现简单介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • git merge --ff/--no-ff/--ff-only 三种选项参数的区别解析

    git merge --ff/--no-ff/--ff-only 三种选项参数的区别解析

    这篇文章主要介绍了git merge --ff/--no-ff/--ff-only 三种选项参数的区别解析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • ffmpeg播放器实现详解之框架搭建过程

    ffmpeg播放器实现详解之框架搭建过程

    这篇文章主要介绍了ffmpeg播放器实现详解之框架搭建过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Spark在Win10下的环境搭建过程

    Spark在Win10下的环境搭建过程

    这篇文章主要介绍了Spark在Win10下的环境搭建过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • 详解提升场景文本识别中的语言模型

    详解提升场景文本识别中的语言模型

    语言模型即根据当前语境的上下文推断当前句子的意思。文本图像中包含两层信息:视觉纹理信息和语言信息。由于单纯根据视觉纹理信息进行文字识别缺少了对上下文的字符语义信息的挖掘,时常会导致错误的文本识别结果(之后会详细说明)。
    2021-05-05

最新评论