`
jamaica1982
  • 浏览: 29983 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
最近需要调整项目代码,所以安装了一个CheckStyle的Eclipse插件。但在workspace里面的项目自动开始build的时候,碰到如下问题: Errors occurred during the build. Errors running builder 'Checkstyle Builder' on project [projectname]. Fileset from project [projectname] has no valid check configuration. Fileset from project [projectname] has no valid che ...
最近开始使用Eclipse Juno开发了,一片花白的界面,怎么说呢...习惯了就好了吧。 不过有一个问题让我最近确实有点烦,那就是: 我一般习惯在debug的时候只关注3部分的panel:Editor, Debug View, Varirables+Expressions Views,但是打印程序输出的Console View总是时不时弹出来挡住Debug View和部分Editor的区域,而那些打印的log都是其他线程打印的跟bug基本无关的内容! 我点Esc啊,点其他区域啊,有时候点一两下,那个Console就缩回去了,有时候需要点好几下。 Google了一下,发现StackOverfl ...
Soot默认会在完成所指定的分析和优化之后,将经过优化的文件(一般是.class)文件输出到指定的目录。使用Soot已经有一些年头了,之前不太在乎最后这个输出阶段,毕竟往硬盘上写点东西比进行whole program analysis要快太多了。所以,在发现Soot输出Writing to...之后,心中往往是充满完成分析(而没有抛异常)的喜悦,而忽视了输出本身的开销。 不过,最近的项目需要多次调用Soot,并且需要每两次调用Soot之间的间隔时间尽量短,于是就想是不是可以把这个output给关掉。之前因为其他目的,把Soot的mailing list从2005年开始看到2012年,好像没啥印 ...
首先是昨天在基于InsECTJ做profiling,然后发现绝大多数的test case都fail了,与此同时产生的trace文件的大小都是37,336,474字节(内含7,634,068行,每行一个字符),觉得比较奇怪: 一方面,这一组test case应该只有2个fail,其它全部pass。另一方面,当然是所有fail的trace文件都是同样的大小。 今天回来大概看了一下代码,发现是一个比较低级的bug造成的:用于存放当前test case的trace的ArrayList没清空。于是改了改代码,再运行,发现绝大多数trace看上去都是正确的,但是还是有一个test case本应该是pass ...
最近在重新修改和配置之前的一个项目,其中用到了InsECTJ,其主页如下: http://insectj.sourceforge.net/ 当然,Java的profiler很多,在这里一方面是因为历史原因需要使用InsECTJ,另一方面,我觉得InsECTJ的使用确实比较简单。InsECTJ基于Java的agent实现,可以动态进行instrumentation,所以相比于使用Soot, ASM或BCEL直接去instrument要方便一点。 InsECTJ本身是以Eclipse插件的形式发布的,而且在用户手册里面没有介绍如何通过命令行来使用。插件在选择所要profile或instrumen ...
今天在用JDT的DOM API分析Java源代码时遇到如下问题: 当用户在JDT Editor里面编辑代码时,如果需要JDT进行参数推荐,则会触发我们自己的代码。而此时,不知何故,我们的ASTVisitor的代码中无法resolve一个TypeDeclaration。即调用TypeDeclaration.resolveBinding()的返回值为null。进而导致一个NPE。 后来老杨等人找到这么一段API文档(是ASTParser.setResolveBindings()的): ... When source is supplied by setSource(char[]), the l ...
这两天由于在一个test case中需要进行以下步骤: 1. Instrument一些.class文件。 2. 运行经过instrumentation之后的.class文件。 3. 检查第2步中的运行结果。 所以需要使用Java去调用一个简单的命令行来完成第2步。 以前我依稀记得是要用Runtime的exec方法,但是...(忘记具体用法了 ) 还好这一用法不是那么的冷僻,所以很容易通过Google找到了StackOverflow上面的2篇文章: [1] http://stackoverflow.com/questions/615948/how-do-i-run-a-batch-file-f ...
前段时间,由于项目需要使用Eclipse JDT中与DOM相关的API(如ASTParser、ASTVisitor等),所以写了一个Eclipse Plug-in。随着项目代码增多,各种修改和优化也接踵而至。由于很担心会发生一些regression,我们决定写一些JUnit test来对关键部分做一些回归测试。 之前没测试过Eclipse Plug-in,所以在网上找了一番,找到如下文章: http://www.ibm.com/developerworks/library/os-eclipse-plugindev1/ 我阅读了"Testing and Debugging" ...
我之前对于这个问题肯定是确认过的,不过...,就是因为没做个笔记,把它给忘掉了,所以今天在这里记录一下。 1) Java异常的stack trace里面,inner class的类名是用$来将其与所在的outer class分开的(这与所生成的.class文件名一致),比如: java.lang.NullPointerException at org.apache.hadoop.mapred.CapacityTaskScheduler$TaskSchedulingMgr.updateQSIObjects(CapacityTaskScheduler.java:504) 2) 这里需要重点强调 ...
在研究一个NPE的stack trace的时候,发现一个方法名是access$1100,隐约感觉是一个synthesized的东西,但不知道其确切来历。在网上搜了一下,发现如下一篇文章: http://www.retrologic.com/innerclasses.doc7.html 其中主要是如下一段话大概解答了我的疑问: There is one more category of compiler-generated members. A private member m of a class C may be used by another class D, if one class ...
今天读了读Soot中的SmartLocalDefs类,因为在其mailing list里面至少有2封邮件[1][2]推荐看看这个类,慕名而来 可惜的是,这个类相关的注释/文档太少,所以特此记录,以备后用。 首先这个类的成员包括5个域, 4个方法和1个内部类,下面就按次序简单描述一下各个部分。 一. 域 1) private final Map<Cons, ArrayList<Unit>> answer; answer用于存储该类所做分析的最终结果:将(cons Unit Local)映射到其所有可能的def所在的Units 2) private final Map& ...
断断续续的用Ant已经有不短的时间,以前只是关注它在build过程中所产生的log的内容,例如build是否成功和错误信息等。而今天需要把具体的一条log对应到其输出的代码行上,所以想到如果可以使用log4j则非常的方便。 Google了一下,发现Ant确实具有这一功能,详见:http://ant.apache.org/manual/listeners.html 先把Log4j的jar包丢到$ANT_HOME/lib/中,然后配置了一下log4j.properties,果然就可以用log4j的各种格式输出日志了 使用命令行:ant -listener org.apache.tools.a ...
Soot是一个Java的分析框架,功能比较强大,其详细介绍在它的网站上都有: http://www.sable.mcgill.ca/soot/ 个人对Soot的印象是可参考的文档比较丰富,而且维护者回邮件很快。在具体使用上面,-soot-class-path时不时会出现一点状况,这个有待于深入研究后详细记录一下。而今天记录的是关于-process-dir的两个小东西: 1) Soot支持多个-process-dir,即命令行soot.Main -process-dir dir1 -process-dir di2会使其对dir1和dir2这两个目录下的文件都进行处理。 2) -process- ...
初次接触Findbugs是在3、4年之前,可惜一直都未能真正把它列入日常使用的工具之中。 Findbugs的原理虽然相对ESC/Java等工具要简单许多,而且我相信它现在的false positive也不会比当初少太多,但最近发现它已应用于许多知名的开源项目(如Hadoop)中。又想起自己那风格邋遢,难以维护的代码堆,我决定开始真正的使用Findbugs,希望能起到预想中的效果
之前阅读了一些关于Hadoop Wiki中log方法的资料,其中没怎么提及其JUnit test所产生的log是如何生成以及如何配置的,而本人却需要确认一下文件名如TEST-org.apache.hadoop.mapred.TestCapacityScheduler.txt这样的log从何而来。 在用TEST-和.txt等关键字大概的搜索了一下Hadoop的工程目录无果之后,将目标转向JUnit以及Ant中与JUnit相关的代码。现在大致确定这个文件是由Ant代码中如下目录里的文件产生: org\apache\tools\ant\taskdefs\optional\junit\ 现在的问题是 ...
Global site tag (gtag.js) - Google Analytics