If your .Net project fails on Mono, debugging is a nightmare. Most of the time it's about Console.WriteLine.
There're a few options. You may:
- Debug on a linux machine. There's a command-line debugger for mono.
- Run the code in a linux machine, and remote-debug from visual studio using some remote debugging plugins (I didn't succeed at it yet)
- On windows, run MS .Net runtime but link it with mono class libraries. You can do it except for mscorelib, though it involves some messing around with the .net framework settings like disabling strong key checking for .net assemblies.