[Mono-dev] ANN: Smokey

Jesse Jones jesjones at mindspring.com
Mon Aug 13 22:36:41 EDT 2007

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 <https://home.comcast.net/~jesse98/ 
public/smokey->. There's also a sample report at  
<https://home.comcast.net/~jesse98/public/System.dll.report.txt> for  
a 1.2.5 assembly. Note that Smokey found a few serious errors:

* Infinite recursion at OrderedDictionary::OnDeserialization.
* Lot's of classes not throwing NoObjectDisposedException.
* Lot's of IDisposable fields not being disposed and temporary  
IDisposable objects not disposed of.

Changes from Smokey

* Fixed the version number.
* Fixed the xml schemas so they work with the stricter validation  
engine in mono 1.2.5.
* Added 29 new rules.
* Completely rewrote the basic block code.
* Added spiffy new visitors using a double dispatch engine.

   -- Jesse

More information about the Mono-devel-list mailing list