项目简介

Keep going

11879?1461414358
发帖时间:2017-03-01 13:36
更新时间:2017-03-01 13:36


- 断点视图 :


 条件断点如果你只对应用中的某部分感兴趣的话,这个功能非常有用。例如,如果你要在第13次循环的时候检查程序,或者在一个抽象父类中调试某些功能,而你只关注其中一个具体的实现。你可以在断点视图中设置条件,或者通过代码旁边的蓝色断点标记的右键菜单("Breakpoint Properties")设置。你可以在条件代码片段为true的时候暂停程序,或者当代码片段的值改变的时候挂起程序。




Conditional Breakpoints

Conditional Breakpoints II


- 变量视图:展示逻辑结构


如果你需要在变量视图查看一个Map对象或者List对象的值,对于eclipse的默认设置,一般并不是那么容易。假设,你使用的是HashMap,你需要点击遍历各个实体条目,并面临各种HashMap的实现细节。但是,在变量视图上面有一个叫做“Show Logical Structure”的按钮。它非常有用,尤其当你的对象的toString()方法所展示的信息并不友好的时候。我的老大在几周前为我展示了这个功能。你知道,他经常跟PowerPoint或者Excel打交道。对于我这么一个开发人员,多丢脸哦 ;-)


未开启“Show Logical Structure” 

Logical Structure I 
开启“Show Logical Structure” 
Logical Structure II 


- 变量视图:更改变量值


当你需要稍微更改输入信息的时候,不需要重新开始调试会话,只需在一个表格中输入新的信息,你可以在调试阶段直接修改你的变量的值。有写时候,你可以节省一些时间,你可以通过这个功能,更加简单的模拟一些怪异的情况。






Change Value


- Display视图


你知道“Display视图”吗?你可以在调试过程中,通过“Window” -> “Show View” -> “Display”来激活它。现在,你的eclipse应该是一个空白的新视图。你可以使用这个视图,输入或者演算一些新的代码。这些代码在当前的调试位置的上下文环境中被执行,这意味着,你可以使用所有变量甚至是内容助手。要执行你的代码的话,只需标记它,并使用右键菜单或者CTRL+U(执行)或者 CTRL+SHIFT+I (检查).

Display View


-航: Drop to Frame


我想任何人都知道“Step Into”, “Step over”,而且可能也知道“Step return”. 这些是调试时的基本导航功能。我想提两个我非常喜欢的导航的高级方法。第一个是“Drop to Frame”. 使用这个特性你可以及时回退 ;-)  你可以直接回退到运行过的java堆栈帧中某一帧。当我调试时,一不小心错过了某个关注的代码行时,我常常用这个回退一帧。使用“Drop to Frame”这个特性我可以简单的重新运行某帧代码。 


Drop to Frame
 

- 导航: Step into Selection


第二个是“Step into Selection”. 这也是很简单,但很多人使用的一个。要使用它,你只需要按 Ctrl+Alt 同时点击一个你想运行到的方法名。非常方便,非常快速。相比“Step Into”这个非常方便,想想你像跟踪进一个有很多参数的函数,如果用“Step Into”你必须进入,退出每个参数计算过程,才能进入到你真正想进的函数。“Run to line”也是很棒的特性。只需要把光标放在你想运行到的哪一行前面,然后按“CTRL+R”就可以了。
 
Step Into Selection
 

- 导航器:使用键盘


如果避免使用鼠标的话,你的操作速度会更快。你至少应该如下的快捷键:

  • F5 – “单步进入”
  • F6 – “单步执行并跳过”
  • F7 – “单步执行并返回”
  • F8 – “继续执行”
  • Ctrl+Shift+B – “添加断点”
  • Ctrl+Shift+I – “检查”


- 断点视图:Watchpoints


