[Soot-list] Can soot analyze dacapo bench under IBM JVM in PPC architecture.

Xinwei Xie xinweix at cse.unsw.edu.au
Wed Feb 16 18:20:24 EST 2011


Hi Eric,
Thanks for your reply.
I confirmed from the test in SunJDK that it works just fine. I used
the exact command as in IBM PPC Linux, even without the change of
classpath. Does it mean that it is likely to be a IBM JVM's bug?

-- Xinwei
On Tue, Feb 15, 2011 at 11:18 PM, Eric Bodden
<bodden at st.informatik.tu-darmstadt.de> wrote:
> Hi Xinwei.
>
> This could be due to multiple things:
>
> - A bug in the runtime library for ppc.
> - A bug in the JVM for ppc.
> - A bug in Soot that only manifests itself when analyzing the runtime
> library for ppc.
>
> To figure out which source this error has, it may make sense to use
> the same command line as you are using now, but run Soot on a
> different VM. Right now you are running Soot on ppc and the ppc JVM,
> and also use it to analyze the ppc runtime library. Howver, it should
> be perfectly possible to run Soot on your other architecture (and VM)
> but still pass in Soot's command line the very same ppc runtime
> library, i.e.  /usr/lib/jvm/ibm-java-ppc64/jre/lib/ibmjcefw.jar:/usr/lib/jvm/ibm-java-ppc64/jre/lib/rt.jar.
>
> If this still fails, then it's likely a bug in Soot. If not, then it's
> likely a bug in the execution environment for ppc.
>
> Eric
>
> On 15 February 2011 06:17, Xinwei Xie <xenway at gmail.com> wrote:
>> Hi,
>> I am trying to use soot and tamiflex to analyze dacapo-9.12-bach
>> benchmark, especially for the whole program construction of call
>> graph. I used the script from tamifix and experiment on two different
>> machines: one is x86_64 and the other is IBM ppc64. Both have 16GB
>> memory.
>> There is only IBM released JDK in ppc64 architecture. Theoretically
>> there should be no problem running the same command in those two
>> machines. The x86_64 box works fine. However there raised some error
>> in the IBM box.
>> The IBM JDK info is as follows:
>>
>> java version "1.6.0"
>> Java(TM) SE Runtime Environment (build pxp6460sr8fp1-20100624_01(SR8 FP1))
>> IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Linux ppc64-64
>> jvmxp6460sr8ifx-20100609_59383 (JIT enabled, AOT enabled)
>> J9VM - 20100609_059383
>> JIT  - r9_20100401_15339ifx2
>> GC   - 20100308_AA)
>> JCL  - 20100624_01
>>
>> Here is the commands I am running:
>>
>> BENCH=avrora
>>
>> 1. java -javaagent:poa.jar=out/${BENCH}-default -jar
>> dacapo-9.12-bach.jar ${BENCH} -s default
>>
>> 2. java -Xmx10G -cp soot-2.4.0.jar soot.Main -w -app -p cg
>> reflection-log:out/${BENCH}-default/refl.log -cp
>> /usr/lib/jvm/ibm-java-ppc64/jre/lib/ibmjcefw.jar:/usr/lib/jvm/ibm-java-ppc64/jre/lib/rt.jar:out/${BENCH}-default
>> -main-class Harness -include org.apache. -include org.w3c. -d
>> sootified/${BENCH}-default/ Harness
>>
>> I've got such error after the second command
>> ++++++++++++++++++++
>> [Call Graph] For information on where the call graph may be
>> incomplete, use the verbose option to the cg phase.
>> Exception in thread "main" java.lang.NullPointerException
>>        at soot.jimple.toolkits.callgraph.Edge.hashCode(Edge.java:116)
>>        at java.util.HashMap.putImpl(HashMap.java:620)
>>        at java.util.HashMap.put(HashMap.java:605)
>>        at java.util.HashSet.add(HashSet.java:95)
>>        at soot.jimple.toolkits.callgraph.CallGraph.addEdge(CallGraph.java:43)
>>        at soot.jimple.toolkits.callgraph.ContextInsensitiveContextManager.addVirtualEdge(ContextInsensitiveContextManager.java:39)
>>        at soot.jimple.toolkits.callgraph.OnFlyCallGraphBuilder.addType(OnFlyCallGraphBuilder.java:456)
>>        at soot.jimple.toolkits.callgraph.CallGraphBuilder.build(CallGraphBuilder.java:94)
>>        at soot.jimple.toolkits.callgraph.CHATransformer.internalTransform(CHATransformer.java:43)
>>        at soot.SceneTransformer.transform(SceneTransformer.java:39)
>>        at soot.Transform.apply(Transform.java:89)
>>        at soot.RadioScenePack.internalApply(RadioScenePack.java:57)
>>        at soot.jimple.toolkits.callgraph.CallGraphPack.internalApply(CallGraphPack.java:47)
>>        at soot.Pack.apply(Pack.java:114)
>>        at soot.PackManager.runWholeProgramPacks(PackManager.java:408)
>>        at soot.PackManager.runPacks(PackManager.java:329)
>>        at soot.Main.run(Main.java:198)
>>        at soot.Main.main(Main.java:141)
>> +++++++++++++++++++++++
>>
>> Any idea about such issue. Thanks very much.
>>
>> -- Xinwei
>> _______________________________________________
>> Soot-list mailing list
>> Soot-list at sable.mcgill.ca
>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>
>
>
>
> --
> Dr. Eric Bodden, http://bodden.de/
> Principal Investigator in Secure Services at CASED
> Coordinator of the CASED Advisory Board of Study Affairs
> PostDoc at Software Technology Group, Technische Universität Darmstadt
> Tel: +49 6151 16-5478    Fax: +49 6151 16-5410
> Mailing Address: S2|02 A209, Hochschulstraße 10, 64289 Darmstadt
>


More information about the Soot-list mailing list