在庞大的java代码库中查找执行流
我试图在一个大型java代码库中找到执行流,这个代码库不是我写的。我已经搜索了使JSonde、JTrace、Java调用跟踪器、JavacallTracer成为可能的工具,但问题是它们都应该与单个Java/jar/class文件一起使用。 我试图理解的代码是用Ant构建的,有数百个JAR。因此,它使用shell脚本运行。我不知道如何将这些工具与此代码一起使用在庞大的java代码库中查找执行流,java,ant,reverse-engineering,sequence-diagram,Java,Ant,Reverse Engineering,Sequence Diagram,我试图在一个大型java代码库中找到执行流,这个代码库不是我写的。我已经搜索了使JSonde、JTrace、Java调用跟踪器、JavacallTracer成为可能的工具,但问题是它们都应该与单个Java/jar/class文件一起使用。 我试图理解的代码是用Ant构建的,有数百个JAR。因此,它使用shell脚本运行。我不知道如何将这些工具与此代码一起使用 我真的很感谢你的帮助我知道,这是一个老问题,但是现在我找到了一个解决方案,如果其他人搜索同一个东西,我把它放在这里:./P>一个大的代码库
我真的很感谢你的帮助我认为你应该考虑的是代码覆盖工具。这将报告代码的哪些部分已执行,哪些部分未执行。有几种这样的工具需要考虑。是一个新兴的热门,并与插件相关联 关于代码覆盖率,需要记住的一点是,它需要由某种东西驱动。通常,这是通过运行代码的单元测试或集成来实现的
最后,一旦你对如何启用代码覆盖感到满意,你也可以考虑上传和归档它的结果。
< P>我知道,这是一个老问题,但是现在我找到了一个解决方案,如果其他人搜索同一个东西,我把它放在这里:./P>一个大的代码库可以有数十亿条不同的路径。您希望从这种工具中学到什么?理解代码没有灵丹妙药。你必须阅读它,如果有必要,在IDE调试器(如Eclipse)中跟踪它。查找执行流几乎是不可能的。你想要完成的实际任务是什么?Eclipse内置了大多数您需要的工具。您需要图形表示吗?如果是的话,到底应该可视化什么?你说回答Mark O'Conner,我想做的是在代码中做一些更改。在什么条件下?您希望如何进行更改[每个人都希望更改代码,为什么您的需求特别]?手动?自动地您具体希望从控制流中得到什么,使之成为可能?你建议用序列图。这就是你真正想要的吗?这是你唯一想做的吗?我想做的是对代码做一些修改。我已经读了几遍代码,但这还不够。代码可以导入Eclipse,但不能在Eclipse中执行它最初是用命令行构建的。我用代码生成了UML类图。不过,序列图对于理解流程更有用。我认为不可能做到你想要的。即使您有一个工具能够跟踪您的代码,例如通过启用Java的instrumentation API,您仍然需要一些东西来驱动您的代码。最明显的机制是自动测试套件。正如Jim Garrison指出的,通过代码有很多可能的执行路径。遵循哪一条取决于程序的执行方式。最后,在实践中,代码覆盖率报告是一种更标准的执行形式analysis@MarkO康纳:动态分析不能让他得到控制流数据。它让他执行代码,也许还有调用树中的一个分支。他要求进行静态分析。@IraBaxter我理解他在寻找什么,但我不知道有什么工具可以满足要求。你…吗?我试图提供选择。直到他清楚自己的问题到底是什么,不。如果真的是关于控制流,那么是的,我可能知道其他选择。在我开枪之前,我希望他能更清楚地知道自己的需要。