On Tue, 2009-12-08 at 10:05 -0800, MarkusSchaber wrote:
> Hi,
>
> I just tried Gendarme on some other assemblies, using the default
> options (except checking the "unlimited" with various results:
>
> - IKVM.Runtime.DLL Version=0.38.0.2 (Worked okay, foudn 214 defects)
>
> - IKVM.OpenJDK.ClassLibrary Version 0.30.0.2 (Seems to hang
> indefinitely after finding 4284 defects)
What's the size of the .dll ? if it's large then some rules (like the
smells duplication) can take a LOT of time.
> - jts-1.10.dll (translated from jts-1.10.jar via ikvmc.exe): Aborted
> with an "unexpected error" after finding 317 defects:
> Rule:
> Gendarme.Rules.Interoperability.DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule
>
> Target: System.Boolean
> com.vividsolutions.jts.algorithm.BoundaryNodeRule/
> Mod2BoundaryNodeRule::isInBoundary(System.Int32)
>
> Stack trace: System.ArgumentOutOfRangeException: Der Index lag
> außerhalb des Bereichs. Er muss nicht negativ und kleiner als die
> Auflistung sein.
> Parametername: index
> bei System.ThrowHelper.ThrowArgumentOutOfRangeException()
> bei System.Collections.Generic.List`1.RemoveAt(Int32 index)
> bei
> Gendarme.Rules.Interoperability.DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule.CheckMethod
> (MethodDefinition method)
> bei Gendarme.Framework.Runner.OnMethod(RunnerEventArgs e)
> bei Gendarme.Framework.Runner.Run()
> bei Gendarme.GuiRunner.Execute()
>
> As JTS is free software, I can send you this DLL for further analysis.
Markus, can you add the file to the group files section (or open a bug
report on
http://bugzilla.novell.com, Mono Tools, Gendarme).
Rolf, can you have a look at it (after the full moon ;-)
>
> - Another one of our in-house DLLs:
> Stack trace: System.InvalidOperationException: Der Vorgang ist
> aufgrund des aktuellen Zustands des Objekts ungültig.
> bei Mono.Cecil.Pdb.PdbCciReader.PopulateFunctions(String file)
> bei Mono.Cecil.Pdb.PdbCciReader..ctor(ModuleDefinition module,
> String file)
> bei Mono.Cecil.Pdb.PdbFactory.CreateReader(ModuleDefinition module,
> String assemblyFileName)
> bei Gendarme.Framework.Rocks.ModuleRocks.LoadDebuggingSymbols
> (ModuleDefinition self)
> bei Gendarme.Framework.Runner.Initialize()
> bei Gendarme.GuiRunner.Execute()
That looks like a Cecil bug. Could you share the .dll / .pdb with
Cecil's author (jb) ?
As for Gendarme I can catch the exception and report it (maybe even
ignore the debugging symbols). Right now the "report" is too simple - I
need to rework this (2.8) so the analysis can go on and report
"warning" (not defects) for such "non-fatal" cases.
> And another suggestion: Allow drag-and-drop of DLLs from the explorer
I'll have a quick look (after 2.6). However keep in mind the wizard was
never meant to be a full featured tool (it would be nice to have one)
but a simple way, with a GUI, to run Gendarme.
In other words I prefer to keep my personal time (contributions are
welcome :-) on other things, including a better gui runner, than
improving the wizard (since anyway it won't stay simple if we keep
adding stuff into it ;-)
Thanks a lot for your feedback!
Sebastien