[Soot-list] couldn't find class: SableJBDD.bdd.JBddVariable

Tezcan Dilshener tezcan at dilshener.de
Wed Jan 4 11:51:50 EST 2012


Hi Eric,
thnx a lot for your reply.

> ... would it be ok if you just saw a call to List.clear() or would you
> need to know that it is a call to ArrayList.clear()?
> 
> If the former suffices then you can actually go without a call graph
> and just look at the individual method calls. 

For my first attempt and to keep things simple the former is OK for me.
But when I run with  -app and -process-dir, in debug mode I can see that it reads all the classes from the specified dir but fails to find the source for each class! 
And when I specify the source dir with -cp on call argument then I get soot.CompilationDeathException: type checking (JastAdd frontend) error.

So at the moment I am running around in circles and much appreciate some examples.
how can I go without a call graph and look at individual method calls? 
Could you point out me to some examples?  

Regards
Tezcan

----- original message --------

Subject: Re: [Soot-list] couldn't find class: SableJBDD.bdd.JBddVariable
Sent: Wed, 04 Jan 2012
From: Eric Bodden<eric.bodden at ec-spride.de>

> Hi again.
> 
> > Anyway, I would like to process all the classes in a directory and obtain
> > call graph information for each class. The classes do not have a main
> method
> > and do not always reference each other either. The processing order is
> also
> > not important for my purpose. All I want at the end is a list of
> > caller/callee information in
> > "caller_class.method() may call called_class.calledMethod()" format.
> 
> Ok, now I see. Do you require that method calls be de-virtualized? In
> other words, for a call such as...
> 
> List l = new ArrayList();
> l.clear();
> 
> ... would it be ok if you just saw a call to List.clear() or would you
> need to know that it is a call to ArrayList.clear()?
> 
> If the former suffices then you can actually go without a call graph
> and just look at the individual method calls. In general, a call graph
> does not really seem what you want in your setting, as it is really a
> whole-program notion, and you have no such whole program.
> 
> > It does exactly what I want but needs in soot.Main call arguments a
> > main-class with a main method as well as argument classes. However, I do
> not
> > have a main class in my directory with a main method. I just want to
> process
> > all the classes one by one.
> >
> > In an attempt to achieve that I extended the soot.Main arguments list in
> the
> > code and added the process-dir option, leaving the option -w as already
> was
> > there.
> > But it is not doing what I want.
> 
> As I wrote, the code does not really do what you want. It assumes a
> whole program, starting at a main method, which is fundamentally
> different from your case.
> 
> > How can I call soot so that it reads all the classes from a directory?
> 
> -process-dir is the right option there. But you need to disable -w,
> which will also mean that you cannot use the call graph construction.
> 
> Hope that helps,
> Eric
> 

--- original message end ----



More information about the Soot-list mailing list