[Soot-list] Eclipse, Soot and CFG analysis

Nathan Weston npweston at gmail.com
Tue Jun 14 12:39:08 EDT 2005


Hello everybody,

Sorry if this question has been asked before - I can't seem to view
the archives of this mailing list (404 error on
http://www.sable.mcgill.ca/list_archives/soot-list/).  I'm trying to
use Soot 2.2.1 with Eclipse 3.1 to perform some interactive CFG
analysis.  Soot is happy to create Jimple from my test program (just a
simple hello world), and the CFG Test option from the menu seems to
work quite happily - I get a window with a CFG in it.

However, when I run Soot in interactive mode, I get a pop-up error
saying "Unable to create part:" and another error telling me Eclipse
couldn't create an editor.  The verbose output is listed below. 
Experimenting with Soot 2.2.0 and Eclipse 3.0 doesn't seem to fix
things.  Any ideas?

Thanks very much for your help,
Nathan

-----------------------------

...
[<init>]     Constructing soot.toolkits.graph.ExceptionalUnitGraph...
[<init>]     Removed 0 statements...
Running in interactive mode.
Transforming hw.HelloWorld... 
[main] Constructing BafBody...
Applying phase bb.lso to <hw.HelloWorld: void main(java.lang.String[])>.
[main] Performing LoadStore optimizations...
[main]     Constructing soot.toolkits.graph.BriefUnitGraph...
[main]     Constructing soot.toolkits.graph.ExceptionalUnitGraph...
[main]     Constructing SimpleLiveLocals...
Analyzing: bb.lso for method: main
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at ca.mcgill.sable.soot.launching.SootThread.run(SootThread.java:129)
Caused by: org.eclipse.swt.SWTException: Failed to execute runnable
(java.lang.ClassCastException:
org.eclipse.ui.internal.EditorPane$1$ErrorEditorPart)
	at org.eclipse.swt.SWT.error(SWT.java:2839)
	at org.eclipse.swt.SWT.error(SWT.java:2762)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:173)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:28)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:3233)
	at ca.mcgill.sable.soot.interaction.InteractionController.handleCfgEvent(InteractionController.java:190)
	at ca.mcgill.sable.soot.interaction.InteractionController.handleEvent(InteractionController.java:93)
	at soot.toolkits.graph.interaction.InteractionHandler.doInteraction(InteractionHandler.java:145)
	at soot.toolkits.graph.interaction.InteractionHandler.handleCfgEvent(InteractionHandler.java:69)
	at soot.toolkits.scalar.AbstractFlowAnalysis.<init>(AbstractFlowAnalysis.java:57)
	at soot.toolkits.scalar.FlowAnalysis.<init>(FlowAnalysis.java:49)
	at soot.toolkits.scalar.BackwardFlowAnalysis.<init>(BackwardFlowAnalysis.java:48)
	at soot.toolkits.scalar.SimpleLiveLocalsAnalysis.<init>(SimpleLiveLocals.java:121)
	at soot.toolkits.scalar.SimpleLiveLocals.<init>(SimpleLiveLocals.java:71)
	at soot.baf.toolkits.base.LoadStoreOptimizer$Instance.computeLocalDefsAndLocalUsesInfo(LoadStoreOptimizer.java:169)
	at soot.baf.toolkits.base.LoadStoreOptimizer$Instance.go(LoadStoreOptimizer.java:96)
	at soot.baf.toolkits.base.LoadStoreOptimizer.internalTransform(LoadStoreOptimizer.java:80)
	at soot.BodyTransformer.transform(BodyTransformer.java:51)
	at soot.Transform.apply(Transform.java:104)
	at soot.BodyPack.internalApply(BodyPack.java:50)
	at soot.Pack.apply(Pack.java:120)
	at soot.baf.BafBody.<init>(BafBody.java:146)
	at soot.baf.Baf.newBody(Baf.java:551)
	at soot.PackManager.runBodyPacks(PackManager.java:565)
	at soot.PackManager.runBodyPacks(PackManager.java:369)
	at soot.PackManager.runPacks(PackManager.java:313)
	at soot.Main.run(Main.java:179)
	at soot.Main.main(Main.java:153)
	... 5 more
Caused by: java.lang.ClassCastException:
org.eclipse.ui.internal.EditorPane$1$ErrorEditorPart
	at ca.mcgill.sable.soot.cfg.ModelCreator.displayModel(ModelCreator.java:290)
	at ca.mcgill.sable.soot.interaction.InteractionController$2.run(InteractionController.java:192)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:118)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:2885)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2544)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:151)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:301)
	at ca.mcgill.sable.soot.launching.SootLauncher.runSootDirectly(SootLauncher.java:140)
	at ca.mcgill.sable.soot.launching.SootOptionsProjectLauncher.run(SootOptionsProjectLauncher.java:65)
	at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:244)
	at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:220)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:557)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:507)
	at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:421)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:842)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2908)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2541)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1612)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1578)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:293)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
	at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
	at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:228)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:333)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:150)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:268)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:260)
	at org.eclipse.core.launcher.Main.run(Main.java:887)
	at org.eclipse.core.launcher.Main.main(Main.java:871)


More information about the Soot-list mailing list