idea断电调试 idea如何打断点调试

【最佳答案】Java编程的常用开发工具工欲善其事必先利其器,一个好的开发工具,能让你事半功倍,不打断开发者的编程思路EclipseEclipse是一个开放源码项目,跨平台的自由集成开发环境(IDE),用来开发Java,后来通过安装不同的插件Eclipsidea断电调试1Java编程的常用开发工具
工欲善其事必先利其器,一个好的开发工具,能让你事半功倍,不打断开发者的编程思路
Eclipse


Eclipse是一个开放源码项目,跨平台的自由集成开发环境(IDE),用来开发Java,后来通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具,比如著名的Pydev集成到eclipse开发python 。
eclipse这个框架非常好,后续的dbever 数据库管理软件也是基于他的这个框架开发的 。


IntelliJ IDEA
IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、代码分析、这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主,他的旗下还有Pycharm 、 webstrom 这些开发工具 。
IEAE内部也集成了,非常方便的断点和远程断点功能,这大大的发布了开发人员线上调试问题 。


可以说IDEA是目前流行趋势 。重点推荐 。
PowerDesigner
PowerDesigner 是一款数据建模工具,支持60多种关系数据库管理系统(RDBMS)版本 。PowerDesigner运行在Microsoft Windows平台上,并提供了Eclipse插件,作为一个java开发人员,学习数据库建模也是必不可少的技能 。


GIT
git 是目前最流行的版本管理工具,其本身设计是分布式架构,相比SVN更符合目前的软件开发情况 。
git本身是命令行工具,开发人员一般commit和push代码可以通过命令进行,现在上面介绍的IDEA已经很好的集成了git常用功能,开发人员只需要通过快捷就可以完成常用的操作 。
当然如果你需要更加多的功能,可以用功能更加丰富的git gui客户端,比如Tortoise GIT,被大家亲切的称谓小乌龟


其他线上调试
某些情况,开发人员需要查看线上测试或生产环境的问题,也不方便远程调试,就需要拿到jvm的dump 和一些线程堆栈的信息,根据这些进行故障分析 。
这里推荐 阿里开源的Arthas,开源地址:https://github.com/alibaba/arthas


Arthas可以帮助你解决这些调试问题:
1、这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
2、我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
3、遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
4、线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
5、是否有一个全局视角来查看系统的运行状况?
6、有什么办法可以监控到JVM的实时运行状态?
如果日常开发中你遇到上面的问题,arthas就可以很好的帮你解决,值得收藏 。
当然还有很多类似的工具,他们有时为了解决线上问题排查而生,也存在一些各自的优点,这些你再github上都能搜索到相关工具,比如美团也开源了相关工具,具体可以自行检索哦 。
总结
实际上从开发人员角度,需要学习和使用的工具已远不止于此,希望给新学习java的同学一些帮助 。
idea如何打断点调试2对于初学者来说,运用好debug十分重要 。下面以idea为例子,eclipse同样适用,简单介绍一下debug的应用 。
方法/步骤
1/5
打断点
选择某一行,单击打断点 。只有先打了断点,点击debug按钮运行,才能进入debug模式 。
2/5
Step Over
单步执行,如果遇到内部引用的函数方法,会跳过不进入子方法,直接走完子方法显示结果 。
3/5
Step Into
单步执行,遇到子方法进入到方法内部,同样单步执行 。
Force Step Into
强制步入执行,比如一些源码,普通单步是进入不了的 。强制步入可以进入任何方法 。
4/5
Step Out
在执行子方法时,Step out可以直接执行完子方法中的程序,并跳出来 。
5/5
Resume Program
恢复程序,点击可以直接走到下一个断点处,然后再单步执行 。如果之后没有其他断点,则会跑完整个程序 。
idea debug断点调试技巧3若一般Debug进不去的时候(匿名内部类写法)可以在被 submit 包围的代码块中的某一方法内部加入断点调试 (或者加入控制行输出 ,但不太推荐),或者将处理的代码抽成一个方法,然后在方法内单独加断点,其实思路和 在被 submit 包围的代码块中的某一方法内部加入断点调试 是一个道理 。