Questions about data flow analysis

View: New views
2 Messages — Rating Filter:   Alert me  

Questions about data flow analysis

by Michiel Graat :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

After my previous detector which among others concerned building
callgraphs (thanks for the help! it really made a difference), I am now
focusing on doing some data flow analysis.

The basic purpose of the detector I'm trying to build is detecting wether
a certain method takes a persistent object (Java Card persistence, not
Java persistence) as one of its arguments.

First question: is there a way to find out which are the arguments to a
method when it's called? I've tried to search through current FindBugs
detectors but there are a lot, so an example is not easy to find.

Second question: if tracking the arguments is possible, is there any way
of doing some data flow analysis on those arguments, to find out if those
objects are persistent? I've found some classes related to data flow
analysis in the FindBugs API but the comments are not really sufficient to
explain what these do exactly. Could these be useful?

Thanks in advance,

Michiel



_______________________________________________
Findbugs-discuss mailing list
Findbugs-discuss@...
http://mailman.cs.umd.edu/mailman/listinfo/findbugs-discuss

Re: Questions about data flow analysis

by David Hovemeyer-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Michiel,

There is some documentation on the dataflow framework in the architecture
document.  If you have pdflatex available, you can format it yourself
(check out findbugs from cvs and run "make" in the design/architecture
directory), or you can see it here:

  http://www.cs.vassar.edu/~hovemeye/architecture.pdf

If your problem can be solved using intra-procedural dataflow
analysis, then the existing dataflow framework should be able to
do the job.

About getting arguments to a method call: if your dataflow analysis
is based on Frames (these are objects that represent stack frames
with params, locals, and operands), you can find the arguments
to a call using the Frame.getArgument() method.

Hope this helps,
Dave

On Thu, 9 Feb 2006, Michiel Graat wrote:

> Hi,
>
> After my previous detector which among others concerned building
> callgraphs (thanks for the help! it really made a difference), I am now
> focusing on doing some data flow analysis.
>
> The basic purpose of the detector I'm trying to build is detecting wether
> a certain method takes a persistent object (Java Card persistence, not
> Java persistence) as one of its arguments.
>
> First question: is there a way to find out which are the arguments to a
> method when it's called? I've tried to search through current FindBugs
> detectors but there are a lot, so an example is not easy to find.
>
> Second question: if tracking the arguments is possible, is there any way
> of doing some data flow analysis on those arguments, to find out if those
> objects are persistent? I've found some classes related to data flow
> analysis in the FindBugs API but the comments are not really sufficient to
> explain what these do exactly. Could these be useful?
>
> Thanks in advance,
>
> Michiel
>
>
>
> _______________________________________________
> Findbugs-discuss mailing list
> Findbugs-discuss@...
> http://mailman.cs.umd.edu/mailman/listinfo/findbugs-discuss
>

_______________________________________________
Findbugs-discuss mailing list
Findbugs-discuss@...
http://mailman.cs.umd.edu/mailman/listinfo/findbugs-discuss