[Mono-dev] Gendarme/bugfinder merge

Aaron Tomb atomb at soe.ucsc.edu
Thu Dec 8 14:40:04 EST 2005


I've started to integrate my bug finding code into Gendarme (as
discussed briefly off-list), and I have a few questions about the best
names for the new assemblies.

I have three different "rules" I plan to integrate: detection of
double-check locking, detection of problematic recursive method/property
invocation, and detection of possible null pointer dereferences. The
first one easily falls into the category of "concurrency", so I was
thinking of creating Gendarme.Rules.Concurrency for it, with the
expectation that we'll probably have more rules to deal with concurrency
bugs in the future.

The other two are harder to place. I could create
Gendarme.Rules.Correctness for both of them, but that seems a little
broad. The null-reference stuff could go into
Gendarme.Rules.FlowAnalysis, or something like that, but that seems like
too much of a focus on the implementation, rather than the purpose.
Unless there are any preferences, I'll probably go with Correctness.

Also, I have a comment on the framework code. In many ways, it's better
than the framework I originally wrote for my rules, but there's one
capability that I wish it had. In my framework, whenever a rule
violation was detected, the rule checker could produce an aribtrary
string describing the violation, rather than just a boolean. The message
generally included the specific location of the error, and a single
rule could produce as many messages as necessary. I'd love to add this
capability to Gendarme.

Finally, I have one more question. I generally plan to only directly
modify the code in my assemblies, and send patches for any other
changes. However, would it be ok for my to change rules.xml and
Makefile.am directly, as I add rule assemblies?


More information about the Mono-devel-list mailing list