When running the eclipse dacapo benchmark with Dila, I see an exception during instrumentation (stack below). The arguments to Dila main were "Harness EclipseRun.cfg -s small eclipse", and dacapo-2006-10-MR2.jar was in the classpath. My EclipseRun.cfg is attached.
UNCAUGHT EXCEPTION: java.lang.Error: ClassInfo.getCallSiteNr: unknown caller/callee pair
java.lang.Error: ClassInfo.getCallSiteNr: unknown caller/callee pair
at com.ibm.wala.dila.instrumentation.cg.ClassInfo.getCallSiteNr(ClassInfo.java:118)
at com.ibm.wala.dila.instrumentation.cg.CallGraphInstrumentation.instrumentCallToInternalMethod(CallGraphInstrumentation.java:337)
at com.ibm.wala.dila.instrumentation.cg.CallGraphInstrumentation.instrumentMethodCall(CallGraphInstrumentation.java:306)
at com.ibm.wala.dila.instrumentation.cg.CallGraphInstrumentation.instrumentCallsAndNormalReturns(CallGraphInstrumentation.java:226)
at com.ibm.wala.dila.instrumentation.cg.CallGraphInstrumentation.instrument(CallGraphInstrumentation.java:127)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.ibm.wala.dila.runner.loaders.InstrumentingClassLoader.instrument(InstrumentingClassLoader.java:91)
at com.ibm.wala.dila.runner.loaders.CallbackClassLoader.loadClass(CallbackClassLoader.java:152)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
at org.eclipse.osgi.framework.internal.core.ConditionalPermissions.<init>(ConditionalPermissions.java:40)
at org.eclipse.osgi.framework.internal.core.PermissionAdminImpl.createProtectionDomain(PermissionAdminImpl.java:391)
at org.eclipse.osgi.framework.internal.core.BundleHost.load(BundleHost.java:63)
at org.eclipse.osgi.framework.internal.core.Framework.installWorkerPrivileged(Framework.java:832)
at org.eclipse.osgi.framework.internal.core.Framework$2.run(Framework.java:737)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.Framework.installWorker(Framework.java:788)
at org.eclipse.osgi.framework.internal.core.Framework.installBundle(Framework.java:732)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.installBundle(BundleContextImpl.java:221)
at org.eclipse.core.runtime.adaptor.EclipseStarter.installBundles(EclipseStarter.java:956)
at org.eclipse.core.runtime.adaptor.EclipseStarter.loadBasicBundles(EclipseStarter.java:543)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:288)
at dacapo.eclipse.EclipseHarness.startup(EclipseHarness.java:82)
at dacapo.eclipse.EclipseHarness.preIteration(EclipseHarness.java:28)
at dacapo.Benchmark.run(Benchmark.java:119)
at dacapo.TestHarness.runBenchmark(TestHarness.java:302)
at dacapo.TestHarness.main(TestHarness.java:242)
at Harness.main(Harness.java:5)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.ibm.wala.dila.runner.AbstractProgramRunner.runProgram(AbstractProgramRunner.java:138)
at dila.cgdumper.CallGraphExporter.main(CallGraphExporter.java:78)
Error instrumenting "org/osgi/service/condpermadmin/Condition", see stack trace above.
java.lang.IllegalStateException: Bundle initial@reference:file:plugins/org.eclipse.core.runtime_3.1.2.jar/ was not resolved.
at org.eclipse.core.runtime.adaptor.EclipseStarter.startBundles(EclipseStarter.java:980)
at org.eclipse.core.runtime.adaptor.EclipseStarter.loadBasicBundles(EclipseStarter.java:551)
at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:288)
at dacapo.eclipse.EclipseHarness.startup(EclipseHarness.java:82)
at dacapo.eclipse.EclipseHarness.preIteration(EclipseHarness.java:28)
at dacapo.Benchmark.run(Benchmark.java:119)
at dacapo.TestHarness.runBenchmark(TestHarness.java:302)
at dacapo.TestHarness.main(TestHarness.java:242)
at Harness.main(Harness.java:5)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.ibm.wala.dila.runner.AbstractProgramRunner.runProgram(AbstractProgramRunner.java:138)
config file for running eclipse with Dila
Dila handles now all classpath entries properly, but the eclipse benchmark still does not pass. Dila's classloader apparently conflicts with the OSGI classloader of Eclipse. I'll file a new bug for that problem.