VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 2509|回复: 5

[原创] 5 个非常实用的 vs 调试技巧

[复制链接]
70_avatar_middle
最佳答案
0 
在线会员 发表于 2020-7-12 22:32:55 | 显示全部楼层 |阅读模式
前言调试是一项非常重要的技能,熟练掌握调试技巧有助于我们快速解决问题。vs 是我们平时编写代码时的首选工具,相信也是大多数小伙伴儿的首选调试工具,因为实际操作起来太方便了,代码编写完,一个 F5 就可以愉快的调试了。今天我想向大家推荐几个非常值得了解 vs 调试技巧。话不多说,我们开始吧。

并行堆栈作用简介:
我们可以通过调用堆栈窗口查看当前线程的调用栈,局限是只能查看某个线程的调用栈,要想查看每个线程的调用栈得切来切去的,太麻烦。如果我们想同时查看多个线程的调用情况,我们可以使用并行堆栈窗口。顾名思义,并行堆栈窗口可以同时查看多个线程的调用栈。如果程序中的某个线程死循环了,我们想确定是哪个,这时候可以中断到 vs 中,然后打开并行堆栈窗口进行查看,基本上可以很快定位到出问题的代码。
打开方式:
调试的时候,通过 调试 -> 窗口 -> 并行堆栈 即可打开。在 vs2013 中对应的快捷键是 ctrl + shift + d, s 。
注意是按住 ctrl + shift,再按 d,松开 ctrl, shift 后再按 s。
5 个非常实用的 vs 调试技巧
说明:
我个人不太喜欢 vs 默认的中文翻译,我认为调用堆栈,并行堆栈翻译的并不准确,Call Stack 直译为调用栈就很好,因为函数调用跟堆一点关系都没有,而且 stack 直译过来也是栈,heap 才是堆,不知道为什么会把调用栈翻译成堆栈。希望有知道的小伙伴儿留言指点。

并行监视作用简介:
相信,大家经常使用监视窗口查看变量,但是并行监视窗口大家可能用的不多。看图体会下?
5 个非常实用的 vs 调试技巧
打开方式:
调试的时候,通过 调试 -> 窗口 -> 并行监视 -> 并行监视1/2/3/4 即可打开对应的并行监视窗口。和监视窗口一样可以同时打开四个。
在 vs2013 中对应的快捷键是 ctrl + shift + d, 1/2/3/4 。注意是按住 ctrl + shift,再按 d,松开 ctrl, shift 后再按 1/2/3/4。
5 个非常实用的 vs 调试技巧

自动窗口作用简介:
除了可以查看函数参数,局部变量的值意外,更有用的功能是查看函数调用的返回值。
5 个非常实用的 vs 调试技巧
打开方式:
调试的时候,通过 调试 -> 窗口 -> 自动窗口 即可打开。在 vs2013 中对应的快捷键是 ctrl + alt + v, s 。注意是按住 ctrl + alt,再按 v,松开 ctrl, alt 后再按 s。
5 个非常实用的 vs 调试技巧

混合调试作用简介:
当我们需要调试的程序中有 .NET 代码,也有 c++ 代码时,开启混合调试非常有必要。
打开方式:
通过 F5 调试时的设置方法。
5 个非常实用的 vs 调试技巧
通过附加进程进行调试时的设置方法。
5 个非常实用的 vs 调试技巧

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

使用断点修改变量的值作用简介:
相信大家在调试的时候都设置过断点,但是你是否知道我们可以在调试的时候通过断点来改变变量的值?
调查问题时,想手动修改值来验证一下我们的想法是否正确,但是又不想修改代码,也不想中断下来后,手动修改,因为可能需要手动修改 N 次,改过的小伙伴儿应该有体会。我们可以通过这个小技巧来自动帮我们改变变量的值。
5 个非常实用的 vs 调试技巧
注意:
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

评分

参与人数 4驿站币 +5 热心值 +8 收起 理由
87_avatar_small 周南 + 2 + 2
71_avatar_small 978768269 + 1 + 1 很给力!
75_avatar_small wl1383838438 + 3 赞一个!
58_avatar_small thzzl + 2 + 2 支持原创!

查看全部评分





上一篇:导出或打印源代码文件中所有的(类与)方法
下一篇:一天学会并使用mysql。
37_avatar_middle
最佳答案
1 
在线会员 发表于 2020-7-13 09:12:50 | 显示全部楼层
受教了谢谢分享.
58_avatar_middle
最佳答案
58 
online_vip 发表于 2020-7-13 13:47:17 | 显示全部楼层
谢谢分享,长见识了。
70_avatar_middle
最佳答案
0 
在线会员 发表于 2020-7-14 14:08:17 | 显示全部楼层
谢谢楼主分享
05_avatar_middle
最佳答案
0 
在线会员 发表于 2020-7-14 18:21:41 | 显示全部楼层
谢谢分享,长见识了
79_avatar_middle
最佳答案
0 
在线会员 发表于 2020-9-24 18:25:06 | 显示全部楼层
长见识了.谢谢分享,
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-3-23 07:04

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表