[Mono-devel-list] X-develop: Support for debugging with Mono on Linux

Hans Kratz kratz at omnicore.com
Thu Jan 27 10:37:29 EST 2005


Hi!

I have integrated support for debugging .NET applications with Mono on 
Linux in X-develop build 118. X-develop can be downloaded from
http://www.x-develop.com.

Architecture
---
X-develop supports debugging .NET applications on Windows using the 
Microsoft .NET ICorDebug API and debugging with Mono using the 
Mono.Debugger assembly. To support different debugging architectures the 
architecture part is factored out into a debugger proxy program (one for 
MS .NET 1.1, one for MS .NET 2.0 and one for Mono) which communicates 
with X-develop using a custom protocol over socket communication.

This has two other advantages:
* Easy to implement support for remote debugging.
* Instability of the debugger API does not affect the IDE.

The sourcecode for the Mono debugger proxy program is contained in
x-develop/lib/debugmono/src in accordance with the GPL.


Caveats
---
* Debugging is only supported on Linux with kernel 2.6 or later since
Mono.Debugging supports only that environment (AFAICS).

* I have only tested debugging with the Mono svn head sources.

* The Mono.Debugger assembly must be installed in the GAC.

* Multithreading is not supported due to some problems with the
Mono.Debugger assembly.

* There are some instabilities (breakpoints not being hit, processes
staying around, incorrect source positions displayed, incorrect stepping
behavior, exceptions, occasional debug output profanity ;-), etc...),
most of which are caused by bugs in the Mono.Debugger assembly.


Future plans
---
I am at the point where I can not improve the Mono debugger proxy
program without modifications to the Mono.Debugger assembly. I do not
want to develop/send patches just yet since the problems I am
experiencing with Mono.Debugger can not be fixed with small patches. If
the maintainer(s) of the Mono.Debugger assembly are interested I am
willing to discuss design issues and bugs in the Mono.Debugger API,
propose possible solutions and develop patches.


Any feedback is welcome!



Best regards,


Hans
-- 
Hans Kratz
X-develop team
http://www.x-develop.com




More information about the Mono-devel-list mailing list