[Soot-list] Soot exception: There is no main class set!

Eric Bodden eric.bodden at ec-spride.de
Wed Jun 20 08:47:11 EDT 2012


Hi again.

I now see what may be the problem... So you are using the very class
that Soot is supposed to analyze to also bootstrap Soot? That is
calling for trouble. The code that makes up your program analysis
should always be totally separated from the code you are analyzing.
Otherwise it'S quite hard to get the classpath right....

Eric

On 20 June 2012 14:35, Harsha vardhan Rajendran
<harshavardhan.rajendran at gmail.com> wrote:
> Here is the Blockifier class...
>
>
> On Wed, Jun 20, 2012 at 5:23 AM, Eric Bodden <eric.bodden at ec-spride.de>
> wrote:
>>
>> Hello.
>>
>> Can you email us your main class as an attachment?
>>
>> Cheers,
>> Eric
>>
>> On 20 June 2012 13:48, Harsha vardhan Rajendran
>> <harshavardhan.rajendran at gmail.com> wrote:
>> > Hi,
>> >
>> >    I am pretty sure the signature is correct and that Soot is picking up
>> > the
>> > right class. In the error, the last line points to the fact that a main
>> > method is indeed present. So, why is Soot not picking it up? -main-class
>> > flag does not help either...
>> >
>> > Thanks
>> > Harsha
>> >
>> >
>> > On Mon, Jun 18, 2012 at 3:33 AM, Eric Bodden <eric.bodden at ec-spride.de>
>> > wrote:
>> >>
>> >> Hi again.
>> >>
>> >> When Soot says that your main class has no main method than that's the
>> >> case. Are you sure the signature is correct and also that Soot is
>> >> picking up the correct class?
>> >>
>> >> Eric
>> >>
>> >> On 18 June 2012 12:03, Harsha vardhan Rajendran
>> >> <harshavardhan.rajendran at gmail.com> wrote:
>> >> > Hello Eric,
>> >> >
>> >> >    Actually I did try using he -main-class flag option. But I end up
>> >> > with an
>> >> > error saying that "Main-class has no main method!" (But it does).
>> >> >
>> >> > Here's what I did:
>> >> >
>> >> > java -Xmx2048m -cp
>> >> >
>> >> >
>> >> > ../build/jar/bianlian.jar:../code/lib/polyglotclasses-1.3.5.jar:../code/lib/jasminclasses-nightly.jar:../code/lib/log4j-1.2.15.jar:../code/lib/sootclasses-nightly.jar
>> >> > server.blockify.Blockifier Main
>> >> > -main-class server.blockify.Blockifier
>> >> >
>> >> > The error I got:
>> >> >
>> >> > Warning: java.dyn.InvokeDynamic is a phantom class!
>> >> > Warning: Main is a phantom class!
>> >> > Exception in thread "main" java.lang.RuntimeException: Main-class has
>> >> > no
>> >> > main method!
>> >> > at soot.Scene.setMainClass(Scene.java:146)
>> >> > at soot.Scene.setMainClassFromOptions(Scene.java:1216)
>> >> > at soot.Scene.getMainClass(Scene.java:176)
>> >> > at soot.EntryPoints.application(EntryPoints.java:65)
>> >> > at soot.EntryPoints.all(EntryPoints.java:95)
>> >> > at soot.Scene.getEntryPoints(Scene.java:702)
>> >> > at soot.Scene.getReachableMethods(Scene.java:749)
>> >> > at
>> >> >
>> >> >
>> >> > soot.jimple.toolkits.callgraph.CallGraphBuilder.<init>(CallGraphBuilder.java:59)
>> >> > at
>> >> >
>> >> >
>> >> > soot.jimple.toolkits.callgraph.CHATransformer.internalTransform(CHATransformer.java:42)
>> >> > 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:417)
>> >> > at soot.PackManager.runPacks(PackManager.java:336)
>> >> > at soot.Main.run(Main.java:198)
>> >> > at soot.Main.main(Main.java:141)
>> >> > at
>> >> >
>> >> >
>> >> > server.blockify.Blockifier.blockifyFromCmdLineWithArgs(Blockifier.java:147)
>> >> > at server.blockify.Blockifier.main(Blockifier.java:399)
>> >> >
>> >> > Thanks
>> >> > Harsha
>> >> >
>> >> > On Mon, Jun 18, 2012 at 2:46 AM, Eric Bodden
>> >> > <eric.bodden at ec-spride.de>
>> >> > wrote:
>> >> >>
>> >> >> Hi Harsha.
>> >> >>
>> >> >> This may help:
>> >> >> http://www.sable.mcgill.ca/soot/tutorial/usage/
>> >> >>
>> >> >> Search for main-class.
>> >> >>
>> >> >> Eric
>> >> >>
>> >> >> On 18 June 2012 11:43, Harsha vardhan Rajendran
>> >> >> <harshavardhan.rajendran at gmail.com> wrote:
>> >> >> > Hello Marc,
>> >> >> >
>> >> >> >     Thank you so much for your reply. I have taken over this
>> >> >> > project
>> >> >> > from an
>> >> >> > earlier student and hence am finding my way through it. So, this
>> >> >> > is
>> >> >> > how
>> >> >> > soot
>> >> >> > is invoked:
>> >> >> >
>> >> >> > java -Xmx2048m -cp
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > ../build/jar/bianlian.jar:../code/lib/polyglotclasses-1.3.5.jar:../code/lib/jasminclasses-nightly.jar:../code/lib/log4j-1.2.15.jar:../code/lib/sootclasses-nightly.jar
>> >> >> > server.blockify.Blockifier HelloWorld
>> >> >> >
>> >> >> > Blockifier and HelloWorld are two classes as you very well
>> >> >> > understand.
>> >> >> > And
>> >> >> > what do you mean "path for the parsing". Parsing of what to be
>> >> >> > precise?
>> >> >> >
>> >> >> > Thanks
>> >> >> > Harsha
>> >> >> >
>> >> >> >
>> >> >> > On Fri, Jun 15, 2012 at 5:24 AM, Marc-Andre Laverdiere-Papineau
>> >> >> > <marc-andre.laverdiere-papineau at polymtl.ca> wrote:
>> >> >> >>
>> >> >> >> Namaste Harsha,
>> >> >> >>
>> >> >> >> I had this a few times. There are two methods that can allow you
>> >> >> >> to
>> >> >> >> set
>> >> >> >> starting points for your interprocedural analyses, one is setting
>> >> >> >> a
>> >> >> >> main
>> >> >> >> class, the others are setting arbitrary entry points, and they
>> >> >> >> conflict
>> >> >> >> each other.
>> >> >> >>
>> >> >> >> I think another cause of it is that the path for the parsing
>> >> >> >> needs
>> >> >> >> to
>> >> >> >> be
>> >> >> >> repeated in the class path. It took me a while to understand that
>> >> >> >> one
>> >> >> >> :$
>> >> >> >>
>> >> >> >> If that's not helping, would you please reply with the details of
>> >> >> >> how
>> >> >> >> you are invoking Soot?
>> >> >> >>
>> >> >> >> --
>> >> >> >> Marc-André Laverdière-Papineau
>> >> >> >> Étudiant au doctorat - PhD Student
>> >> >> >>
>> >> >> >> On 06/15/2012 08:11 AM, Harsha vardhan Rajendran wrote:
>> >> >> >> > Hello ,
>> >> >> >> >
>> >> >> >> >       I have been playing around with Soot and keep getting the
>> >> >> >> > following error. I was wondering if you could please help me
>> >> >> >> > out?
>> >> >> >> > I
>> >> >> >> > have
>> >> >> >> > set everything in the proper classpath, but still it says that
>> >> >> >> > there
>> >> >> >> > is
>> >> >> >> > no main class set.
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > 2012-06-15 05:03:24,088 DEBUG server.blockify.Blockifier -
>> >> >> >> > Initializing
>> >> >> >> > SOOT ...
>> >> >> >> > Soot started on Fri Jun 15 05:03:24 MST 2012
>> >> >> >> > Warning: java.dyn.InvokeDynamic is a phantom class!
>> >> >> >> > Warning: Main is a phantom class!
>> >> >> >> > *Exception in thread "main" java.lang.RuntimeException: There
>> >> >> >> > is
>> >> >> >> > no
>> >> >> >> > main
>> >> >> >> > class set!*
>> >> >> >> > at soot.Scene.getMainClass(Scene.java:179)
>> >> >> >> > at soot.EntryPoints.application(EntryPoints.java:65)
>> >> >> >> > at soot.EntryPoints.all(EntryPoints.java:95)
>> >> >> >> > at soot.Scene.getEntryPoints(Scene.java:702)
>> >> >> >> > at soot.Scene.getReachableMethods(Scene.java:749)
>> >> >> >> > at
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > soot.jimple.toolkits.callgraph.CallGraphBuilder.<init>(CallGraphBuilder.java:59)
>> >> >> >> > at
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > soot.jimple.toolkits.callgraph.CHATransformer.internalTransform(CHATransformer.java:42)
>> >> >> >> > 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:417)
>> >> >> >> > at soot.PackManager.runPacks(PackManager.java:336)
>> >> >> >> > at soot.Main.run(Main.java:198)
>> >> >> >> > at soot.Main.main(Main.java:141)
>> >> >> >> > at
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > server.blockify.Blockifier.blockifyFromCmdLineWithArgs(Blockifier.java:147)
>> >> >> >> > at server.blockify.Blockifier.main(Blockifier.java:399)
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > --
>> >> >> >> > Regards
>> >> >> >> > Harsha vardhan R.
>> >> >> >> >
>> >> >> >> >
>> >> >> >> >
>> >> >> >> > _______________________________________________
>> >> >> >> > Soot-list mailing list
>> >> >> >> > Soot-list at sable.mcgill.ca
>> >> >> >> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>> >> >> >> >
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >> _______________________________________________
>> >> >> >> Soot-list mailing list
>> >> >> >> Soot-list at sable.mcgill.ca
>> >> >> >> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > Regards
>> >> >> > Harsha vardhan R.
>> >> >> >
>> >> >> >
>> >> >> > _______________________________________________
>> >> >> > Soot-list mailing list
>> >> >> > Soot-list at sable.mcgill.ca
>> >> >> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Eric Bodden, Ph.D., http://bodden.de/
>> >> >> Head of Secure Software Engineering Group at EC SPRIDE
>> >> >> Principal Investigator in Secure Services at CASED
>> >> >> Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
>> >> >> Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
>> >> >
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Regards
>> >> > Harsha vardhan R.
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Eric Bodden, Ph.D., http://bodden.de/
>> >> Head of Secure Software Engineering Group at EC SPRIDE
>> >> Principal Investigator in Secure Services at CASED
>> >> Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
>> >> Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
>> >
>> >
>> >
>> >
>> > --
>> > Regards
>> > Harsha vardhan R.
>> >
>>
>>
>>
>> --
>> Eric Bodden, Ph.D., http://bodden.de/
>> Head of Secure Software Engineering Group at EC SPRIDE
>> Principal Investigator in Secure Services at CASED
>> Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
>> Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
>
>
>
>
> --
> Regards
> Harsha vardhan R.
>



-- 
Eric Bodden, Ph.D., http://bodden.de/
Head of Secure Software Engineering Group at EC SPRIDE
Principal Investigator in Secure Services at CASED
Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt


More information about the Soot-list mailing list