Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Static Analysis Framework for CDT

There is not much of this "framework" can be re-used for self contained external tool like that.
I don't think even error parser is required because it would just work with gcc error parser, so it
would pretty much work out of box considering integration is provided by makefile (which should be done anyway on make/build level and not invoked externally)

Btw, I am pretty much done with preliminary framework (without data-flow graphs etc), I update wiki page
http://wiki.eclipse.org/CDT/designs/StaticAnalysis
added screenshots for user interface, comments are welcome.
I have 2 checkers now Assignment in Condition from Markus presentation and Statement has no Effect.
Checkers contributions are welcome. We need at least dozen checkers to make it worthy to include as feature in next CDT.

Schaefer, Doug wrote:
That sounds reasonable. I'm still concerned about the licensing issues
with the GCC plug-in framework, but we're starting to figure out how to
manage that with the packaging efforts.

Cheers,
Doug.
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Dominique Toupin
Sent: Monday, April 20, 2009 7:47 AM
To: CDT General developers list.
Subject: RE: [cdt-dev] Static Analysis Framework for CDT


This is indeed the best setup, everything we can check rapidly we can do it inside CDT even before the code is build. Then the complicated/longer analysis are done by external tools, some of those analysis are running at night. What I was pointing out below is we might be able to use GCC plugins for complicated/long analysis, we would then have a complete static analysis framework in CDT.

"If you are doing simple rules, CDT alone should be OK but if you need complicated rules (e.g. data-flow analysis) then you might want to also look at GCC plugin"



-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Schorn, Markus
Sent: 20-Apr-09 04:03
To: CDT General developers list.
Subject: RE: [cdt-dev] Static Analysis Framework for CDT

I don't have plans to work on something like that. However, I think there is lots of value we could add to CDT by doing some
analysis on
the parser side. This is not because we can do better analysis than gcc or other tools, it is because we could do some analyis much earlier, when you edit your code and could ideally also provide quick-fixes. The most simple example is the detection of
assignments
in conditions 'if (a = 0)', which is easy to detect and
easy to fix.
CDT should offer support for that.

Markus.

-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Dominique Toupin
Sent: Friday, April 17, 2009 6:08 PM
To: CDT General developers list.
Subject: RE: [cdt-dev] Static Analysis Framework for CDT
Importance: Low


Markus, are you planning on providing advanced static
analysis e.g.
data-flow analysis :-)

-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
[mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Doug Schaefer
Sent: 17-Apr-09 11:53
To: CDT General developers list.
Subject: RE: [cdt-dev] Static Analysis Framework for CDT

Then I suggest that you need to take a closer look at the
CDT core ;)
Markus's EclipseCon presentation would be a great place
to start.
Doug.

On Fri, 2009-04-17 at 11:21 -0400, Dominique Toupin wrote:
In practice I don't think CDT parser has the same
info/capability as
GCC, GCC has a lot of info about the code and we can do
advance static
analysis (not grep like) with this info.
I am not suggesting to integrate GCC code into CDT, the
GCC static
analysis would be an external tool just like GCC/GDB today.
Even if it's an external tool it brings a lot of features
to CDT, it's
just like compile (GCC) and debug (GDB) today.

-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of
Doug Schaefer
Sent: 17-Apr-09 09:52
To: CDT General developers list.
Subject: Re: [cdt-dev] Static Analysis Framework for CDT

My bigger concern is that all GCC plug-ins must be GPL. I'd especially be worried about plug-ins written
specifically for the
CDT and whether that affects the definition of "derived"
and thus, causing us legal grief.

At any rate, theoretically, the CDT parsers already
create the same
information that gcc would. And we can avoid any legal
problems that
way.

Doug.

On Fri, 2009-04-17 at 09:43 -0400, Elena Laskavaia wrote:
GCC plugins means it would be part of GCC which
is external
to eclipse?
If so it can be just run as external and not part of the
framework which is Java based.
Dominique Toupin wrote:
Hi Elena,

If you are doing simple rules, CDT alone should be OK
but if you
need complicated rules (e.g. data-flow
analysis) then you
might want
to also look at GCC plugin
http://gcc.gnu.org/wiki/GCC_Plugins, they
did progress and hopefully the architecture will be
resolve for the
GCC summit (http://gccsummit.org/2009/), some CDT
committers
will also attend the GCC summit (at least Francois
and Marc).
Last year at the GCC summit some static analysis tools
based on GCC
where presented e.g.
https://developer.mozilla.org/en/Treehydra,
https://developer.mozilla.org/en/Dehydra?rdfrom=https%3A%2F%2Fwiki.m
ozil
la.org%2Findex.php%3Ftitle%3DDehydra_GCC%26redirect%3Dno.
If we can have good static analysis rules with GCC
plugins it will
make sense to integrate those into CDT.

Dominique


-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf
Of Elena
Laskavaia
Sent: 16-Apr-09 22:44
To: CDT General developers list.
Subject: [cdt-dev] Static Analysis Framework for CDT

This is something I am doing in my spare time -
I want to
create static analysis framework for CDT, light
weigh set of
classes that
allow to have common interface for dealing
with problems
produced
by static analysis tools (and some default checkers,
such what JDT
has, i.e Potential Null Pointer Dereference, etc).

See design details at: http://wiki.eclipse.org/CDT/designs/StaticAnalysis
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev

_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top