博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
那些VisualStudio隐藏的调试功能(转)
阅读量:6431 次
发布时间:2019-06-23

本文共 1197 字,大约阅读时间需要 3 分钟。

hot3.png

VisualStudio是一个强大的调试工具,里面很多隐藏功能少有人问津,但是在特定场景可以节省你很多时间,本文主要介绍一些VisualStudio调试相关的隐藏功能,欢迎大家补充。

运行到指针(Run to cursor)

大多数人用Visual Studio在调试程序的时候先在程序开始的时候设置一个断点,然后依次F10/F11到自己想要查看的逻辑。如果这个过程我们需要仔细查看每一步的变量或者执行路径,这样做无可厚非,但是如果我们不想关心前面执行的逻辑,我们可以使用Run to cursor功能,只需要鼠标指针点到你想要执行到的那一行代码,Ctrl+F10,程序直接停在了鼠标指针的那行代码。

条件断点(Conditional Breakpoint)

断点大家都会用,条件断点相信对于经常调试的也不陌生,使用方法如下图,

看上面这个右键菜单,Hit Count估计很多人也再用,用它来指定在第几次hit到这个断点的时候断下来,

接下来就更高级一些,Filter,相信很多人在调试多线程程序的时候都遇到过被其他线程干扰吧,好不容易断下来,一步一步F10,忽然间另外一个线程又把前面断点hit了,刚才我跳的线程是哪个?想找到就难了。接下来就需要Filter来出场了。通过Filter我们可以过滤需要break的机器/进程/线程。

接下来就是When Hit选项了,这个估计很多人用过它来跟踪变量,上图,带过。

Export, 导出断点的功能用的就更少了,其实有些场景断点导出可以让你少费很多话。比如你在某段代码发现一个别人的bug,你可以将断点导出为xml,然后将它attach到bug上,bug owner直接找到对应版本导入断点,运行程序就可以了。

数据提示(Data Tips)

调试的时候将鼠标放在变量名上来查看关心的数据,我们都是这么做的,但是如果一段逻辑需要反复执行,例如调试某段算法,你可以多点一下鼠标,将这个变量钉在代码旁边,这样比去watch窗口看要少转很多眼珠哦。

另外这些data tip也是可以导入和导出的。

查看反汇编代码

查看反汇编代码可以说是一个VisualStudio里面的一个隐藏功能,这个功能很少有人会注意到,但是对于我们想要学习汇编语言或者理解一些特定的编译器行为有很大的帮助。这个功能将汇编语言和源代码参照显示,理解起来容易许多。

使用该功能很简单,以我们在中的程序代码qsort.c为例,在VisualStudio里面打开程序,设置断点,直接通过VisualStudio运行程序,或者attach到已经运行的程序中,当断点被触发后,右键然后选择go to disassembly,

反汇编效果如下,接下来再看swap方法的汇编代码,是不是很容易理解了?

转载于:https://my.oschina.net/meizhitu/blog/149121

你可能感兴趣的文章
Windows XP \Windows 2003启动过程的学习及故障分析处理(六c)
查看>>
PCL中分割_欧式分割(1)
查看>>
RHCE学习方法
查看>>
C#基础部分之语法和基础知识
查看>>
在XenApp如何发布SAP的客户端(上)
查看>>
前端学习 -- Css -- display和Visibility
查看>>
.net一些知识点的记录1
查看>>
qmake 之 CONFIG 与 QT 乱谈
查看>>
详解结构体、类等内存字节对齐
查看>>
vSphere5全新的许可授权方式——CPU许可+vRAM授权
查看>>
Mybatis 缓存失效的几种情况
查看>>
RIP综合实验
查看>>
Caching Tutorial for Web Authors and Webmasters
查看>>
实验4 时间与文件
查看>>
服务器架构之性能扩展-第九章(10)
查看>>
手工杀掉双线程、感染所有EXE文件病毒
查看>>
cloudCompute
查看>>
keepalived + nginx 双机互备
查看>>
Centos6.0系统keepalived+Haproxy实现httpd简单负载均衡
查看>>
VMware Lab Manager教程——安装VMware Lab Manager
查看>>