[Mono-list] [ANN] Smokey - assembly bug checker

Jesse Jones jesjones at mindspring.com
Thu Mar 27 00:17:36 EDT 2008

Smokey is a command line tool used to analyze assemblies and report  
problems. Problems include buggy code (e.g. infinite recursion, null  
deref, malformed format string), performance issues (e.g. string  
concatenation in loops, excessive boxing, large structs), violations  
of the .NET design guidelines (e.g. inheriting from  
ApplicationException or ICloneable, naming, and swallowing  
exceptions), and miscellaneous rules like misspelled words in string  

You can download Smokey from the web site:
<https://home.comcast.net/~jesse98/public/Smokey>. The web site also  
has an html report for one of the System assemblies and a list of all  
of Smokey's rules.

Changes from Smokey
* Added 3 new rules:
    ClassPrefix, majority of class names in a namespace start with a  
common prefix.
    Hungarian, a type uses Hungarian notation for variable names.
    WinFormsVoodoo, Application.EnableVisualStyles and  
SetCompatibleTextRenderingDefault aren't called.
* InternalInterfaceRule checks to see if the interface is actually  
* UseBaseTypesRule checks to see if the base type is externally visible.
* UseBaseTypesRule ignores parameters with generic types (they aren't  
handled quite right by the rule).
* RequireSerializableCtorRule ignores classes which inherit from  
Exception (ExceptionConstructorsRule will handle those).
* Made SerializeExceptionRule cause language clearer.
* Added more system methods for IgnoredReturnRule to ignore.
* InternalInterfaceRule report now includes the interface name.

   -- Jesse

More information about the Mono-list mailing list