免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1087 | 回复: 0
打印 上一主题 下一主题

JCreator调试全攻略 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-17 15:54 |只看该作者 |倒序浏览
本文使用的环境是JCreator3.5Pro,jdk1.5。以Java Application为例着重解决以下问题:
1,  如何用JCreator开始进行调试?
2,  用JCreator调试时如何查看变量的值?
3,  用JCreator调试时如何接受从键盘输入的数据?

基础知识:
1,  什么是jdb?
Jdb是jdk自带的一个调试器,你可以以命令行方式使用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,再选中,单击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,复制,命名为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,复制,命名为Debugger jdbconn,Application Parameters项改为-attach jdbconn(注意空格),点击ok结束。
3,从菜单Project->Project Properties打开工程属性对话框,选择JDK Tools,然后Compiler选择Compiler_debug,Run Application选择Run_debugger,Debugger选择Debugger jdbconn,单击ok结束操作。这一步你还可以改为这样操作:Compiler选择Compiler_debug,其它的选择Default,然后从菜单->build->RunTime Configuration,然后单击new,label填上Debug,Run Application选择Run_debugger,Debugger选择Debugger jdbconn,如有需要,在这里还可以为main方法填上参数,在单击ok结束操作。然后选择从工具栏的Execute或Debug按钮开始工作(不能选择从菜单的Execute Project(F5)或Start Debugger(ctrl+F5)开始),单击旁边的下拉小箭头,选择我们刚才创建的Debug(不是Default)就ok了。
3,  先F7Compile Project,如果第3步你选择了第一种方式,那么直接Execute Project(F5),此时将弹出一个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文档。

作者:liguisen



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15262/showart_341806.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP