[Soot-list] Exception in thread "main" java.lang.RuntimeException:, There is no main class set!
Cheng Zhang
cheng.zhang.stap at gmail.com
Tue Sep 25 07:00:18 EDT 2012
Hi,
So far as I know, one workaround is to add a main method by hand.
It works fine when there are not so many custom entries.
A complete solution is described on Eric's website:
http://www.bodden.de/2012/07/26/soot-custom-entry-points/
Best,
Cheng
On Tue, Sep 25, 2012 at 6:33 PM, Pauline Anthonysamy <
anthonys at comp.lancs.ac.uk> wrote:
> Hi Quentin,
>
> Thank you so much for your response. I am trying to create the call
> graphs for classes without a main method. From previous posts, I
> understand that it we need to define entry points. If you look at my
> Soot driver class (CallGraphExample) I have defined the entry points.
>
> public class CallGraphExample {
> public static void main(String[] args) {
> // create a list from args
> List<String> argsList = new ArrayList<String>(Arrays.asList(args));
> // add on the following arguments
> argsList.addAll(Arrays.asList(new String[]{"-w", "test.CallGraphs"}));
>
> // PackManager manages the packs containing the various phases and their
> options
> PackManager.v().getPack("wjtp")
> .add(new Transform("wjtp.myTransform", new SceneTransformer() {
>
> @Override
> protected void internalTransform(String phaseName, Map options) {
> CHATransformer.v().transform();
> SootMethod src = Scene.v().getMainClass().getMethodByName("doStuff");
>
> ArrayList<SootMethod> entryPoints = new ArrayList<SootMethod>();
> entryPoints.add(src);
> Scene.v().setEntryPoints(entryPoints);
>
> CallGraph cg = Scene.v().getCallGraph();
> Iterator<MethodOrMethodContext> targets = new
> Targets(cg.edgesOutOf(src));
>
> while (targets.hasNext()) {
> SootMethod tgt = (SootMethod)targets.next();
> System.out.println(src + " may call " + tgt);
> }
> }
> }));
> args = argsList.toArray(new String[0]);
> soot.Main.main(args);
> }
> }
>
>
>
> Do you have any idea on how I can construct a CFG for classes without
> main method?
>
> Thank you so much for your help!
>
> -Pauline
>
>
>
> On 25/09/12 09:55, soot-list-request at sable.mcgill.ca wrote:
> > Send Soot-list mailing list submissions to
> > soot-list at sable.mcgill.ca
> >
> > To subscribe or unsubscribe via the World Wide Web, visit
> > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
> > or, via email, send a message with subject or body 'help' to
> > soot-list-request at sable.mcgill.ca
> >
> > You can reach the person managing the list at
> > soot-list-owner at sable.mcgill.ca
> >
> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of Soot-list digest..."
> >
> >
> > Today's Topics:
> >
> > 1. SootMethod ====== declaresMethod() ( ??? )
> > 2. Re: SootMethod ====== declaresMethod() (Quentin Sabah)
> > 3. Exception in thread "main" java.lang.RuntimeException: There
> > is no main class set! (Pauline Anthonysamy)
> > 4. Re: Exception in thread "main" java.lang.RuntimeException:
> > There is no main class set! (Quentin Sabah)
> >
> >
> > ----------------------------------------------------------------------
> >
> > Message: 1
> > Date: Tue, 25 Sep 2012 15:50:49 +0800
> > From: " ??? " <1241635403 at qq.com>
> > Subject: [Soot-list] SootMethod ====== declaresMethod()
> > To: " soot-list at sable.mcgill.ca " <soot-list at sable.mcgill.ca>
> > Message-ID: <tencent_44B79F12087EB26C31F8F081 at qq.com>
> > Content-Type: text/plain; charset="gb18030"
> >
> > Hi :
> > I need your help!
> > I encounter the same question you have 6 years ago!
> > Could you tell me how did you resolved at last?
> > Another question: Do you know whether Soot inplements the CTA ?
> > Thanks in advance!
> >
> > Best wishes!
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL:
> http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20120925/6c31e370/attachment-0001.html
> >
> > ------------------------------
> >
> > Message: 2
> > Date: Tue, 25 Sep 2012 10:09:12 +0200
> > From: Quentin Sabah <quentin.sabah at inria.fr>
> > Subject: Re: [Soot-list] SootMethod ====== declaresMethod()
> > To: soot-list at sable.mcgill.ca
> > Message-ID: <506166A8.901 at inria.fr>
> > Content-Type: text/plain; charset=gb18030; format=flowed
> >
> > Hi,
> >
> >> I encounter the same question you have 6 years ago!
> > Could you re-phrase that question? I doubt anyone can remember a 6 years
> > old question.
> >
> >> Another question: Do you know whether Soot inplements the CTA ?
> >> Thanks in advance!
> > Please tell us what CTA stands for, so that we may help you.
> >
> > Remember, you won't get much help if we cannot understand your
> > questions. Consider investing a few minutes to explain us what you are
> > willing to achieve using Soot.
> >
> > Regards,
> >
> >
>
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20120925/40c37b93/attachment.html
More information about the Soot-list
mailing list