java调试技巧
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java调试技巧
条件断点
如果你不知道如何添加断点,只必须点击左边面板(行号前面)断点即被创建。
在调试界面中,"断点'视图会把所有被创建的断点列出来。
我们可以给它加一个布尔条件,也就是说,该断点会被激活并且如果布尔条件为真,就会执行该断点,否则将会跳过往下执行。
异常断点
在断点视图中,有一个J!标记按钮!我们可以使用该按钮来添加一个Java异常断点。
例如,我们想让程序在碰到空指针异常(NullPointerException)时,仍然能持续调试,那么我们可以使用该按钮来添加一个异常断点!
监视点
这是一个非常好的功能,当选定的属性访问或修改程序时,程序会停止执行并同意进行调试。
在Outline视图中选择一个类变量并从上下文菜单中选择切换监视点,属性监视点将会被创建,在断点(Breakpoints)视图中会把所有监视点用列表的形式显示出来。
评估/检查
按Ctrl+Shift+D或者Ctrl+Shift+I来显示选定变量或者表达式的值。
我们也可以给一个变量或表达式添加永久观察点,当程序在调试时,这些观察点就会在表达式视图(Expression view)中显示出来。
修改变量值
在调试过程中,我们可以修改变量值。
先选好一个变量然后进入变量视图(Variables view),依据变量类型在其对应的Value 列里输入值即可。
2Java调试工具
1. JDB
Java Debugger(JDB)是一款高效的调试器,能够识别和修复Java程序中的bug。
它也是一个用于Java类的简单的命令行调试器。
此调试器包涵的Java平台调试器体系结构(JPDA)可强化检查和调试本地或远程的JVM(Java虚拟机)。
JDB也是流行的Java IDE,包括NetBeans IDE和Eclipse IDE 来支持Java调试,因此,非常有助于Java开发。
2. Bugloo
这款源代码级的调试器是专门〔制定〕用于支持Scheme编译器Bigloo的。
因此,使用Bigloo编译器的程序可以高效地使用Bugloo调试器进行调试。
当然,不仅仅是Bigloo程序,还有Java
程序或者两者的结合都可以使用此调试工具。
它布暑在提供了一套标准API的JVM调试架构上。
此专家级软件还包涵了与GDB相同的调试模型,并提供众多的功能来帮助我们应对当代〔编程〕语言中的功能问题。
3.Cricket Cage
又一个多功能的调试器,通过自动生成重复性bug和测试场景的JUnit测试用例来强化对Java程序的调试。
因此,它可以通过扩大生成代码来提升我们的工作效率。
这更进一步地同意安装代码生成器和执行开发相应测试用例的程序。
此外,你还可以通过整合测试用例到build.xml文件中来重复每一个构建的测试。
4. Artima SuiteRunner
这是一款发布在开源软件许可证下的免费开源工具包,非常合适用于测试Java程序。
Artima SuiteRunner可当作独立的测试工具,用来开发支持Java API的单元测试和一致性测试。
并且,它还可以和JUnit一起来执行现有的JUnit测试套件。
JUnit用户还可享受到由调试器提供的帮助以保证代码万无一失。
它提供报告、配置文件和runpath给用户,同时保持实现用户开发的JUnit测试用例。
3如何调试Java程序
1.在你觉得有错的地方设置断点。
在代码行数前,点击右键,
注意是右键,然后选择Toggle Breakpoint。
你可能会问,我如何知道在哪儿放置断点?如果对这个问题完全没有感觉,你完全可以多打几个断点,单步调试直到找到异常,只是多花一点时间而已,而且这样可以更深入了解程序的执行过程!当然,如果你大致可以直到哪里可能会出问题,或者异常信息报告类位置,那么就可以在这里设置断点。
2.点击Debug,如果是web程序,必须要你将Tomcat或者Apache 服务器以Debug模式启动。
这很重要,标准的Start模式,不能进入预先设置的断点,也就不能达到调试的目的。
3.运行程序,当程序运行到刚刚设置断点的位置就会停下来,并且那行代码底色会高亮显示。
这时候,你可以通过屏幕按钮或者键盘控制程序的进行。
下面是键盘对应调试的快捷键,如果不起作用,你可以检查一下是不是键盘冲突。
比如有道词典的快捷键,常常会和Debud模式下的Resume冲突。
4.进入调试界面可以看到你想要的信息。
5.在Variables里面可以查看所有变量的值,比如刚刚设置的断点里面的值,右键ChangeValue可以更改,部分IDE支持在窗口中热更改并执行代码。
6.下面按钮第一个是进入方法执行,比如你调用了其他方法,可以进入方法一步一步执行,如果点击第二个按钮,只会在本方法内一步一步执行,第三个按钮时你跳出此方法,持续执行调用
这个方法的原方法。
7.执行完程序。
8.为Eclipse添加反编译插件,更好的调试
4java程序错误类型
语法错误是指由于编程中输入不符合语法规则而产生的。
程序编译就通不过,程序不能运行起来。
此类错误最简单,调试起来比较容易。
例如:表达式不完整、缺少必要的标点符号、关键字输入错误、数据类型不匹配、循环语句或选择语句的关键字不匹配等。
通常,编译器对程序进行编译的过程中,会把检测到的语法错误以提示的方式罗列出来,又称为编译错误。
语法错误的调试,则可以由集成开发环境提供的调试功能来实现,在程序进行编译时,编译器会对程序中的语法错误进行诊断。
编译诊断的语法错误分为3中:致命错误、错误和警告。
(1)致命错误:这个错误大多是编译程序内部发生的错误,发生这类错误时,编译被迫中止,只能重新启动编译程序,但是这类错误很少发生,为了安全,编译前最好还是先储存程序。
(2)错误:这个错误通常是在编译时,语法不当所引起的。
例如:括号不匹配,变量未声明等。
产生这类错误时,编译程序会出现报错提示,我们依据提示对源程序进行修改即可。
这类错误是出
现最多的。
(3)警告:是指被编译程序怀疑有错,但是不确定,有时可强行通过。
例如:没有加void声明的主函数没有返回值,double数据被转换为float类型等。
这些警告中有些会导致错误,有些可以通过。
常规解决方法:此类错误一般程序编译系统会自动提示相应的错误地点和错误原因,比如哪一行代码少了个括号等诸如此类的提示,常见的错误,看懂直接改正即可,如果是看不懂原因,可以将错误提示信息输入搜索引擎查找一下,一般都能找到具体的解决办法。
或者有些编程平台会本身提供一个本地或者在线的信息库,提供具体的错误原因和解决办法,比如微软的.NET开发平台。