[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