Java调试技巧_第1页
Java调试技巧_第2页
Java调试技巧_第3页
Java调试技巧_第4页
Java调试技巧_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java调试技巧1. Java调试1.1. Eclipse调试1.1.1. Debug. 条件断点 断点大家都比较熟悉,在EclipseJava 编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。 条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。 在断点处点击鼠标右键,选择最后一个BreakpointProperties 断点的属性界面及各个选项的意思如下图, . 变量断点 断点不仅能打在语句上,变量也可以接受断点, 上图就是一个变量的打的断点,在变量的值初始化,或是变量值改变时可以停止,当然变量断点上也是

2、可以加条件的,和上面的介绍的条件断点的设置是一样的。 . 异常断点经常遇见一些异常,然后程序就退出来了,要找到异常发生的地方就比较难了,还好可以打一个异常断点,上图中我们增加了一个NullPointException的异常断点,当异常发生时,代码会停在异常发生处,定位问题时应该比较有帮助。. 方法断点 方法断点就是将断点打在方法的入口处, 方法断点的特别之处在于它可以打在 JDK的源码里,由于 JDK 在编译时去掉了调试信息,所以普通断点是不能打到里面的,但是方法断点却可以,可以通过这种方法查看方法的调用栈。 . 改变变量值代码停在了断点处,但是传过来

3、的值不正确,如何修改一下变量值保证代码继续走正确的流程,或是说有一个异常分支老是进不去,能不能调试时改一下条件,看一下异常分支代码是否正确? 在Debug 视图的 Variables 小窗口中,我们可以看到 mDestJarName 变量的值为 F:StudyeclipseproJarDirjarHelp,jar 我们可以在变量上右键,选择ChangeValue 在弹出的对话框中修改变量的值, 或是在下面的值查看窗口中修改,保用Ctr+S 保存后,变量值就会变成修改后的新值了。 . 重新调试 这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用

4、的开始处。 回退时,请在需要回退的线程方法上点右键,选择 DroptoFrame 1.1.2. 远程调试. 环境tomcat,Eclipse,做远程调试不需要任何插件。l 项目:新建一个web项目l index,jsp源码如下Hello Remote Debugl 创建一个DebugTest类代码如下:public class DebugTestpublic static void test(String content)System,out,print(content);. tomcat配置l 将web应用部署到Tomcat的webapp目录下l 修改Tomcat

5、/bin/startup,bat文件,在最前面加上如下代码:SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava,compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000注意上面命令必须写成一行中间不能有换行,-前是空格-后是非空格,由于word原因,该文章在显示的时候可能会有换行的情况。l 必须先启动Tomcat启动tomcat/bin/startup,bat参下图. Eclipse配置l 在com,syj,test,DebugTest,

6、test方法中设置断点l 在eclipse中配置debug,配置完成后点击debug按钮。如图:l 打开浏览器访问部署的web应用,访问index,jspl 当浏览器访问index,jsp时,由于调用了com,syj,test,DebugTest,test,又因在test方法中设置了断点,所以程序会被断点拦截,如图:l 不需要调试的时候点击断开,需要调试的时候再点击debug,非常方便,当调试过程中出现引用非本project的源码时(例如跟踪到tomcat里面或spring,hibernate里面),会提示找不到源码,点击相应提示的按钮(到时候editor区只有一个按钮,所以大家就不要问哪个按

7、钮了)可以添加源码继续调试,或在配置debug前就把需要的源码都添加上,在source选项卡里面。2. 浏览器调试主要讲解Google浏览器2.1. 谷歌浏览器调试Google Chrome除了简洁、快速,现在的Chrome的插件也非常的丰富了。而对于web开发者来说,Chrome对于JSt调试很好用,HTML5、CSS3等一些新标准的支持也是比较完善的,而且Chrome的开发者工具我个人认为真的非常好用。2.1.1. 启用调试怎样打开Chrome的开发者工具?你可以直接在页面上点击右键,然后选择审查元素:或者在Chrome的工具中找到:或者,你直接记住这个快捷方式: Ctrl+Shift+I

