JCreator调试全攻略

来源:互联网 发布:讨厌杨过 知乎 编辑:程序博客网 时间:2024/05/01 19:45

作者:liguisen

Bloghttp://blog.csdn.net/liguisen

 

本文使用的环境是JCreator3.5Projdk1.5。以Java Application为例着重解决以下问题:

1,  如何用JCreator开始进行调试?

2,  JCreator调试时如何查看变量的值?

3,  JCreator调试时如何接受从键盘输入的数据?

 

基础知识:

1,  什么是jdb

Jdbjdk自带的一个调试器,你可以以命令行方式使用jdb进行调试。

2,  JCreator用什么来进行调试?

JCreator使用jdb来进行调试,但是我们可以使用JCreator的图形界面(确切的说是快捷方式)来调用jdb进行调试,这个对于初学者来说减少了对命令行工作方式的恐惧。

 

如何用JCreator开始进行调试?

1,  首先,在JCreator中进行调试必须以工程(project)的形式存在,对于单个的java文件是无法进行调试的,如果你已经有了一个java文件,那么应该先建立一个恰当的工程然后把你的文件加进工程里面。

2,  从菜单Build->Start Debugger可以开始进行调试,设置断点(F9),单步执行(F10)等功能均具备,Debug Output窗口可以查看相关信息。

调试中如何查看变量的值?

1,  菜单Build->Debugger->Dump(F8)可以查看变量的值,你也可以先用鼠标选中变量再按F8就可以查看该变量的值。

2,  Debug Output窗口显示“局部变量信息不可用。使用 -g 编译以生成变量信息”,那么说明你当前编译的class文件没有包含调试信息,解决方法如下:从菜单Configure->Options…选中JDK Tools(为叙述方便,这个步骤下面统称为“打开option对话框”),选择Compiler,再选中<Default>,单击copy,弹出一个对话框,Name处填上名字,例如Compiler_debug,在Parameters选中Include debug info,然后点ok。这样你就为整个JCreator配置了另外一个编译选项,但此时当前工程并没有选择这个选项。关闭Options对话框,从菜单Project->Project Properties打开工程属性对话框,选择JDK Tools再选择Compilers,你会发现多了一个Compiler_debug,选中它,以后我们的工程就用它来进行编译啦(注:其实我们也可以在这里添加这个Compiler_debug),再重新编译就可以查看变量的值了。

 

调试中如何接受从键盘输入的数据?

如下代码:

import java.io.*;

public class KeyboardInput {

   

    public static void main(String[] args) {

        // Add your code here.

        char c=' ';       

           try {

                  c=(char)System.in.read();

           }

           catch (IOException ex) {

           }

           System.out.println ("you enter "+c);    

    }

}

我们发现,在F10单步调试到c=(char)System.in.read();这一行时,没有地方可以从键盘输入数据,调试无法继续进行下去。继续按F10,提示:main[1] > 未暂停任何对象。解决方法如下:

1,“打开option对话框”,选择Run Application,复制<Default>,命名为Run_debugger,注意Command 项所有选择都不能选!

Parameters项改为:-classpath "$[ClassPath]" -Xdebug –Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_shmem,address=jdbconn,server=y,suspend=y $[JavaClass]

单击ok结束。

2“打开option对话框”,选择Debugger,复制<Default>,命名为Debugger jdbconnApplication Parameters项改为-attach jdbconn(注意空格),点击ok结束。

3从菜单Project->Project Properties打开工程属性对话框,选择JDK Tools,然后Compiler选择Compiler_debugRun Application选择Run_debuggerDebugger选择Debugger jdbconn,单击ok结束操作。这一步你还可以改为这样操作:Compiler选择Compiler_debug,其它的选择Default,然后从菜单->build->RunTime Configuration,然后单击newlabel填上DebugRun Application选择Run_debuggerDebugger选择Debugger jdbconn,如有需要,在这里还可以为main方法填上参数,在单击ok结束操作。然后选择从工具栏的ExecuteDebug按钮开始工作(不能选择从菜单的Execute ProjectF5)或Start Debugger(ctrl+F5)开始),单击旁边的下拉小箭头,选择我们刚才创建的Debug(不是Default)就ok了。

3,  F7Compile Project,如果第3步你选择了第一种方式,那么直接Execute ProjectF5),此时将弹出一个dos窗口,上面显示:'Listening for transport dt_shmem at address: jdbconn',然后这个窗口被挂起(suspend),先不管它,跟着直接Start Debugger(ctrl+F5)开始,然后正常调试,碰到j=System.in.read();这一行时,Debug Output窗口将显示main[1],继续执行,Debug Output窗口将显示main[1] >,此时可以回到刚才的那个dos窗口,输入数据,例如输入一个y回车,然后回到Jcreator继续操作,如果此时你选中c这个变量按F8,你会发现Debug Output窗口将显示main[1]  c = y,这表明c的值已经从键盘输入进去了。如果第3步你选择了第二种方式,那么就从工具栏按钮的下拉箭头开始工作吧。

 

更多的调试功能请参考jdb文档。

Good luck

原创粉丝点击