如果改变这个变量会有什么结果?! 有时候创建一个watchpoint对于调试会非常有用。调试器会停止,不管这个被观察的字段是被修改还是被读取 - 你可以自己来配置决定。你只需双击一个字段,然后你就可以在断点视图中看到watchpoint,并且可以编辑它的属性。你甚至可以一个访问次数,这意味着当变量被访问的次数达到这个数量的时候,调试器会停止。这对于普通的断点也适用。

Watch Point




- 友好的可读的对象


变量视图是使用对象的toString方法来现实对应的值。因为这个原因,如果提供友好的toString方法实现,对调试来说会非常有用。在javadoc中关于java.lang.Object的默认toString实现,也是这样推荐的:

返回一个表示该对象的字符串。通常<code>toString</code>方法返回这么一个字符串,“字面表示”该对象。返回结果必须是一个简洁却富含可表示该对象的信息,并且友好可读取。我们推荐所有的子类都覆盖这个方法。

你可以参考commons-lang中的 ToStringBuilder。它提供一些功能来编写 (引用自javadoc ) "良好并连贯” 的toString方法。



默认的ToString

Default-ToString 
默认的ToStringBuilder例子
ReflectionToStringBuilder 
ToStringBuilder例子 – 多行文本风格
ReflectionToStringBuilderMultiLine 

如果你不能修改toString实现,例如你现在使用框架或者一个外部的API,你可以有另外一个选择,在Eclipse中创建一个“Detail Formatter”。你需要在变量视图中右击一个对象,并点击“New Detail Formatter…”。然后你就可以输入一些代码,用于展现这个对象。


原文:https://blog.codecentric.de/en/2013/04/again-10-tips-on-java-debugging-with-eclipse/

翻译:http://www.oschina.net/translate/again-10-tips-on-java-debugging-with-eclipse



回复 ︿
0?1470885445
登录后可添加回复
11879?1461414358
发帖时间:2016-11-23 10:05
更新时间:2016-12-01 20:24
智能计算课程实验
( 505.932 KB) 曾雅蓉, 2016-11-23 10:04
回复 ︿ (4)
  • 用户头像
    曾雅蓉 7年前
    5?1460204756
    尹刚 7年前

    另外,请将代码提交到版本库,如果目前不宜公开,可以先将项目设置为私有。@曾雅蓉(RongEr)‍ 

    好的,尹老师

  • 用户头像
  • 用户头像
    创新使者 7年前
    很好!能否尽快翻译一下投ICSR?这是一个C类会议。我觉得完全可以发表

0?1470885445
登录后可添加回复
1?1527865161
发帖时间:2016-01-21 21:47
更新时间:2016-01-22 09:40

Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotCloud公司。Docker自开源后就受到广泛的关注和讨论,目前已有多个相关项目,逐渐形成了围绕Docker的生态体系。dotCloud公司后来也改名为Docker Inc,专注于Docker相关技术和产品的开发。


现在主流的Linux操作系统都已经支持Docker。例如,Redhat RHEL 6.5/ CentOS 6.5往上的操作系统、Ubuntu 14.04操作系统,都已经默认带有Docker软件包。Google公司宣称在其PaaS平台及服务产品中广泛应用了Docker。微软公司宣布和 Docker公司合作,以加强其云平台Azure对Docker的支持。公有云提供商亚马逊也推出了AWS EC2 Container,提供对Docker的支持。


DockerOne组织翻译了Flux7的Docker系列入门教程,供读者学习。本系列教程共九篇,内容涵盖Docker基础知识以及Docker安全、API的介绍。

阅读网址:Docker实战入门



回复 ︿ (2)
0?1470885445
登录后可添加回复
5?1460204756
发帖时间:2016-01-21 21:30
更新时间:2016-01-21 21:30

这样我才能在资源库中发布资源哦。

回复 ︿
0?1470885445
登录后可添加回复
11879?1461414358
创建时间:2016-01-21 17:03

© Copyright 2007~2021 国防科技大学Trustie团队 & IntelliDE 湘ICP备 17009477号

问题和建议
还能输入50个字符 提交

加入QQ群

关注微信APP


×