http://www.cnblogs.com/developersupport/p/visualstudio-debugging-tips.htmlhtml
VisualStudio是一个强大的调试工具,里面不少隐藏功能少有人问津,可是在特定场景能够节省你不少时间,本文主要介绍一些VisualStudio调试相关的隐藏功能,欢迎你们补充。算法
大多数人用Visual Studio在调试程序的时候先在程序开始的时候设置一个断点,而后依次F10/F11到本身想要查看的逻辑。若是这个过程咱们须要仔细查看每一步的变量或者执行路径,这样作无可厚非,可是若是咱们不想关心前面执行的逻辑,咱们可使用Run to cursor功能,只须要鼠标指针点到你想要执行到的那一行代码,Ctrl+F10,程序直接停在了鼠标指针的那行代码。sass
断点你们都会用,条件断点相信对于常常调试的也不陌生,使用方法以下图,多线程
看上面这个右键菜单,Hit Count估计不少人也再用,用它来指定在第几回hit到这个断点的时候断下来,工具
接下来就更高级一些,Filter,相信不少人在调试多线程程序的时候都遇到过被其余线程干扰吧,好不容易断下来,一步一步F10,突然间另一个线程又把前面断点hit了,刚才我跳的线程是哪一个?想找到就难了。接下来就须要Filter来出场了。经过Filter咱们能够过滤须要break的机器/进程/线程。学习
接下来就是When Hit选项了,这个估计不少人用过它来跟踪变量,上图,带过。线程
Export, 导出断点的功能用的就更少了,其实有些场景断点导出可让你少费不少话。好比你在某段代码发现一个别人的bug,你能够将断点导出为xml,而后将它attach到bug上,bug owner直接找到对应版本导入断点,运行程序就能够了。debug
调试的时候将鼠标放在变量名上来查看关心的数据,咱们都是这么作的,可是若是一段逻辑须要反复执行,例如调试某段算法,你能够多点一下鼠标,将这个变量钉在代码旁边,这样比去watch窗口看要少转不少眼珠哦。指针
另外这些data tip也是能够导入和导出的。调试
查看反汇编代码能够说是一个VisualStudio里面的一个隐藏功能,这个功能不多有人会注意到,可是对于咱们想要学习汇编语言或者理解一些特定的编译器行为有很大的帮助。这个功能将汇编语言和源代码参照显示,理解起来容易许多。
使用该功能很简单,以咱们在windbg u/uf/ub命令介绍中的程序代码qsort.c为例,在VisualStudio里面打开程序,设置断点,直接经过VisualStudio运行程序,或者attach到已经运行的程序中,当断点被触发后,右键而后选择go to disassembly,
反汇编效果以下,接下来再看swap方法的汇编代码,是否是很容易理解了?