I frequently need to debug .NET binaries on test machines (by test-machine, I mean that the machine doesn\'t have Visual Studio installed on it, it\'s frequently re-imaged,
For a bit nicer interface than MDbg or cordbg take a look at DbgCLR - a cut-down version of the Visual Studio debugger (at least it looks like one) that handles only managed code. It comes with the .NET Framework (I'm not sure if it's in the runtime or if you need the Framework SDK):
Note that cordbg is deprecated in favor of MDbg (even though MDbg doesn't have all of cordbg's features):
And in looking back at MDbg whle writing this post, I found that there's a GUI wrapper available for MDbg (which I haven't tried):
There is always mdbg and cordbg, but I would suggest digging more into why remote debugging doesn't work consistently.
VS2005/8 seem a lot more reliable than earlier versions here (though I primarily do unmanaged) and it saves you from having to have the symbols accessible on the target machine.
You could check out MDbg: http://blogs.msdn.com/jmstall/archive/2006/11/22/mdbg-sample-2-1.aspx. It looks like it comes with the .NET 3.5 SDK at least (and it's probably included with 2.0+).
Windbg has managed extensions (called SOS I believe), though I don't know if they allow source-level debugging.
I've finally found extensions for Windbg that do just what I wanted: Sosex.dll, lets me use windbg to debug managed applications with very minimal installation required. I've used it for more than a year now, and It's worked, without fault, for every debugging scenario I've encountered.
Version 2 of ILSpy contains a debugger. And it works awesome!
It is still in very early stages, but have helped me several times.
Just watch out for bugs! :)
Maybe you can try using Live Tuning combined with an Ocf Server?
It's not a debugger per-se, but it's pretty easy to get a connection between an app and Live Tuning. Like, literally 3 lines of code. Then you have access to all the variables you choose to publish.
I found it useful when trying to debug my programs without having access to the decompiled code or a real debugger. You can't really have breakpoints but it turns out there's sometimes better ways to debug.