8、 (或者Ctrl+Shift+J直接打开控制台),或者直接按F12。界面如下图:不过我一般习惯与点左下角的那个按钮,将开发者工具弹出作为一个独立的窗口:2.1.2. 调试功能标签页说明. Elements标签页这个就是查看、编辑页面上的元素,包括HTML和CSS:左侧就是对页面HTML结构的查看与编辑,你可以直接在某个元素上双击修改元素的属性,或者你点右键选"Edit as Html"直接对元素的HTML进行编辑,或者删除某个元素,所有的修改都会即时在页面上得到呈现。(注:看到上面右键菜单的最后一个选项"审查元素"了么?这是不是说明这个开发

9、者工具的页面也是HTML来的呢?你点一下就知道了,嘿嘿)你还可以对某个元素进行监听,在JS对元素的属性或者HTML进行修改的时候,直接触发断点,跳转到对改元素进行修改的JS代码处:Elements标签页的右侧可以对元素的CSS进行查看与编辑修改:你还可以通过这里看到各CSS选择器设置的CSS值的覆盖情况。下面的Metrics可以看到元素占的空间情况(宽、高、Padding、Margin神马的):注意到上面的Properties没有?这个很有用,可以让你看到元素具有的方法与属性,比查API手册要方便得多(要注意某些方法和属性在IE、FireFox等其他浏览器下面的支持情况)。. R

10、esources标签页Resources标签页Resources标签页可以查看到请求的资源情况,包括CSS、JS、图片等的内容,同时还可以查看到存储相关的如Cookies、HTML5的Database和LocalStore等,你可以对存储的内容编辑和删除。这里的CSS文件有一个好玩的特性,你可以直接修改CSS文件,并且修改即时生效:. Network标签页Network标签页Network标签页对于分析网站请求的网络情况、查看某一请求的请求头和响应头还有响应内容很有用,特别是在查看Ajax类请求的时候,非常有帮助。注意是在你打开Chrome开发者工具后发起的请求,才会在这里显示的

11、。点击左侧某一个具体去请求URL,可以看到该请求的详细HTTP请求情况:我们可以在这里看到HTTP请求头、HTTP响应头、HTTP返回的内容等信息,对于开发、调试,都是很有用的。. Script标签页很明显,这个标签页就是查看JS文件、调试JS代码的,直接看下图的说明:还有你可以打开Javascript控制台,做一些其他的查看或者修改:你甚至还可以为某一XHR请求或者某一事件设置断点:. Timeline标签页注意这个Timeline的标签页不是指网络请求的时间响应情况(这个在Network标签页里查看),这个Timeline指的JS执行时间、页面元素渲染时间:点击

12、底部的Record就可以开始录制页面上执行的内容。(这个不熟悉,请参考文末链接). Profiles标签页Profiles标签页,这个主要是做性能优化的,包括查看CPU执行时间与内存占用. Audits标签页这个对于优化前端页面、加速网页加载速度很有用(相当与Yslow):点击run按钮,就可以开始分析页面,分析完了就可以看到分析结果了:它甚至可以分析出页面上样式表中有哪些CSS是没有被使用的:. Console标签页就是Javascript控制台了: 这个除了查看错误信息、打印调试信息(console,log())、写一些测试脚本以外,还可以当作Ja

13、vascript API查看用。例如我想查看console都有哪些方法和属性,我可以直接在Console中输入"console"并执行:怎么样,一目了然了吧 ?再例如我想查看日期函数都有哪些方法:(注:注意在这里看到的某些方法和属性是ES5新增的,记得兼容其他浏览器的支持情况)2.2. IE浏览器调试注意:IE版本需要在IE8或以上版本2.2.1. 启用调试双击IE浏览器的图标,打开IE浏览器点击键盘上的F12键,或者在ie工具栏下点击开发人员工具,进入调试界面2.2.2. 开始JS调试选脚本选项卡,找到要调试的代码行,然后右击添加断点,或者直接点击也会出现断点。点击启动调

14、试,就会跑到设置的断点处。F11可以一步一步调试,F10逐过程调试,shift+F11跳出2.3. 火狐浏览器调试2.3.1. 概述在FireFox上插件库里找到FireBug安装即可,网上下载进行安装。下图是FireBug Debug 窗口。 FireBug美工用的非常普遍,公司美工妹妹用的非常熟练 呵呵,而对于我们开发人员,主要用它来Debug JS。看看官方对Debug功能的介绍。 Firebug includes a powerful JavaScript debugger that lets you pause execution at any time and see what e

15、ach variable looked like at that moment, If your code is a little sluggish, use the JavaScript profiler to measure performance and find bottlenecks fast, 简而言之,FireBug 可以让我们在任何时候debugJS 并查看变量,同时可以通过它找出JS中性能瓶颈。2.3.2. 调试步骤 下图是如何找到Web应用的JS,激活Firebug,点Script,然后在All 旁边选择你要Debug的JS。下图是如何打断点 基本跟Eclipse一样,点击行号就Ok了。下图是如何在断点上设定条件,如果条件符合,就进入断点,这个功能很不错,特别是Debug很复杂的Function时候。 下图是如何单步调试,跟Eclipse一样 F11单步 下图是查

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论