贯穿程序员一生的必备开发技能——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,那我也希望你都好好阅读下本篇文章,因为你有可能发现不一样的切入点来帮助你更加深入的了解 ...
随机推荐
- Caused by:java.sql.BatchUpdateException:ORA-02291
1.错误描述 Caused by:java.sql.BatchUpdateException:ORA-02291:违反完整约束条件(PEKING.FKA844BA60FCCDD33)-未找到父项关键字 ...
- javaWeb之eclipse创建Servlet模板快捷键设置
没有模板创建Servlet 出现的是除了doPOST 和doGet方法 还有许多方法和一些注释,页面不够清晰 创建模板的步骤是: 1.点击window下的preference 选项 2在 表单框里填写 ...
- windows打开和关闭默认共享方法汇总
Windows启动时都会默认打开admin$ ipc$ 和每个盘符的共享,对于不必要的默认共享,一般都会把它取消掉,可当又需要打开此默认共享时,又该从哪里设置呢.经过自己的验证,汇总出一下方法. 一: ...
- rabbitmq简单收发服务搭建
消息发送.接收简单代码示例 mq.xml //rabbitmq config spring.rabbitmq.host=ip:host spring.rabbitmq.username= spring ...
- View的平移、缩放、旋转以及位置、坐标系
原创 2015年05月12日 13:15:29 标签: Android / Scroll / Scale / Translation / Rotation 24733 Android开发中,经常会接触 ...
- jquery 实现拖动文件上传加进度条
通过对文件的拖动实现文件的上传,主要用到的是HTML5的ondrop事件,上传内容通道FormData传输: //进度条 <div class="parent-dlg" &g ...
- 一个10年Java程序员的年终总结,献给还在迷茫中的你
我越来越担心我作为一个Java程序员的未来. 恍然间,发现自己在这个行业里已经摸爬滚打将近10年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作 ...
- Error:Execution failed for task ':app:processDebugGoogleServices'. > No matching client found for package name 'com.fortythree.sos.flashlight'
Q:导入json文件时的包名不对 A:包名存在的位置是app build gradle中的applicationID
- ZOJ3946:Highway Project(最短路变形)
本文转载自:http://www.javaxxz.com/thread-359442-1-1.html Edward, the emperor of the Marjar Empire, wants ...
- curl post请求总是返回417错误
在进行post请求的时候, curl总是返回417错误 在使用curl做POST的时候, 当要POST的数据大于1024字节的时候, curl并不会直接就发起POST请求, 而是会分为俩步. 发送一个 ...