分享5个实用的vs调试技巧
并行堆栈
作用简介:
我们可以通过调用堆栈窗口查看当前线程的调用栈,局限是只能查看某个线程的调用栈,要想查看每个线程的调用栈得切来切去的,太麻烦。如果我们想同时查看多个线程的调用情况,我们可以使用并行堆栈窗口。顾名思义,并行堆栈窗口可以同时查看多个线程的调用栈。如果程序中的某个线程死循环了,我们想确定是哪个,这时候可以中断到vs中,然后打开并行堆栈窗口进行查看,基本上可以很快定位到出问题的代码。
打开方式:
调试的时候,通过调试->窗口->并行堆栈即可打开。在vs2013中对应的快捷键是ctrl+shift+d,s。
注意是按住ctrl+shift,再按d,松开ctrl,shift后再按s。
说明:
我个人不太喜欢vs默认的中文翻译,我认为调用堆栈,并行堆栈翻译的并不准确,CallStack直译为调用栈就很好,因为函数调用跟堆一点关系都没有,而且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调试技巧的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。