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

You can also use the cdt-source-nav component. The name is not great
however it is meant to be used for the parser/indexer based tools. 
Markus.

> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Elena Laskavaia
> Sent: Wednesday, April 22, 2009 4:09 PM
> To: CDT General developers list.
> Subject: Re: [cdt-dev] Static Analysis Framework for CDT
> Importance: Low
> 
> Doug, bugs in cdt-other component get assigned right to you, 
> can we make cdt-other-inbox so I can watch them?
> 
> Elmenthaler, Jens wrote:
> > 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
> > _______________________________________________
> > 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