【工具】VS2010常用调试技巧(1)
调试是一个程序员最基本的技能,其重要性不言自明。不会调试的程序员就意味着他即使会一门语言,却不能编制出好的软件。本文就本人在开发过程中常用的调试技巧作下简单呢介绍,希望对大家有所帮助,能力超群者请绕道。
1、单步调试(F10)
在Debug状态下,按下F10,逐行进行调试。
2、逐句调试(F11)
在调试状态下,按下F11,会逐句调试,遇到函数会进入函数内部调试。
3、跳到当前光标处(Ctrl+F10)
我经常看到有些初级程序员,为了到达目标代码位置,在程序运行前就早早设定了断点,然后反复按F10/F11,直至到达目标代码处。如果程序员真正关心的是目标代码处而不是之前的每一步,这时候再逐步调试就会占用太多的时间且不是明智之举,这时,应该利用“跳到当前光标处”这个功能。
先把光标定位在目标代码位置,然后Ctrl+F10,程序会直接跳到该行代码位置停下。
4、条件中断
在某些场景下,比如循环中,程序员需要知道循环的情况,但是因为循环次数过大,逐句调试显然不是明智的选择,这时可以选择“条件中断”。
顾名思义,条件中断就是满足特定预设条件后作出的中断响应。具体使用方法如下:
首先在断点位置处右键,在弹出窗口中选择Condition

这时在弹出的对话框中设置你需要的中断条件,比如我们希望变量paginatedDinners的容量大小10的时候就中断。

或者希望某一变量发生改变时就触发断点,这时可以选择“Has Changed”的勾选。使用条件中断,将避免繁琐的手动操作,大量减少工作量和提高工作效率。
5、记录到达断点次数
当第N次满足条件时才触发中断,就是常说的“记录到达断点次数”功能。可以通过右击断点,在弹出的菜单中选择"Hit count..."菜单命令实现。

这时系统弹出一个对话框,它允许你指定:
(1)当满足条件,而且进入断点的累计次数等于N时,断点命中一次。
(2)当满足条件,而且进入断点的累计次数是N的倍数时,断点命中一次。
(3)当满足条件,而且进入断点的累计次数大于N时,每次命中断点。

今天就到这里,下次继续。。。
【工具】VS2010常用调试技巧(1)的更多相关文章
- java与.net比较学习系列(1) 开发环境和常用调试技巧
最近因为公司项目要由.net平台转到java平台的原因,之前一直用.net的我不得不开始学习java了,刚开始听到说要转java的时候很抗拒,因为我想专注在.net平台上,不过这样也并不完全是坏事,通 ...
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
- WebApi-路由机制 Visual Studio 2015中的常用调试技巧分享
WebApi-路由机制 一.WebApi路由机制是什么? 路由机制通俗点来说:其实就是WebApi框架将用户在浏览器中输入的Url地址和路由表中的路由进行匹配,并根据最终匹配的路由去寻找并匹配相应 ...
- Java常用调试技巧(转)
调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧, ...
- Xcode 常用调试技巧总结
NSLog,po命令和普通断点调试相信每个iOS开发者都会,这里就不作介绍了. 一.Memory Graph Xcode8新增:Memory Graph解决闭包引用循环问题 有很多叹号说明就有问题了. ...
- Visual Studio 2015中的常用调试技巧分享
.NET 技术交流群:337901356 欢迎您的加入! 为什么要学习调试? 调试(Debug)是作为一个程序员必须要学会的东西,学会调试可以极大的提高开发效率,排错时间,很多人不喜欢调试,但我认为这 ...
- java与.net比较学习系列开发环境和常用调试技巧常用操作快捷键
调试 F5 F11 调试运行 CTRL+F5 暂无 非调试运行 F6 不适用 编译整个解决方案 SHIFT+F6 不适用 编译当前选择的工程 SHIFT+F5 CTRL ...
- VS2010断点调试技巧
设置断点:在如下图中的红色圆点处设置断点,红色圆点表示已经在这行设置断点.快捷键F9. 启动调试:按F5或者点击左边红框中的按钮.右边框是开始执行(不调试)Ctrl+F5. 调试工具栏:下面是工具 ...
- Android开发工具——Android Studio调试技巧
.调试的两种方式 到目前,调试的相关基础我们已经介绍完了,但是不少同学对Android Studio中这两个按钮感到困惑:Debug和Attach process. 这里我们就简单介绍一下这两者的区别 ...
随机推荐
- Android公共title的应用
我们在开发Android应用中,写每一个页面的时候都会建一个title,不是写一个LinearLayout就是写一个RelativeLayout,久而久之就会觉得这样繁琐,尤其几个页面是只是标题不一样 ...
- C#向PPT文档插入图片以及导出图片
PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...
- PHP与JAVA构造函数的区别
早期的PHP是没有面向对象功能的,但是随着PHP发展,从PHP4开始,也加入了面向对象.PHP的面向对象语法是从JAVA演化而来,很多地方类似,但是又发展出自己的特色.以构造函数来说,PHP4中与类同 ...
- spring boot 实战:我们的第一款开源软件
在信息爆炸时代,如何避免持续性信息过剩,使自己变得专注而不是被纷繁的信息所累?每天会看到各种各样的新闻,各种新潮的技术层出不穷,如何筛选出自己所关心的? 各位看官会想,我们是来看开源软件的,你给我扯什 ...
- 深入理解javascript函数定义与函数作用域
最近在学习javascript的函数,函数是javascript的一等对象,想要学好javascript,就必须深刻理解函数.本人把思路整理成文章,一是为了加深自己函数的理解,二是给读者提供学习的途径 ...
- 学习C的笔记
[unsigned] 16位系统中一个int能存储的数据的范围为-32768~32767,而unsigned能存储的数据范围则是0~65535.由于在计算机中,整数是以补码形式存放的.根据最高位的不同 ...
- Android studio使用git教程
①下载Git工具,配置到Android studio中 http://git-scm.com/downloads ------------------------------------------- ...
- 关于Linux和Windows下部署mysql.data.dll的注册问题
mysql ado.net connector下载地址: http://dev.mysql.com/downloads/connector/net/ 选择版本: Generally Available ...
- centos7+mono4.2.3.4+jexus5.8.1跨平台起飞
很早之前就开始关注.net跨平台,最近正好测试了下用EF6连接mysql,于是就想直接把网站扔进Linux.查了很多资料,鼓捣了两个晚上,终于成功. 这里我使用的是budgetvm的1G openvz ...
- Vue.js——60分钟browserify项目模板快速入门
概述 在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题. 首先,这限定了我们的开发模式是基于页面的,而不是基于组件的,组件的所有代码都直 ...