[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-dev] Static Analysis Framework for CDT
|
BTW the checker thinks that this statement has no effect in Hello World
application:
cout << "!!!Hello World!!!" << endl;
I should turn of for c++ probably. You can overload + to do something as well...
also you cover a+b; case. A statement a; could be added as it has no
effect either (except any side effect of course).
What do you mean? If + is not overload, the resulting value has no effect regardless of what a or b is.
Andrew
Schorn, Markus wrote:
This is great start! In addition to your proposal it would be
useful to (optionally) run some (or all?) of the checkers on the
editor every time the user stops
typing.
The editor creates an AST at this point of time anyways, so as
long as
there are simple checkers this should not add a noteable
performance overhead.
Markus.
-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx
<mailto:cdt-dev-bounces@xxxxxxxxxxx>
[mailto:cdt-dev-bounces@xxxxxxxxxxx
<mailto:cdt-dev-bounces@xxxxxxxxxxx>] On Behalf Of Elena
Laskavaia
Sent: Monday, April 20, 2009 4:51 PM
To: CDT General developers list.
Subject: Re: [cdt-dev] Static Analysis Framework for CDT
Importance: Low
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>
[mailto: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>
[mailto: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>
[mailto: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>
[mailto: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>
[mailto: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
<http://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>
[mailto: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
<mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
<mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
<mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
<mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
<mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
<mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx <mailto:cdt-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/cdt-dev
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx <mailto: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