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

Done so:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=273251
https://bugs.eclipse.org/bugs/show_bug.cgi?id=273252

-----Original Message-----
From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Elena Laskavaia
Sent: Wednesday, April 22, 2009 15:37
To: CDT General developers list.
Subject: Re: [cdt-dev] Static Analysis Framework for CDT

Can you please send both of them as cdt bugs into cdt-other component with prefix [code analysis]. It would be easier to track than on forum.

Elmenthaler, Jens wrote:
> How about another checker (I just ran into it;-)
> 
> A variable declaration masking another variable declaration of a parent scope:
> 
> Void function()
> {
>   Int var = 0;
> 
>   {
>     Guard<Mutex> guard(mMutex);
> 
>     Int var = 0; // ERROR: ...
>   }
> }
> 
> Jens. 
> 
> -----Original Message-----
> From: Elmenthaler, Jens 
> Sent: Wednesday, April 22, 2009 09:12
> To: 'CDT General developers list.'
> Subject: RE: [cdt-dev] Static Analysis Framework for CDT
> 
> Hi Elena,
> 
> just another idea for a checker: class has virtual methods but non-virtual destructor
> 
> Jens.
> 
> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Elena Laskavaia
> Sent: Monday, April 20, 2009 22:30
> To: CDT General developers list.
> Subject: Re: [cdt-dev] Static Analysis Framework for CDT
> 
> There are some reasons why it is not the same:
> 1) It is tend to be a LOT more checkers for C/C++ including style checking, metrics checkers, problems, security, etc, because of that
> flat category hierarchy is not enough it has to be a tree
> 2) I could have done Error, Warning, Ignore but with more checkers it is easier to use checkboxes to check on/off whole category when do one by one (and it would remember previous severity).
> 
> Mike Kucera wrote:
>> We can steal ideas for checkers from the Java compiler Errors/Warnings 
>> preference page. Also, maybe the CDT code analysis preferences page 
>> should look the same, for a more consistent UI.
>>
>> Mike Kucera
>> Software Developer
>> IBM Eclipse CDT Team
>> mkucera@xxxxxxxxxx
>>
>> Inactive hide details for Elena Laskavaia ---04/20/2009 10:51:24 
>> AM---There is not much of this "framework" can be re-used for Elena 
>> Laskavaia ---04/20/2009 10:51:24 AM---There is not much of this 
>> "framework" can be re-used for self contained external tool like that.
>>
>>
>> From:	
>> Elena Laskavaia <elaskavaia@xxxxxxx>
>>
>> To:	
>> "CDT General developers list." <cdt-dev@xxxxxxxxxxx>
>>
>> Date:	
>> 04/20/2009 10:51 AM
>>
>> Subject:	
>> 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
>> _______________________________________________
>> 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