You can run a program that will listen for monodevelop on a TCP port before
it enters it's main method.
$ mono --debug
--debugger-agent=transport=dt_socket,address=0.0.0.0:12345,server=y,suspend=y
myprogram.exe
That will sit listening on port 12345 for a debugger to attach.
On another host you
We run a mono-based service out of the cloud. The server machines are
headless, without windowing libraries installed. Is there a good way to
debug code running under mono from the command line? For the most part we
rely on mirrored environments that do have Monodevelop capability, but that
mirrori