贯穿程序员一生的必备开发技能——debug
1.什么是debug
debug是一种运行模式,用来跟踪程序的走向,以及跟踪程序运行过程中参数的值的变化。
2.debug的作用
debug一般用来跟踪代码的运行过程,通常在程序运行结果不符合预期或者出现异常的情况下使用。所以使用debug模式可以很好的跟踪问题,帮助程序员处理bug。对每个程序员而言,基本上每天都要用到debug功能。
3.debug的使用
各种开发工具的debug基本上都大同小异,下面以Intellij Idea的debug使用为例。
3.1debug模式运行程序
bug的中文意思就是小虫子,图中的小虫子图标就是debug模式启动程序,eclipse的运行按钮旁边一样的有一个小虫子图标。
3.2程序中打上断点
上图中的红色的小圆点就是断点,用鼠标在那一行的前面点击一下就行了,取消断点再次点击就行了。
3.3step over单步调试
在debug视图中点击step over单步执行,快捷键为f8。单步执行的意义在于执行打断点的那一行,后续每执行一步可以再按一下f8。可以在这一步查看每一个执行步骤的变量的值,变量的值可以在Variables里面查看,在代码的视图窗口中每个变量的后面也会显示变量的值。
3.4step into进入方法
点击step into,程序向下执行一步,如果当前行代码中有待执行的函数,这一步将会进入到函数内部去执行,然后又可以进行单步执行调试。这一步的快捷键是f7。右便蓝色向上的那个step out的按钮就是跳出当前方法的调试,返回到之前的断点执行到的地方。
3.5纯断点执行
纯断点执行就是只程序只在断点的地方进入调试模式,中间的执行过程直接执行过去,这样可以方便多个断点的调试。
3.6查看程序中所有的断点
点击那两个红点合起来的按钮,就可以查看程序中所有的断点,复选框选中就是使断点生效,不勾选则失效。
3.7查看变量的值
已经执行到过的代码每一行将会将行内的变量的值显示在当前行的后面,Variables视图窗口中也可以查看每个变量的值。
到此,idea的debug基本上就说完了,几乎所有的程序员都会使用的这个技能。如果你还不会,赶紧打几个断点调试一下吧。
最后,如果你有仍何开发上面的问题都可以和我交流沟通。欢迎关注微信公众号“java工会”。
贯穿程序员一生的必备开发技能——debug的更多相关文章
- 3名程序员被抓!开发“万能钥匙”APP,撬走3个亿
来自:程序员头条 报道 又有 3 名程序员被抓!开发"万能钥匙"APP,撬走 3 亿! 前几天,据央视新闻报道,上海公安机关接到共享单车企业报案,随后破获了一起共享单车万能解锁 A ...
- .Net程序员快速学习安卓开发-布局和点击事件的写法
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 本系列课程 致力于老手程序员可以快速入门学习安卓开发.系统全面的从一个.Net程序员的角度一步步学习总结安 ...
- 2018年,Java程序员转型大数据开发,是不是一个好选择?
近日网上有一篇关于Java程序员职场生存现状的文章“2017年 Java 程序员,风光背后的危机”,在Java程序员圈子里引起了广泛关注和热议. 2017年,Java 程序员面临更加激烈的竞争. 不得 ...
- 《程序员的呐喊》:一个熟悉多种语言的老程序员对编程语言、开发流程、google的战略等的思考,比较有趣。 五星推荐
作者熟悉二三十种编程语言,写了20多年代码.本书是作者对编程语言.开发流程.google的战略等的思考.比较有趣. 前面部分是作者对编程语言的一些思考.作者鄙视C++, Java,面向对象.比较有趣的 ...
- Java程序员25个必备的Eclipse插件
原文:http://www.fromdev.com/2012/01/25-best-free-eclipse-plug-ins-for-java.html "工欲善其事, 必先利器" ...
- 作为一个程序员怎么通过android开发赚钱
上面是一个程序员通过Android开发每天的收入,信则有! 自己学安卓差不多,有一年了.我本来是从事javaweb开发的,可能学习安卓上手会快点.其实安卓没有那难 .首先开发安卓程序,要有一个,开 ...
- 非IT行业大企程序员讲述MIS系统开发案例
雪莉叹了一口气,调整了一下被汗水濡湿的刘海,然后向后靠在办公椅中,伸手在电脑键盘上输入了一些内容, 最后拿起印刷着房地产广告的扇子,边扇风边等待着. 她的工位在办公室的东侧角落,侧靠着窗.此时 ...
- 程序员找工作必备 PHP 基础面试题
1.优化 MYSQL 数据库的方法 (1) 选取最适用的字段属性,尽可能减少定义字段长度,尽量把字段设置 NOT NULL, 例如’省份,性别’, 最好设置为 ENUM (2) 使用连接(JOIN)来 ...
- 涨姿势啦!Java程序员装X必备词汇之对象标记Mark Word!
大家好,我是庆哥Java,一个专注于干货分享的Java自学者! 写在前面 如果你已经知道什么是Mark Word,那我也希望你都好好阅读下本篇文章,因为你有可能发现不一样的切入点来帮助你更加深入的了解 ...
随机推荐
- 芝麻HTTP:爬虫之设置Selenium+Chrome代理
微博登录限制了错误次数···加上Cookie大批账号被封需要从Cookie池中 剔除被封的账号··· 需要使用代理··· 无赖百度了大半天都是特么的啥玩意儿???结果换成了 Google手到擒来 分分 ...
- .Net Core 1.0升级2.0(xproj项目迁移到.csproj )
vs2015的创建的项目是以*.xproj的项目文件,迁移到vs2017需要如下准备: 1.安装好vs2017(废话) 2.下载最新的SDK和 .NET Core 2.0 Preview 1 Runt ...
- The Moving Points HDU - 4717
There are N points in total. Every point moves in certain direction and certain speed. We want to kn ...
- Windows系统还原失败心得
最近我的Windows10连续几天出现了蓝屏,怀疑是某软件的Bug造成的,于是想用系统还原功能回到前一段时间,我找到了那款软件安装的时间. 到了选择还原点界面,发现有5个还原点,最旧的一个刚好就是那款 ...
- 【Luogu1273】有线电视网(动态规划)
[Luogu1273]有线电视网(动态规划) 题面 题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端, ...
- Zabbix 监控 Docker容器
我们可以通过Python提供的模块docker来取各个docker容器的监控参数.参考文档:http://docker-py.readthedocs.io/en/stable/containers.h ...
- Session和Cookie总结
一.Session和Cookie 1.Cookie 1.cookie创建于服务器,保存于浏览器,保存了特定网站操作记录和资料凭证的信息. 2.未设置cookie期限的时候,默认是关闭浏览器后cooki ...
- ES6的模块化规范和CommonJS的模块化规范的差异
ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,旨在成为浏览器和服务器通用的模块解决方案.其模块功能主要由两个命令构成:export 和 import.export命令用于规定模块的对 ...
- 《阿里巴巴Android编码规范》阅读纪要(二)
版权声明:本文出自汪磊的博客,转载请务必注明出处. 本篇继续上一篇<阿里巴巴Android编码规范>阅读纪要(一) ,还是建议各位同学有时间完整阅读一下<阿里巴巴Android编码规 ...
- HandsonTable日期控件的汉化
由于项目的需要,想把HandsonTable自带的日期中英文替换成中文.其实这个不难,只要在库文件中替换下就可以了,替换的效果对比如下: 如果有需要的同学,可以在此处下载 By QJL