使用Spark(Soot -Eclipse框架)调用图生成 - 内存问题

时间:2013-05-14 21:50:31

标签: java eclipse soot

我正在尝试使用Spark(在Soot -Eclipse框架中)为java代码生成调用图。我从HelloWorld开始。即使是这个小例子,看起来系统内存还不够。

Soot has run out of the memory allocated to it by the Java VM.
To allocate more memory to Soot, use the -Xmx switch to Java.
For example (for 400MB): java -Xmx400m soot.Main .

我的机器是基于Windows的4GB Core I-5。运行的eclipse进程是javaw.exe。即使对于使用烟灰的Helloworld,这是否会出现这种记忆失去的行为?我刚开始运行java的分析,我不确定库类是否会增加巨大的开销。

或许正确的问题是 - 我如何使用-Xmx开关在Windows上运行带有更多内存的Soot -anyone做到了这一点?

Eclipse中的命令如下。我在Spark Analysis中使用了一些简化选项。

soot.Main     --w --d C:\Users\nbalaji\workspace\HelloWorld\sootOutput 
--process-path C:\Users\nbalaji\workspace/HelloWorld/src;    
--cp /C:/Users/nbalaji/workspace/HelloWorld/bin/, < bunch of Java/jre7 files >

修改:现在已解决此问题。 从Soot生存指南:设置运行时 配置您应该将以下参数添加到JVM -Xmx512m -Xss256m增加VM内存。

1 个答案:

答案 0 :(得分:0)

使用大量内存的烟灰不是一个错误。您的Hello-World程序可传递地调用数千种方法,所有方法都经过分析。

正如异常消息所示,您应该使用:

java -Xmx400m soot.Main ...

这是一个JVM选项,而不是Soot选项。