在Eclipse中使用debug(Eclipse调试常用技巧)
Eclipse调试方法及log4j调试方法
![Eclipse调试方法及log4j调试方法](https://img.taocdn.com/s3/m/258332c75fbfc77da269b16b.png)
PAOLO DESIGN
可以放公司标志
Log4j调试方法: 调试方法: 调试方法
6. 日志记录范围
log4j.rootLogger=info,appender1,appender2 rootLogger没有指定日志的操作范围,默认日志对所有的包操作,appender指明 输出的方式
如果只针对某些包操作,可以按如下修改: .client2 = info,appender1 表明只有在com.client2下面的包才作如上操作。
PAOLO DESIGN
可以放公司标志
设置断点 : 1. 普通断点 2. 条件断点
断点属性: 断点属性:
1.hit count 执行多少次数后暂挂 用 于循环 2.enable condition 遇到符合你输入 条件(为ture\改变时)就暂挂 3.suspend thread 多线程时暂挂此线 程 4.suspend VM 暂挂虚拟机
PAOLO DESIGN
可以放公司标志
Log4j调试方法: 调试方法: 调试方法
4. log4j.properties的使用 的使用 log4j.properties的内容显示如下: log4j.rootLogger=debug,appender1 (指明log4j中的输出级别是debug) log4j.appender.appender1=org.apache.log4j.ConsoleAppender (指明日志信息在 什么地方进行处理,这里指明是在控制台进行输出) yout=org.apache.log4j.TTCCLayout (日志文件的输出 样式)
PAOLO DESIGN
可以放公司标志
查看变量: 查看变量: Variables 视图(在 Display 窗口中)显示了选中的堆栈帧中的变量值。要查看 所请求的变量,只需展开 Variables 视图中的树直到您看到所请求的元素为止。 您也可以在 Debug 视图中单步执行代码的同时,在 Variables 视图中查看变量。
Eclipse编程中的Debug工具的使用方法
![Eclipse编程中的Debug工具的使用方法](https://img.taocdn.com/s3/m/e6f74406ce2f0066f43322d6.png)
Eclipse编程中的Debug工具(即自动找错工具)的使用方法: 首先在Eclipse中编写一段代码以下边代码为例
看到代码左边的蓝条
找到int n=10,X=5,y=2;这行点击鼠标右键,
点击Toggle Breakpoint
点击后就会在int n=10,X=5,y=2;这行左侧位置出现一个小蓝点
然后在程序栏上点击小虫子图案(Debug)按钮
点击后会弹出以下对话框
问的是要不要更换画面点击“yes”
就到了下边的全新界面
其中区域A 是写代码区域;区域B 是显示变量值的区域;C 区域是程序输出的位置
小箭头指到哪行就是接下来要执行的代码。
点击图片中箭头位置名为(step over )程序就会向下继续读代码。
其中H 标黄色是表示H 值相对原来值有变化了。
程序完全执行完后点击step over 后会出现以下:
不用管。
点击Resume 表示Debug
完成。
A
B
C
点击Resume表示Debug完成出现下边对话框
那接下来怎么回到原来的位置,首先移动到程序最右边,在右上角显示目前在debug模式下,
点击它左边java按钮
就回到了Eclipse熟悉的编辑代码的页面。
可以通过右上角在两个界面来回切换。
如果又上角没有Debug按钮了,点击java左边加号按钮
出现下边对话框
点击debug就回到了debug界面。
本质上debug和自己读代码作用一样;如果程序写不出来的时候用下debug就能找出是哪里出了问题。
友情提示:范文可能无法思考和涵盖全面,供参考!最好找专业人士起草或审核后使用,感谢您的下载!。
DEBUG 使用教程 查错 排错 debug 模式 大全
![DEBUG 使用教程 查错 排错 debug 模式 大全](https://img.taocdn.com/s3/m/6aceecf0770bf78a652954f3.png)
1.项目报错,即eclipse里面项目工程有红叉eclipse中打开Problems视图,window->show view->other->General->Problems通过Problems视图中的错误信息,找到错误源(有可能是java文件,或者(xml,有可能是 1.xml有错;2.含有错误字符(比如从word复制过来);3.假报)buildpath -> eclipse中工程,右键->Build Path-> Configure Build path -> Libraries选项卡察看JRE System Library(引入jdk自带包0),Server Runtime(引入jsp/servlet实现包,比如Apache Tomcat V6.0(这个是window->preferences->server下定义的Runtime Environment对应))Web App Libraries(包含了eclipse中项目工程自带的WEB-INF/lib 下引入的jar包)junit(调试用,不一定需要)User Library(一般eclipse使用者把自己引入的jar包放在一起,定义一个library,在eclipse中引用)2.项目启动,控制台报错察看控制台错误信息可能错误信息包括:1.session factory(可能是hibernate的实体类定义错误), 控制台一般看到dao,sessionFactory,hibernate的关键字eg.Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for name1 in class demo.ssh2.model.Roleatorg.hibernate.property.BasicPropertyAccessor.createGetter(BasicProperty Accessor.java:306)atorg.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAc cessor.java:299)atorg.hibernate.mapping.Property.getGetter(Property.java:294)atorg.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEnt ityTuplizer.java:300)atorg.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTu plizer.java:141)atorg.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.ja va:78)... 55 more2.bean定义错误,dao,service,action,1.<property name="" ref=""/>中的ref找不到对应的bean的id从sessionfactory->dao->service->action,前面的错误总能导致出后面的错误eg.比如定义了如下spring配置信息<bean id="sessionFactory" ..../><bean id="baseDao" abstract="true" class="demo.ssh2.dao.BaseHibernateDao"><property name="sessionFactory" ref="sessionFactory1" /></bean>控制台报错org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in file...(备注:此处省略多少字)Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sessionFactory1' is definedatorg.springframework.beans.factory.support.DefaultListableBeanFactory.g etBeanDefinition(DefaultListableBeanFactory.java:527)atorg.springframework.beans.factory.support.AbstractBeanFactory.getMerg edLocalBeanDefinition(AbstractBeanFactory.java:1083)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetB ean(AbstractBeanFactory.java:274)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:190)atorg.springframework.beans.factory.support.BeanDefinitionValueResolver .resolveReference(BeanDefinitionValueResolver.java:322)... 30 more2.setter方法名和spring配置文件中的<property name="" ref=""/>中的name 不匹配eg.比如定义如下:<bean id="roleService" class="demo.ssh2.service.RoleService"><property name="roleDao" ref="roleDao"/></bean>RoleService中roleDao的setter方法如下public void setRoleDao1(RoleDao roleDao) {this.roleDao = roleDao;}方法setRoleDao1和<property name="roleDao" 不匹配控制台报错:Caused by: org.springframework.beans.NotWritablePropertyException:Invalid property 'roleDao' of bean class[demo.ssh2.service.RoleService]:Bean property 'roleDao' is not writable or has an invalid setter method.Did you mean 'roleDao1'?atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWr apperImpl.java:1024)atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWr apperImpl.java:900)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues( AbstractPropertyAccessor.java:76)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues( AbstractPropertyAccessor.java:58)atorg.springframework.beans.factory.support.AbstractAutowireCapableBea nFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.jav a:1358)... 28 more3.缺少setter方法比如配置<bean id="roleService" class="demo.ssh2.service.RoleService"><property name="roleDao" ref="roleDao"/></bean>在类RoleService中没有定义roleDao的setter方法控制台报错:Caused by: org.springframework.beans.NotWritablePropertyException:Invalid property 'roleDao' of bean class [demo.ssh2.service.RoleService]:Bean property 'roleDao' is not writable or has an invalid setter method.Does the parameter type of the setter match the return type of the getter?atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWr apperImpl.java:1024)atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWr apperImpl.java:900)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues( AbstractPropertyAccessor.java:76)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues( AbstractPropertyAccessor.java:58)atorg.springframework.beans.factory.support.AbstractAutowireCapableBea nFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.jav a:1358)... 28 more3.eclipse缓存问题,更改了文件,部署到web server中的文件仍然旧的servers视图中,先停止server,然后删除servereclipse中点击项目工程,Project->clean->最上面选中Clean Projects selected below->点击ok3.项目运行,控制台报错察看控制台错误信息可能错误信息包括:1.jdbc配置错误(数据库url,用户名,密码)比如jdbc配置文件错误,将ername=root修改为ername=root1页面报错如下:org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection 控制台报错如下:2013-11-20 09:39:25,441 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] Cannot create PoolableConnectionFactory (Access denied for user 'root1'@'localhost' (using password: YES))2.页面访问不到404或页面有异常信息根据访问的url里面的action,找到Action类对应的方法,打个断点(打在方法体内的代码块的第一行)如果不能进入debug视图,表示struts.xml配置文件有问题,页面输入url中的action找不到对应的Action类eg.比如将strus.xml配置名为<action name="role/list",页面访问role/list1.acito页面报错:ng.NoSuchMethodException:demo.ssh2.action.RoleAction.list1()ng.Class.getMethod(Class.java:1605)如果能进入debug视图,表示struts.xml配置文件没有问题,1.一般控制台会有异常栈错误信息eg.比如RoleAction有如下方法public String list(){List<?> list = roleService.getList();ActionContext.getContext().put("roles", list);return "list";}RoleService中getList方法如下public List<?> getList(){throw new RuntimeException();}页面报错:ng.RuntimeExceptiondemo.ssh2.service.RoleService.getList(RoleService.java:13)2.struts2标签或jstl标签使用错误3.页面不能显示出数据,1.action中私有实体类属性没有gettter/setter方法,或者没有使用request.setAttribute,或者使用ActionContext.getContext().put,传值2.struts2标签或jstl标签使用不对,但页面不报错。
在MyEclipse中用debug调试应用程序
![在MyEclipse中用debug调试应用程序](https://img.taocdn.com/s3/m/c2cb936a26284b73f242336c1eb91a37f11132ab.png)
在MyEclipse中用debug调试应用程序说来惭愧,本人虽然用MyEclipse已经相当熟练,却从来都不会用debug调试应用程序。
Debug可是说是MyEclipse中一个相当重要的功能,今天就来说说在MyEclipse中怎么用debug功能调试程序。
Debug中常用的3个快捷键是F5、F6、F7,这3个快捷键的意思是:●F5:在MyEclipse切换到debug视图时图标为,为单步测试,作用是跳入,比如说一大步中分为10小步,单击F5一次就会走完一小步,走完这一大步则需要单步10次。
●F6:在MyEclipse切换到debug视图时图标为,与F5一样也是单步测试。
只不过与F5不同的是F5追求的是过程,而F6追求的是结果。
如果一大步中分为10小步,单击F6一次就可以得到最后一步的结果.●F7:在MyEclipse切换到debug视图时图标为,作用是跳出函数。
比如当我们调试时进入了某个jar包中的类,我们可以单击F7跳出此类。
下面开始学习dedug旅程。
首先做一个有bug的加法计算器,界面如下所示:代码清单如下所示:●Strings.xml中的代码如下所示:[html]view plaincopyprint?1.<?xml version="1.0"encoding="utf-8"?>2.<resources>3.<string name="app_name">Debug测试</string>4.<string name="add">+</string>5.<string name="equ">=</string>6.<string name="call">计算</string>7.</resources>● Main.xml中的代码如下所示:[html]view plaincopyprint?1.<?xml version="1.0"encoding="utf-8"?>2.<LinearLayout xmlns:android="/apk/res/android"3.android:layout_width="fill_parent"4.android:layout_height="fill_parent"5.android:orientation="horizontal">6.7.<EditText8.android:id="@+id/num1"9.android:layout_width="50px"10.android:layout_height="wrap_content"11.android:numeric="decimal">12.13.<requestFocus/>14.15.</EditText>16.17.<TextView18.android:layout_width="wrap_content"19.android:layout_height="wrap_content"20.android:text="@string/add"21./>22.23.<EditText24.android:id="@+id/num2"25.android:layout_width="50px"26.android:numeric="decimal"27.android:layout_height="wrap_content"/>28.29.<TextView30.android:layout_width="wrap_content"31.android:layout_height="wrap_content"32.android:text="@string/equ"/>33.34.<EditText35.android:id="@+id/result"36.android:layout_width="50px"37.android:focusable="false"38.android:layout_height="wrap_content"/>39.40.<Button41.android:id="@+id/callButton"42.android:layout_width="wrap_content"43.android:layout_height="wrap_content"44.android:text="@string/call"/>45.46.</LinearLayout>●Activity类中的代码如下所示:[java]view plaincopyprint?1.packagecom.yqsn.test;2.3.importandroid.app.Activity;4.importandroid.os.Bundle;5.importandroid.view.View;6.importandroid.widget.Button;7.importandroid.widget.EditText;8.importandroid.widget.TextView;9.10.public classTestDebugActivity extends Activity {11./** Called when the activity is firstcreated. */12.private EditText numText1;13.private EditText numText2;14.private TextView sumText;15.private Button callButton;16.@Override17.public void onCreate(BundlesavedInstanceState) {18.super.onCreate(savedInstanceState);19. setContentView(yout.main);20. numText1=(EditText)findViewById(R.id.num1);21. numText2=(EditText)findViewById(R.id.num2);22. callButton=(Button)findViewById(R.id.callButton);23. callButton.setOnClickListener(newView.OnClickListener() {24.25.@Override26.public void onClick(View v){27.// TODOAuto-generated method stub28. StringnumText1Str=numText1.getText().toString();29. StringnumText2Str=numText2.getText().toString();30.float result=Float.parseFloat(numText1Str)+Float.parseFloat(numText2Str);31. sumText.setText(""+result);32. }33. });34. }35.}运行此计算器,界面如上所示,当我们输入数值后单击“计算”后出现bug 了,如下所示:我们分析可以看出我们是在输入数值点击“计算”按钮后出现问题的,分析代码,我们可以猜想出可能是我们在方法在中执行“单击侦听器”即setOnClickListener()方法时出错了。
Eclipse的Debug调试技巧
![Eclipse的Debug调试技巧](https://img.taocdn.com/s3/m/4bf09d05876fb84ae45c3b3567ec102de2bddfc6.png)
Eclipse的Debug调试技巧作为开发⼈员,掌握开发环境下的调试技巧⼗分有必要。
我们在编写java程序的过程中,经常会遇到各种莫名其妙的问题,为了检测程序是哪⾥出现问题,经常需要增加⽇志,看变量的值,这样调试很⿇烦。
假设我每天花费1⼩时在调试我的应⽤程序上的话,那累积起来的话也是很⼤量的时间。
由于这个原因,⽤这些时间来重视并了解所有使我们调试更⽅便的功能。
那能为你省下⼀些时间,也将会使你的⽣活更安逸、轻松。
⾸先我们需要注意三个点:不要使⽤System.out.println作为调试⼯具\使⽤⼀个⽇志分析器来阅读⽇志\启⽤所有组件的详细的⽇志记录级别⼀个关于调试的疯狂声明作为开头。
但它必须是要说的!尝试切分⼀下你那复杂的逻辑成多个独⽴的单元,并编写单元测试来检测你代码的正确性。
我想像如下这样的流程应该是发⽣得⾮常频繁的—-⼀些Debug模式的界⾯,共分为5个区域(1)Debug(调试)区域,显⽰当前正在调试代码是什么,在第多少⾏(2)Variables(变量)区域,显⽰变量的值。
(3)代码编辑区(4)代码结构区,显⽰代码中的各个⽅法。
(5)Console(控制台)区域。
⼀、条件断点我们通常调试断点的时候⼀般就是点击⾏号的左边,这个时候就会有断点被打起来。
在debug视图中,BreakPoint View将所有断点都列出来,但是我们可以添加⼀个boolean类型的条件来决定断点是否被跳过。
如果条件为真,在断点处程序将停⽌,否则断点被跳过,程序继续执⾏。
如果你只对应⽤中的某部分感兴趣的话,这个功能⾮常有⽤。
例如,如果你要在第13次循环的时候检查程序,或者在⼀个抽象⽗类中调试某些功能,⽽你只关注其中⼀个具体的实现。
你可以在断点视图中设置条件,或者通过代码旁边的蓝⾊断点标记的右键菜单(”Breakpoint Properties”)设置。
你可以在条件代码⽚段为true的时候暂停程序,或者当代码⽚段的值改变的时候挂起程序。
elipse的debug使用
![elipse的debug使用](https://img.taocdn.com/s3/m/854b072ebfd5b9f3f90f76c66137ee06eff94ed1.png)
elipse的debug使用Elipse是一款功能强大的IDE,可以用于开发多种类型的应用程序。
在使用Elipse进行开发时,debug是一个非常重要的环节。
下面将介绍Elipse的debug使用方法。
1. 配置debug环境在Elipse中进行debug,首先需要配置debug环境。
在菜单栏中选择“Run” -> “Debug Configurations”,在弹出的窗口中选择适合自己项目的debug环境。
例如,对于Java项目,可以选择Java Application。
2. 启动debug在配置好debug环境后,我们就可以启动debug了。
在菜单栏中选择“Run” -> “Debug”或者点击工具栏中的debug按钮,Elipse 将会启动debug,并在控制台输出debug信息。
3. 设置断点断点是debug过程中非常重要的一个功能,我们可以通过设置断点来暂停程序的执行,观察当前程序的状态。
在代码行号的左侧单击鼠标左键,就可以设置断点。
在debug过程中,当程序执行到断点处时,程序将会暂停,我们就可以在debug窗口查看程序的状态了。
4. 查看变量值在debug过程中,我们可以查看各个变量的值,以便更好地了解程序的状态。
在debug窗口中,选择“Variables”选项卡,就可以查看当前所有变量的值。
5. 单步执行在debug过程中,我们可以逐行执行程序,以便更好地了解程序的执行过程。
在debug窗口中,选择“Step Into”或者“Step Over”按钮,就可以单步执行程序了。
6. 继续执行在debug过程中,当程序暂停在某个断点处时,我们可以继续执行程序。
在debug窗口中,选择“Resume”按钮,程序将会继续执行。
总之,Elipse的debug功能非常强大,能够帮助我们更好地了解程序的执行过程,及时发现问题并解决。
掌握Elipse的debug使用方法,对于程序开发和调试都非常有帮助。
在Eclipse中使用debug(Eclipse调试常用技巧)
![在Eclipse中使用debug(Eclipse调试常用技巧)](https://img.taocdn.com/s3/m/8a5d8708f12d2af90242e6af.png)
Eclipse调试常用技巧1、条件断点断点大家都比较熟悉,在Eclipse Java编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。
条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。
在断点处点击鼠标右键,选择最后一个"Breakpoint Properties"断点的属性界面及各个选项的意思如下图,2、变量断点断点不仅能打在语句上,变量也可以接受断点,上图就是一个变量的打的断点,在变量的值初始化,或是变量值改变时可以停止,当然变量断点上也是可以加条件的,和上面的介绍的条件断点的设置是一样的。
3、方法断点方法断点就是将断点打在方法的入口处,方法断点的特别之处在于它可以打在JDK的源码里,由于JDK在编译时去掉了调试信息,所以普通断点是不能打到里面的,但是方法断点却可以,可以通过这种方法查看方法的调用栈。
4、改变变量值代码停在了断点处,但是传过来的值不正确,如何修改一下变量值保证代码继续走正确的流程,或是说有一个异常分支老是进不去,能不能调试时改一下条件,看一下异常分支代码是否正确?在Debug视图的Variables小窗口中,我们可以看到mDestJarName变量的值为"F:\Study\eclipsepro\JarDir\jarHelp.jar"我们可以在变量上右键,选择"Change Value..."在弹出的对话框中修改变量的值,或是在下面的值查看窗口中修改,保用Ctr+S保存后,变量值就会变成修改后的新值了。
5、重新调试这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用的开始处。
回退时,请在需要回退的线程方法上点右键,选择"Drop to Frame"6、远程调试用于调试不在本机上的程序,有两种方式,1、本机作为客户端2、本机作为服务端使用远程调试的前提是服务器端和客户端的代码是一致的。
使用 Eclipse 平台进行调试
![使用 Eclipse 平台进行调试](https://img.taocdn.com/s3/m/721514d0360cba1aa811da6f.png)
使用Eclipse 平台进行调试简介:通过本文了解如何使用Eclipse 平台的内置功能来调试软件项目。
调试是编程人员必须面对的工作。
调试的方法有很多种,但是归根结底,就是找出有bug 的代码。
例如,Linux® 应用程序中最常见的一个错误就是段错误(segmentation fault)。
在程序试图访问没有分配给它的内存时,会因为段越界而终止,这时就发生了这个错误。
为了修复这类错误,需要找到触发错误的那行代码。
找到出现问题的代码以后,了解发生错误的上下文、相关值、变量和方法也很有用。
使用调试器找出这些信息非常简单。
编者注:Pawel Leszek 最初于2003 年 5 月撰写了下文,后来由Chris Aniszczyk 于2007 年4 月进行了更新。
Eclipse 调试器和Debug 视图Eclipse SDK 是针对Java™ 开发工具(Java™ Development Tools,JDT)的项目,它具有一个内置的Java 调试器,可以提供所有标准的调试功能,包括分步执行、设置断点和值、检查变量和值、挂起和恢复线程的功能。
除此之外,还可以调试远程机器上运行的应用程序。
Eclipse 平台很健壮,因为其他编程语言可以将该平台提供的调试工具用于各自的语言运行时。
正如下文所示,同一个Eclipse Debug 视图也可以用于C/C++ 编程语言。
Eclipse 平台工作台及其工具是围绕JDT 组件构建的,该组件为Eclipse 提供了下列特性:∙项目管理工具∙透视图和视图∙构造器、编辑器、搜索和构建功能∙调试器Eclipse 调试器本身是Eclipse 内的一个标准插件集。
Eclipse 还有一个特殊的Debug 视图,用于在工作台中管理程序的调试或运行。
它可以显示每个调试目标中挂起线程的堆栈框架。
程序中的每个线程都显示为树中的一个节点,Debug 视图显示了每个运行目标的进程。
如果某个线程处于挂起状态,其堆栈框架显示为子元素。
Android 开发之Eclipse Debug调试详解
![Android 开发之Eclipse Debug调试详解](https://img.taocdn.com/s3/m/6e235eee0242a8956bece423.png)
Android 开发之Eclipse Debug调试详解1.在程序中添加一个断点如果所示:在Eclipse中添加了一个程序断点在Eclipse中一共有三种添加断点的方法第一种:在红框区域右键出现菜单后点击第一项 Toggle Breakpoint 将会在你右键代码的哪一行添加一个程序断点(同样的操作方可取消程序断点)第二种:在红框区域双击鼠标左键将会在你双击代码的哪一行添加一个程序断点(同样的操作方可取消程序断点)第三种:在光标停留的地方使用快捷键 Ctrl + Shift + B 将会在光标停留的这一行添加一个程序断点(同样的操作方可取消程序断点)2.运行Debug 调试让程序停留在添加的断点上如下图所示,在红框内点击下拉菜单选中需要调试的项目则开始运行Debug调试如果不在下拉表中选直接点击表示Debug运行默认项目(默认项目为上一次运行的项目)Debug调试快捷键为单击F11分析一下如何科学的添加程序断点,上图中我为了加断点查看生成出来随机数的值我一共添加了6个程序断点,绿框表示最为科学的断点位置,红框表示不科学的位置。
我们分析一下为什么,如果switch case 中的代码片段过长或者 case 的数量过多如果采用红框的方式来添加程序断点,程序员须要添加很多程序断点万一有疏漏所以会很难快速定位代码执行到了那里,如果使用绿框的方式添加程序断点,程序员只须要在断点出按 F6 单步跳过这一行代码就会走进正确的case中方便继续调试。
Debug调试运行后,程序停在了红框处,按F6单步跳过发现随机数为4 程序停留在了绿框中,程序员可以迅速定位random的值为43.程序停留后查看变量的数值蓝框中的内容表示为断点的入口方法,就好比你的断点是从那个方法进来的,学会看这个真的非常重要,好比我现在明确知道我的一个方法在被调用的时候方法中会出现错误,但是这个方法在程序中100个地方都在调用,我可能断定实在那里调用的时候出的错误,我不可能在100个调用它的地方都加一个断点,我可以在方法中添加程序断点然后在篮框中查看程序是从那个地方走进这个方法的,便可以快速定位问题所在。
在Eclipse中进行调试
![在Eclipse中进行调试](https://img.taocdn.com/s3/m/8366d26cb84ae45c3b358c71.png)
4.4 在Eclipse中进行调试(1)4.4 在Eclipse中进行调试Eclipse为调试运行中的Java应用程序提供了完善的环境。
当在主机模式下运行GWT应用程序时,Eclipse会将它作为一个Java应用程序来运行,而且开发者可以在Eclipse中调试这个GWT应用程序。
对于Ajax开发过程来说,能够调试基于浏览器的Web应用程序的确是一种巨大的进步。
本章前面,我们看到使用applicationCreator脚本和-eclipse选项来创建应用程序时,会自动地创建一个Eclipse启动配置文件。
然后,通过Eclipse就能在主机模式下用Run或Debug命令来启动该应用程序。
启动以后,主机模式浏览器仍然与Eclipse保持连通,并且能够使用Eclipse的调试命令。
首先,我们从断点讲起。
断点是指在代码中设置的一个位置,当执行到该位置时,应用程序会中断运行并将控制权转交给调试器。
这样,我们就能够观察变量的状态或者逐行地执行代码以便于分析程序流。
为了示范断点的应用,可以在HelloWorld应用程序中按钮的ClickListener.onClick方法的第一个行添加一个断点。
设置方法是在编辑器中该行的左侧边空区域单击右键,选择Toggle Breakpoint,如图4-24所示。
这时,我们能够在左侧边空区域上看到由一个蓝色圆点图标表示的断点。
而通过在该边空区域上双击同一个点可以切换断点。
现在,当调试应用程序时,Eclipse会在程序执行到断点时接管调节器。
对于HelloWorld这个例子而言,就是在单击按钮的时候程序会发生中断。
下面,单击工具栏上的Bug图标,打开Debug菜单,从中选择HelloWorld,如图4-25所示。
当在主机模式浏览器中打开HelloWorld时,单击Click Me按钮,就能够看到Eclipse显示的调试器。
此时,应该看到Eclipse处于Debug透视图模式,如图4-26所示。
学习使用Eclipse进行高级的Java开发和调试技巧
![学习使用Eclipse进行高级的Java开发和调试技巧](https://img.taocdn.com/s3/m/7ddb81740166f5335a8102d276a20029bd64630f.png)
学习使用Eclipse进行高级的Java开发和调试技巧第一章:Eclipse简介Eclipse是一个著名的集成开发环境(IDE),用于开发各种编程语言,特别是Java。
它的功能强大,易于使用,可以大大提高开发人员的效率。
本章将介绍Eclipse的基本特点和常用功能。
1.1 Eclipse的特点Eclipse是一个开源软件,支持多种操作系统,具有可扩展性强的插件体系结构,可以根据需要安装各种插件来扩展其功能。
它具有代码补全、代码导航、错误提示、代码重构等功能,使得编写代码更加便捷高效。
1.2 Eclipse的安装和配置要使用Eclipse进行高级的Java开发和调试技巧,首先需要下载并安装Eclipse。
安装后,可以根据需要进行一些基本的配置,如设置工作区、选择编译器版本等。
第二章:Java项目的创建与管理2.1 创建Java项目在Eclipse中创建Java项目非常简单。
选择File -> New -> Java Project,然后按照提示进行操作即可。
同时,可以设置项目名称、路径、源文件夹等。
2.2 导入和导出Java项目可以将已经存在的Java项目导入到Eclipse中,选择File -> Import -> Existing Projects into Workspace,然后选择要导入的项目即可。
同样,可以将项目导出为可执行的JAR文件或WAR文件,以便于分发和部署。
2.3 项目的管理Eclipse提供了多种管理项目的功能。
可以通过Package Explorer或Project Explorer视图来查看和管理项目的文件和文件夹结构,可以创建和删除源文件、包和类,可以设置类路径和库引用等。
第三章:编辑和调试Java代码3.1 编写Java代码在Eclipse中,可以通过打开一个Java源文件来编辑代码。
Eclipse提供了代码补全、语法高亮、代码折叠等功能,大大提高了编辑的效率和质量。
eclipse调试java程序的九个技巧
![eclipse调试java程序的九个技巧](https://img.taocdn.com/s3/m/b0dd2b060a4e767f5acfa1c7aa00b52acfc79cf1.png)
eclipse调试java程序的九个技巧九个技巧:1. 逻辑结构2. 条件debug3. 异常断点4. 单步过滤5. 跳到帧6. Inspect7. expressions8. display9. 远程debug 最早开始⽤eclipse的debug的时候,只会F5 F6 F7 F8,甚⾄F7都不是很搞的明⽩是怎么⽤的,那时候资浅,碰不到需要复杂debug的代码,慢慢⼯作深⼊了,场景碰多了,就需要各种debug技巧来提升定位bug效率,以前找⼈帮忙排查问题,看他开各种窗⼝debug各种溜甚是羡慕嫉妒恨,慢慢久病成医⾃⼰也⽤溜了eclipse的⼀些主要的debug技巧。
稍作整理分享出来。
F5678这四个基本技能就略过不说了,但是最基本的技能能解决90%问题,所以虽然略过不说,但是必须⽤的很溜,相信园友达⼈们这四个肯定⽐我⽤的溜的多。
1. 逻辑结构逻辑结构主要⽤来展⽰map之类的collection数据结构存储的值的,它只展⽰存储值的逻辑部分,⽽屏蔽了数据结构详细的内部结构,更⽅便我们查看map之类collection结构⾥存储的值,推荐使⽤。
这个按钮就是展⽰逻辑结构的按钮,下⾯两个图,上图是不展⽰逻辑结构,下图是展⽰逻辑结构,很明显,下图的结构可读性更强,可以专注于debug的变量。
2. 条件debug条件debug⽤在需要满⾜某种条件才会触发断点的场景,⽐如只有id是12345这条记录会有问题,那就当id等于12345时才触发断点,其他都放过。
右击断点选择断点属性,就能看到这样⼀个配置框,右边的⽂本区块可以填写条件代码,⽐如id==12345,由于每次都要做这个判断,如果循环数很⼤的话,还是有点点慢的,你可以去上个厕所接个⽔啊什么的,还是很⽅便的。
3. 异常断点异常断点只要⽤在debug某种异常的时候,可以配置当这个异常出现后才触发断点,不需要debug去寻找异常。
点击这个红圈就能弹出异常断点的窗⼝,会列出你系统⾥的所有异常类,然后选择需要断点的异常就OK。
eclipse 使用技巧
![eclipse 使用技巧](https://img.taocdn.com/s3/m/6c1a6d0ace84b9d528ea81c758f5f61fb7362815.png)
eclipse 使用技巧Eclipse 是一款功能强大的 Java 集成开发环境(IDE),它提供了许多有助于开发人员提高效率的使用技巧。
下面是一些常用的 Eclipse 使用技巧。
1. 编辑器区域拆分:Eclipse 的编辑器区域可以水平或垂直拆分,用于同时查看多个文件或同一个文件的不同部分。
拆分编辑器区域的方法是拖动编辑器标签到编辑器区域的左侧、右侧、上方或下方。
2. 快捷键:Eclipse 提供了大量的快捷键,可以帮助用户快速完成常见的操作。
例如,Ctrl + S 用于保存文件,Ctrl + F 用于查找,Ctrl + D 用于删除当前行等。
3. 代码补全:Eclipse 的代码补全功能可以帮助开发人员快速输入代码,并提供相关的代码提示。
按下 Ctrl + 空格键即可触发代码补全,同时还可以通过输入关键字的前几个字母进行筛选。
4. 代码重构:Eclipse 提供了多种代码重构的功能,包括重命名变量、提取方法、提取接口等。
可以右键点击要重构的代码,然后选择相关的重构操作。
此外,还可以使用快捷键 Ctrl + Shift + R 快速打开重构对话框。
5. 自动导入:当使用一个未导入的类或方法时,Eclipse 会自动弹出一个提示框,提供导入该类或方法的选项。
按下 Ctrl + Shift + O 快捷键可以自动导入所有需要的类。
6. 快速开启文件:按下 Ctrl + Shift + T 快捷键可以快速在工作空间中搜索并打开指定的 Java 类文件。
同样,Ctrl + Shift + R 快捷键可以用于快速打开任何类型的文件。
7. 快速查找:Eclipse 提供了多种快速查找功能,包括全局搜索、工作空间搜索、在当前文件中查找等。
这些功能可以帮助开发人员快速定位所需的代码或资源。
8. 调试技巧:Eclipse 提供了强大的调试功能,可以帮助开发人员找到程序中的 bug。
使用断点、观察变量、堆栈跟踪等调试技巧可以提高调试的效率。
eclipse快捷键和debug技术
![eclipse快捷键和debug技术](https://img.taocdn.com/s3/m/cfa85e61caaedd3383c4d337.png)
把乱的程序改成缩进的格式ctrl+i右键->source->format,只要你的大括号正确,这个方法就可以自动调整你的结构和缩进等编辑作用域功能快捷键全局查找并替换Ctrl+F文本编辑器查找上一个Ctrl+Shift+K文本编辑器查找下一个Ctrl+K全局撤销Ctrl+Z全局复制Ctrl+C全局恢复上一个选择Alt+Shift+↓全局剪切Ctrl+X全局快速修正Ctrl1+1全局内容辅助Alt+/全局全部选中Ctrl+A全局删除Delete全局上下文信息Alt+?Alt+Shift+?Ctrl+Shift+SpaceJava编辑器显示工具提示描述F2Java编辑器选择封装元素Alt+Shift+↑Java编辑器选择上一个元素Alt+Shift+←Java编辑器选择下一个元素Alt+Shift+→文本编辑器增量查找Ctrl+J文本编辑器增量逆向查找Ctrl+Shift+J全局粘贴Ctrl+V全局重做Ctrl+Y查看作用域功能快捷键全局放大Ctrl+=全局缩小Ctrl+-窗口作用域功能快捷键全局激活编辑器F12全局切换编辑器Ctrl+Shift+W全局上一个编辑器Ctrl+Shift+F6全局上一个视图Ctrl+Shift+F7全局上一个透视图Ctrl+Shift+F8全局下一个编辑器Ctrl+F6全局下一个视图Ctrl+F7全局下一个透视图Ctrl+F8文本编辑器显示标尺上下文菜单Ctrl+W全局显示视图菜单Ctrl+F10全局显示系统菜单Alt+-导航作用域功能快捷键Java编辑器打开结构Ctrl+F3全局打开类型Ctrl+Shift+T全局打开类型层次结构F4全局打开声明F3全局打开外部javadoc Shift+F2全局打开资源Ctrl+Shift+R全局后退历史记录Alt+←全局前进历史记录Alt+→全局上一个Ctrl+,全局下一个Ctrl+.Java编辑器显示大纲Ctrl+O全局在层次结构中打开类型Ctrl+Shift+H 全局转至匹配的括号Ctrl+Shift+P全局转至上一个编辑位置Ctrl+QJava编辑器转至上一个成员Ctrl+Shift+↑Java编辑器转至下一个成员Ctrl+Shift+↓文本编辑器转至行Ctrl+L搜索作用域功能快捷键全局出现在文件中Ctrl+Shift+U全局打开搜索对话框Ctrl+H全局工作区中的声明Ctrl+G全局工作区中的引用Ctrl+Shift+G文本编辑作用域功能快捷键文本编辑器改写切换Insert文本编辑器上滚行Ctrl+↑文本编辑器下滚行Ctrl+↓文件作用域功能快捷键全局保存Ctrl+XCtrl+S全局打印Ctrl+P全局关闭Ctrl+F4全局全部保存Ctrl+Shift+S全局全部关闭Ctrl+Shift+F4全局属性Alt+Enter全局新建Ctrl+N项目作用域功能快捷键全局全部构建Ctrl+B源代码作用域功能快捷键Java编辑器格式化Ctrl+Shift+FJava编辑器取消注释Ctrl+\Java编辑器注释Ctrl+/Java编辑器添加导入Ctrl+Shift+MJava编辑器组织导入Ctrl+Shift+OJava编辑器使用try/catch块来包围未设置,太常用了,所以在这里列出,建议自己设置。
Eclipse的使用技巧和PHP的XDebug调试配置
![Eclipse的使用技巧和PHP的XDebug调试配置](https://img.taocdn.com/s3/m/dbdc1dfc770bf78a652954fa.png)
(一)Eclipse使用技巧1)设置工作空间的编码(建议为UTF-8)。
Window->Preferences->General->Workspace->Test fileencoding->Other修改后点Apply或OK即可。
2)设置文件的字体大小。
Window->Preferences->General->Appearance->Colors andFonts->Basic->Text Font修改后点Apply或OK即可。
3)显示行号。
Window->Preferences->General->Editors->TestEditors->Show line numbers勾选上点OK即可。
4)修改默认生成文件的(头)类型。
Window->Preferences->General->Content Types->选择要定义默认类型的文件后在Default encoding文本框中输入UTF-8(建议)然后点Update即可。
(若更改后无效果,可在Web选项下修改Encoding选择UTF-8即可)。
5)修改代码自动提示延时时间。
Window->Preferences->Java->Editor->Content Assist->AutoActivation->Enable auto activation->Auto activation delay (ms)->文本框内输入适合自己的时间点OK即可。
此方法似乎不适合JSP文件,其他如JavaScript和PHP选项卡中都有类似的功能,请自行查改。
6)在项目(文件)上右键,Refactor->Rename可以更改文件的名称(包括后缀名),Build Path可添加外部包到项目classpath下等,Copy Qualified Name可以复制从项目根路径开始到所选文件的路径等。
EclipseDebug调试步骤及注意事项
![EclipseDebug调试步骤及注意事项](https://img.taocdn.com/s3/m/9755966830b765ce0508763231126edb6f1a7604.png)
EclipseDebug调试步骤及注意事项
debug⽅法
第⼀步:打开java代码⽂件,在左侧双击⿏标设置断点,或者在左侧右键点击Toggle Breakpoint
第⼆步:点击eclipse上⽅的“蜘蛛”按钮,点击debug as,debug调试开始。
第三步:显⽰debug图框。
debug模式的界⾯,分为5个区域。
(1)Debug(调试)区域,显⽰当前正在调试代码是什么,在第多少⾏
(2)Variables(变量)区域,显⽰变量的值。
(3)Console(控制台)区域。
第四步:点击黄⾊按钮,或者按F5后退⼀步,F6前进⼀步,可以在变量区实时查看值的变化。
第五步:点击调试区的绿⾊按钮,可以将程序直接执⾏完毕,跳过所有断点调试。
注意事项:F5和F6都是单步调试,F5是step into,也就是进⼊本⾏代码中执⾏,F6是step over,也就是执⾏本⾏代码,跳到下⼀⾏。
F7是跳出函数,F8是执⾏到最后。
按钮介绍
1.表⽰当前实现继续运⾏直到下⼀个断点,快捷键为F8。
2.表⽰打断整个进程
3.表⽰进⼊当前⽅法,快捷键为F5。
4.表⽰运⾏下⼀⾏代码,快捷键为F6。
5.表⽰退出当前⽅法,返回到调⽤层,快捷键为F7。
6.表⽰当前线程的堆栈,从中可以看出在运⾏哪些代码,并且整个调⽤过程,以及代码⾏号。
EclipseDebug模式的开启与关闭问题简析
![EclipseDebug模式的开启与关闭问题简析](https://img.taocdn.com/s3/m/67ebab0a974bcf84b9d528ea81c758f5f61f29e9.png)
EclipseDebug模式的开启与关闭问题简析默认情况下,eclipse中右键debug,当运⾏到设置的断点时会⾃动跳到debug模式下。
但由于我的eclipse环境,从开始⼀直⽤到现在,中间包括装、卸各种插件,更换版本,从英⽂界⾯导到中⽂界⾯⼜换回来,可以说现在的环境已经臃肿混乱到⾃⼰都搞不清楚的地步了。
不知哪⼀天设置了,把debug模式关掉了,之后⼀直到现在,运⾏debug时,还是在Java视图(perspective)下,⽆法⾃动跳转到debug perspective。
知道是在preferences⾥⾯设置,却不知是哪⼀个选项,也就⼀直忍耐着,每次debug都⼿动切换到debug视图。
今⽇再次想切换过来,在preferences⾯板利⽤搜索功能,搜perspective,哈,就在Run/debug下有这么⼀个选项,把Open the associated perspective when launching选择为"Always"即可。
(原来选的Never)。
其他设置:可以通过选中Run/Debug⾯板的"Skip breakpoints during a 'Run to Line' operation",从⽽在debug时跳过设置的断点,直接运⾏到指定的⾏。
下⾯再给⼤家分享⼀个debug模式启动不起来的简单解决⽅法。
在eclipse先进⼊debug调试模式,然后把所有的断点清除再重新启动就完美解决。
在每次打断点的时候,有时候在⾃⼰没有注意的情况下,eclipse会添加⼀些断点进去,从⽽导致需要加载某个服务时⽆法通过,从⽽导致JBoss⽆法启动,将所有断点移除了即可。
ps:如果有时候⽆法启动,⽽且控制台也没有报错的时候,同样的可以先看看断点模式下⾯是否存在断点,全部移除后再重新启动总结以上就是本⽂关于Eclipse Debug模式的开启与关闭问题简析的全部内容,希望对⼤家有所帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Eclipse调试常用技巧
发表时间:2010-04-06 最后修改:2010-11-26
记得刚刚毕业的时候,自己连断点也不会打,当时还在用JCreate,就连毕业设计也是用System.out找Bug的,想想真的很笨。
开始工作后,一个星期过去了,在一个1、2百万行的系统中找Bug,我依然在用System.out,当时最痛苦的就是修改代码,每次找到疑似Bug,就输出一下,然后重启(那时也不知道代码热替换),直到有一天带我的导师发现了这样笨笨的调试Bug,才让我第一次认识了断点,也知道了代码修改完了可以进行热替换,我这个中国教育的半牺牲品才算向美好生活迈进了一小步。
1、条件断点
断点大家都比较熟悉,在Eclipse Java编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。
条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。
在断点处点击鼠标右键,选择最后一个"Breakpoint Properties"
断点的属性界面及各个选项的意思如下图,
2、变量断点
断点不仅能打在语句上,变量也可以接受断点,
上图就是一个变量的打的断点,在变量的值初始化,或是变量值改变时可以停止,当然变量断点上也是可以加条件的,和上面的介绍的条件断点的设置是一样的。
3、方法断点
方法断点就是将断点打在方法的入口处,
方法断点的特别之处在于它可以打在JDK的源码里,由于JDK在编译时去掉了调试信息,所以普通断点是不能打到里面的,但是方法断点却可以,可以通过这种方法查看方法的调用栈。
4、改变变量值
代码停在了断点处,但是传过来的值不正确,如何修改一下变量值保证代码继续走正确的流程,或是说有一个异常分支老是进不去,能不能调试时改一下条件,看一下异常分支代码是否正确?
在Debug视图的Variables小窗口中,我们可以看到mDestJarName变量的值为"
F:\Study\eclipsepro\JarDir\jarHelp.jar"
我们可以在变量上右键,选择"Change Value..."在弹出的对话框中修改变量的值,
或是在下面的值查看窗口中修改,保用Ctr+S保存后,变量值就会变成修改后的新值了。
5、重新调试
这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用的开始处。
回退时,请在需要回退的线程方法上点右键,选择"Drop to Frame"
6、远程调试
用于调试不在本机上的程序,有两种方式,
1、本机作为客户端
2、本机作为服务端
使用远程调试的前提是服务器端和客户端的代码是一致的。
本机作为客户端
本机作客户端比较常用,需要在远端的服务器上的java程序在启动时打开远程调试开关,
服务器端需要加上虚拟机参数
1.5以前版本(1.5以后也可用):【-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,address=8000 】
1.5及以上版本:
【 -agentlib:jdwp=transport=dt_socket,server=y,address=8000】
F:\Study\eclipsepro\screensnap>java -Xdebug
-Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar
screensnap3.jar
连接时远程服务器时,需要在Eclipse中新建一个远程调试程序
这里有一个小地方需注意,连接上的时候貌似不能自动切换到Debug视图,不要以为本机的调试程序没有连接到服务器端。
本机作为服务端
同本机作为客户端相比,只需要修改一下“Connection Type”
这时Eclipse会进入到等待连接的状态
连接程序使用如下参数即可连接本机服务器,IP地址请用实现IP替换~~
【-agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000】
F:\Study\eclipsepro\screensnap>java
-agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000 -jar screensnap3.jar
远程调试时本地的代码修改可同步到远程,但不会写到远程的文件里,也就是说本地修改会在下次启动远程程序时就没有了,不会影响到下次使用时的远程代码。
有关远程调试更详细点的介绍请参考【使用 Eclipse 远程调试 Java 应用程序】好像漏了一个断点,异常断点,补一下。
7、异常断点
经常遇见一些异常,然后程序就退出来了,要找到异常发生的地方就比较难了,还好可以打一个异常断点,
上图中我们增加了一个NullPointException的异常断点,当异常发生时,代码会停在异常发生处,定位问题时应该比较有帮助。
8、远程调试不太了解,能详细讲讲嘛?
远程调试还真有用,记得有一次,本地环境没错误,可一到测试环境就有问题了,最后还是用户远程调试!马上就见效了呵呵!
主要作用:大部分问题在开发环境已经解决了,可有时在生产环境(当然大部分时候是在现场与生产环境几乎一样的测试环境上远程调试)偏偏出现问题,通过日志又不好找到原因或者在开发环境无法重现,这时在远程服务器上开启远程调试端口,你在本地通过IP,调试端口在本地打断点,当生产环境执行到你打断点的代码时,你本地就进入了调试,可以查看远程代码中的一些变量值等。
也借此找出问题所在。
这个还真没试过,需要对方也有eclipse或源码吗?客户那里通常都是部署war 包无源码。
不需要对端有源码,也不需要对端有Eclipse,只要对端有部署的java包就好,只需要本端有就可以了,就像你说的对端也是基本上不会有源码的。
需注意对端的java包中的类文件需要和本地源码一致,不然调试时会行错乱。
9、远程调试的端口是根据容器的开启的端口来选择的吧?像JBoss的端口为8787,run.bat和run.sh当中配置。
答:端口是用户自己选择的,不管是普通应用还是Web应用,像Tomcat和JBoss 这类容器也是一样的,会通过文中提到的方式打开远程调试,默认端口的配置是8000还是8787并不重要,用户可以自己修改,关键是两端的端口保持一致。
10、有时候,非远程调试不行。
1.不能在本机配置运行环境,只能通过远程调试才能定位bug。
2.时间紧,没有时间在本机配置运行环境。
打开server的端口,调之,改之,替换相应错误文件就ok。
3.懒人,不愿意配置本机开发环境,也可以远程调试。
替换相应错误文件,不要重启服务器吗?这样不是也很麻烦?
远程调试依然可以进行代码的热替换,修改完成本地的代码,远程机会相应修改,只会修改内存中的。
11、有时候程序会这么写:
Java代码return function(x,y);
这时候调试想看到底返回啥了,有办法看不?
我的做法是:增加一个临时变量
Java代码
1. a = function(x,y);
2.return a;
然后断点看,不过还挺麻烦的。
答:这个可以选中函数,右键,然后选Inspect,或使用快捷键Ctrl+Shift+I。
12、也是关于远程调试的问题,就是如果打包进行混淆了,就无法就行远程调试了,不知楼主有无好的解决办法?
答:远调有一个问题就是本地代码要和远程机上的代码一致,而且在编译时需要带行号编译,不然无法找到Class类对应的源代码中的行号信息,也就不确定断点停在代码的什么地方了。
13、远程调试很有用,如果真能像本地代码一样调试的话,则没有必要没次很麻烦上服务器看错误日志了。
答:如果能保证两边的代码基本一致的话是可以的,而且需要远程的代码在运行时打开远调开关,这个好像不是太现实,生产环境和本地或多或少的是有差别的,所以日志很重要。
14、调试时碰到循环语句,你在循环外再设置个断点,按F8会跳到循环外的此断点处。
15、补充一个调试技巧:在调试过程,可以调display窗口,在里面可以书写任何当前存在的表达式进行求值,并且可以根据运行表达式,改变某些变量的值。